2015-06-14 03:41:34 +02:00
|
|
|
<!-- doc/src/sgml/release-9.5.sgml -->
|
2015-06-11 06:08:55 +02:00
|
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
|
2017-11-05 19:47:56 +01:00
|
|
|
<sect1 id="release-9-5-10">
|
|
|
|
<title>Release 9.5.10</title>
|
|
|
|
|
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2017-11-09</para>
|
|
|
|
</formalpara>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.9.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.10</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-11-06 18:02:30 +01:00
|
|
|
However, if you use BRIN indexes, see the fourth changelog entry below.
|
2017-11-05 19:47:56 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Also, if you are upgrading from a version earlier than 9.5.8,
|
|
|
|
see <xref linkend="release-9-5-8">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2017-11-06 18:02:30 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Ensure that <literal>INSERT ... ON CONFLICT DO UPDATE</literal> checks
|
|
|
|
table permissions and RLS policies in all cases (Dean Rasheed)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The update path of <literal>INSERT ... ON CONFLICT DO UPDATE</literal>
|
|
|
|
requires <literal>SELECT</literal> permission on the columns of the
|
|
|
|
arbiter index, but it failed to check for that in the case of an
|
|
|
|
arbiter specified by constraint name.
|
|
|
|
In addition, for a table with row level security enabled, it failed to
|
|
|
|
check updated rows against the table's <literal>SELECT</literal>
|
|
|
|
policies (regardless of how the arbiter index was specified).
|
|
|
|
(CVE-2017-15099)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
2017-11-05 19:47:56 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix BRIN index summarization to handle concurrent table extension
|
|
|
|
correctly (Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, a race condition allowed some table rows to be omitted from
|
|
|
|
the index. It may be necessary to reindex existing BRIN indexes to
|
|
|
|
recover from past occurrences of this problem.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix possible failures during concurrent updates of a BRIN index
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
These race conditions could result in errors like <quote>invalid index
|
|
|
|
offnum</quote> or <quote>inconsistent range map</quote>.
|
|
|
|
</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>
|
|
|
|
Correctly ignore <structname>RelabelType</structname> expression nodes
|
|
|
|
when determining relation distinctness (David Rowley)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows the intended optimization to occur when a subquery has
|
|
|
|
a result column of type <type>varchar</type>.
|
|
|
|
</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>pg_basebackup</application>'s matching of tablespace
|
|
|
|
paths to canonicalize both paths before comparing (Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is particularly helpful on Windows.
|
|
|
|
</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>
|
|
|
|
|
2017-11-06 18:02:30 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix missing temp-install prerequisites
|
|
|
|
for <literal>check</literal>-like Make targets (Noah Misch)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Some non-default test procedures that are meant to work
|
|
|
|
like <literal>make check</literal> failed to ensure that the temporary
|
|
|
|
installation was up to date.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2017-11-05 19:47:56 +01:00
|
|
|
<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>
|
|
|
|
|
2017-08-27 23:35:04 +02:00
|
|
|
<sect1 id="release-9-5-9">
|
|
|
|
<title>Release 9.5.9</title>
|
|
|
|
|
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2017-08-31</para>
|
|
|
|
</formalpara>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a small number of fixes from 9.5.8.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.9</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
However, if you are upgrading from a version earlier than 9.5.8,
|
|
|
|
see <xref linkend="release-9-5-8">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Show foreign tables
|
2017-10-09 03:44:17 +02:00
|
|
|
in <structname>information_schema</structname>.<structname>table_privileges</structname>
|
2017-08-27 23:35:04 +02:00
|
|
|
view (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
All other relevant <structname>information_schema</structname> views include
|
2017-08-27 23:35:04 +02:00
|
|
|
foreign tables, but this one ignored them.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Since this view definition is installed by <application>initdb</application>,
|
2017-08-27 23:35:04 +02:00
|
|
|
merely upgrading will not fix the problem. If you need to fix this
|
|
|
|
in an existing installation, you can, as a superuser, do this
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>psql</application>:
|
2017-08-27 23:35:04 +02:00
|
|
|
<programlisting>
|
2017-09-27 07:39:44 +02:00
|
|
|
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');
|
2017-08-27 23:35:04 +02:00
|
|
|
</programlisting>
|
2017-09-27 07:39:44 +02:00
|
|
|
This must be repeated in each database to be fixed,
|
2017-10-09 03:44:17 +02:00
|
|
|
including <literal>template0</literal>.
|
2017-08-27 23:35:04 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Clean up handling of a fatal exit (e.g., due to receipt
|
2017-10-09 03:44:17 +02:00
|
|
|
of <systemitem>SIGTERM</systemitem>) that occurs while trying to execute
|
|
|
|
a <command>ROLLBACK</command> of a failed transaction (Tom Lane)
|
2017-08-27 23:35:04 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This situation could result in an assertion failure. In production
|
|
|
|
builds, the exit would still occur, but it would log an unexpected
|
2017-10-09 03:44:17 +02:00
|
|
|
message about <quote>cannot drop active portal</quote>.
|
2017-08-27 23:35:04 +02:00
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Certain <command>ALTER</command> commands that change the definition of a
|
2017-08-27 23:35:04 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix crash in <application>pg_restore</application> when using parallel mode and
|
2017-08-28 17:40:47 +02:00
|
|
|
using a list file to select a subset of items to restore
|
|
|
|
(Fabrízio de Royes Mello)
|
2017-08-27 23:35:04 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Change <application>ecpg</application>'s parser to allow <literal>RETURNING</literal>
|
2017-08-27 23:35:04 +02:00
|
|
|
clauses without attached C variables (Michael Meskes)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This allows <application>ecpg</application> programs to contain SQL constructs
|
|
|
|
that use <literal>RETURNING</literal> internally (for example, inside a CTE)
|
2017-08-27 23:35:04 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
assumptions about the width of <type>time_t</type> values.
|
2017-08-27 23:35:04 +02:00
|
|
|
A side-effect that may be visible to extension developers is
|
2017-10-09 03:44:17 +02:00
|
|
|
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.
|
2017-08-27 23:35:04 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <literal>make check</literal> to behave correctly when invoked via a
|
2017-08-27 23:35:04 +02:00
|
|
|
non-GNU make program (Thomas Munro)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
2017-08-06 23:56:49 +02:00
|
|
|
<sect1 id="release-9-5-8">
|
|
|
|
<title>Release 9.5.8</title>
|
|
|
|
|
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2017-08-10</para>
|
|
|
|
</formalpara>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.7.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.8</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-08-07 17:46:20 +02:00
|
|
|
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.5.7,
|
2017-08-06 23:56:49 +02:00
|
|
|
see <xref linkend="release-9-5-7">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2017-08-07 17:46:20 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Further restrict visibility
|
2017-10-09 03:44:17 +02:00
|
|
|
of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to
|
2017-08-07 17:46:20 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
have <literal>USAGE</literal> permission on the associated foreign server.
|
2017-08-07 17:46:20 +02:00
|
|
|
Such options might include a password that had been provided by the
|
|
|
|
server owner rather than the user herself.
|
2017-10-09 03:44:17 +02:00
|
|
|
Since <structname>information_schema.user_mapping_options</structname> does not
|
|
|
|
show the options in such cases, <structname>pg_user_mappings</structname>
|
2017-08-07 17:46:20 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
= true</literal> to <filename>postgresql.conf</filename>. (In versions
|
|
|
|
supporting <command>ALTER SYSTEM</command>, you can use that to make the
|
2017-08-07 17:46:20 +02:00
|
|
|
configuration change, but you'll still need a restart.)
|
|
|
|
</para>
|
|
|
|
</step>
|
|
|
|
|
|
|
|
<step>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <emphasis>each</emphasis> database of the cluster,
|
2017-08-07 17:46:20 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
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>,
|
2017-08-07 17:46:20 +02:00
|
|
|
you'll need to temporarily make it accept connections.
|
2017-10-09 03:44:17 +02:00
|
|
|
In <productname>PostgreSQL</productname> 9.5 and later, you can use
|
2017-08-07 17:46:20 +02:00
|
|
|
<programlisting>
|
|
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
|
|
|
|
</programlisting>
|
2017-10-09 03:44:17 +02:00
|
|
|
and then after fixing <literal>template0</literal>, undo that with
|
2017-08-07 17:46:20 +02:00
|
|
|
<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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Finally, remove the <literal>allow_system_table_mods</literal> configuration
|
2017-08-07 17:46:20 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
<application>libpq</application> ignores empty password specifications, and does
|
2017-08-07 17:46:20 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
via <application>psql</application> or other <application>libpq</application>-based
|
2017-08-07 17:46:20 +02:00
|
|
|
clients. An administrator might therefore believe that setting the
|
|
|
|
password to empty is equivalent to disabling password login.
|
2017-10-09 03:44:17 +02:00
|
|
|
However, with a modified or non-<application>libpq</application>-based client,
|
2017-08-07 17:46:20 +02:00
|
|
|
logging in could be possible, depending on which authentication
|
|
|
|
method is configured. In particular the most common
|
2017-10-09 03:44:17 +02:00
|
|
|
method, <literal>md5</literal>, accepted empty passwords.
|
2017-08-07 17:46:20 +02:00
|
|
|
Change the server to reject empty passwords in all cases.
|
|
|
|
(CVE-2017-7546)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <function>lo_put()</function> check for <literal>UPDATE</literal> privilege on
|
2017-08-07 17:46:20 +02:00
|
|
|
the target large object (Tom Lane, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<function>lo_put()</function> should surely require the same permissions
|
|
|
|
as <function>lowrite()</function>, but the check was missing, allowing any
|
2017-08-07 17:46:20 +02:00
|
|
|
user to change the data in a large object.
|
|
|
|
(CVE-2017-7548)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2017-08-06 23:56:49 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Correct the documentation about the process for upgrading standby
|
2017-10-09 03:44:17 +02:00
|
|
|
servers with <application>pg_upgrade</application> (Bruce Momjian)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous documentation instructed users to start/stop the primary
|
2017-10-09 03:44:17 +02:00
|
|
|
server after running <application>pg_upgrade</application> but before syncing
|
2017-08-06 23:56:49 +02:00
|
|
|
the standby servers. This sequence is unsafe.
|
|
|
|
</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
|
2017-10-09 03:44:17 +02:00
|
|
|
promoted just after it processes an <literal>XLOG_SWITCH</literal> WAL
|
2017-08-06 23:56:49 +02:00
|
|
|
record (Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>walsender</application> to exit promptly when client requests
|
2017-08-06 23:56:49 +02:00
|
|
|
shutdown (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <systemitem>SIGHUP</systemitem> and <systemitem>SIGUSR1</systemitem> handling in
|
2017-08-06 23:56:49 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix unnecessarily slow restarts of <application>walreceiver</application>
|
2017-08-06 23:56:49 +02:00
|
|
|
processes due to race condition in postmaster (Tom Lane)
|
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix cases where an <command>INSERT</command> or <command>UPDATE</command> assigns
|
2017-08-06 23:56:49 +02:00
|
|
|
to more than one element of a column that is of domain-over-array
|
|
|
|
type (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow window functions to be used in sub-<literal>SELECT</literal>s that
|
2017-08-06 23:56:49 +02:00
|
|
|
are within the arguments of an aggregate function (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Move autogenerated array types out of the way during
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>ALTER ... RENAME</command> (Vik Fearing)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, we would rename a conflicting autogenerated array type
|
2017-10-09 03:44:17 +02:00
|
|
|
out of the way during <command>CREATE</command>; this fix extends that
|
2017-08-06 23:56:49 +02:00
|
|
|
behavior to renaming operations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix dangling pointer in <command>ALTER TABLE</command> when there is a
|
2017-08-06 23:56:49 +02:00
|
|
|
comment on a constraint belonging to the table (David Rowley)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Re-applying the comment to the reconstructed constraint could fail
|
|
|
|
with a weird error message, or even crash.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Ensure that <command>ALTER USER ... SET</command> accepts all the syntax
|
|
|
|
variants that <command>ALTER ROLE ... SET</command> does (Peter Eisentraut)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Properly update dependency info when changing a datatype I/O
|
2017-10-09 03:44:17 +02:00
|
|
|
function's argument or return type from <type>opaque</type> to the
|
2017-08-06 23:56:49 +02:00
|
|
|
correct type (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>CREATE TYPE</command> updates I/O functions declared in this
|
2017-08-06 23:56:49 +02:00
|
|
|
long-obsolete style, but it forgot to record a dependency on the
|
2017-10-09 03:44:17 +02:00
|
|
|
type, allowing a subsequent <command>DROP TYPE</command> to leave broken
|
2017-08-06 23:56:49 +02:00
|
|
|
function definitions behind.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Reduce memory usage when <command>ANALYZE</command> processes
|
|
|
|
a <type>tsvector</type> column (Heikki Linnakangas)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix unnecessary precision loss and sloppy rounding when multiplying
|
2017-10-09 03:44:17 +02:00
|
|
|
or dividing <type>money</type> values by integers or floats (Tom Lane)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Tighten checks for whitespace in functions that parse identifiers,
|
2017-10-09 03:44:17 +02:00
|
|
|
such as <function>regprocedurein()</function> (Tom Lane)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Depending on the prevailing locale, these functions could
|
|
|
|
misinterpret fragments of multibyte characters as whitespace.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Use relevant <literal>#define</literal> symbols from Perl while
|
|
|
|
compiling <application>PL/Perl</application> (Ashutosh Sharma, Tom Lane)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids portability problems, typically manifesting as
|
2017-10-09 03:44:17 +02:00
|
|
|
a <quote>handshake</quote> mismatch during library load, when working with
|
2017-08-06 23:56:49 +02:00
|
|
|
recent Perl versions.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>libpq</application>, reset GSS/SASL and SSPI authentication
|
2017-08-06 23:56:49 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>psql</application>, fix failure when <command>COPY FROM STDIN</command>
|
2017-08-06 23:56:49 +02:00
|
|
|
is ended with a keyboard EOF signal and then another <command>COPY
|
2017-10-09 03:44:17 +02:00
|
|
|
FROM STDIN</command> is attempted (Thomas Munro)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This misbehavior was observed on BSD-derived platforms (including
|
|
|
|
macOS), but not on most others.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_dump</application> and <application>pg_restore</application> to
|
|
|
|
emit <command>REFRESH MATERIALIZED VIEW</command> commands last (Tom Lane)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This prevents errors during dump/restore when a materialized view
|
|
|
|
refers to tables owned by a different user.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <application>pg_dump</application>/<application>pg_restore</application>'s
|
|
|
|
reporting of error conditions originating in <application>zlib</application>
|
2017-08-06 23:56:49 +02:00
|
|
|
(Vladimir Kunschikov, Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_dump</application> with the <option>--clean</option> option to
|
2017-08-06 23:56:49 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_dump</application> to not emit invalid SQL for an empty
|
2017-08-06 23:56:49 +02:00
|
|
|
operator class (Daniel Gustafsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_dump</application> output to stdout on Windows (Kuntal Ghosh)
|
2017-08-06 23:56:49 +02:00
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <function>pg_get_ruledef()</function> to print correct output for
|
|
|
|
the <literal>ON SELECT</literal> rule of a view whose columns have been
|
2017-08-06 23:56:49 +02:00
|
|
|
renamed (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In some corner cases, <application>pg_dump</application> relies
|
|
|
|
on <function>pg_get_ruledef()</function> to dump views, so that this error
|
2017-08-06 23:56:49 +02:00
|
|
|
could result in dump/reload failures.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix dumping of outer joins with empty constraints, such as the result
|
2017-10-09 03:44:17 +02:00
|
|
|
of a <literal>NATURAL LEFT JOIN</literal> with no common columns (Tom Lane)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix dumping of function expressions in the <literal>FROM</literal> clause in
|
2017-08-06 23:56:49 +02:00
|
|
|
cases where the expression does not deparse into something that looks
|
|
|
|
like a function call (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_basebackup</application> output to stdout on Windows
|
2017-08-06 23:56:49 +02:00
|
|
|
(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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_rewind</application> to correctly handle files exceeding 2GB
|
2017-08-06 23:56:49 +02:00
|
|
|
(Kuntal Ghosh, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Ordinarily such files won't appear in <productname>PostgreSQL</productname> data
|
2017-08-06 23:56:49 +02:00
|
|
|
directories, but they could be present in some cases.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_upgrade</application> to ensure that the ending WAL record
|
|
|
|
does not have <xref linkend="guc-wal-level"> = <literal>minimum</literal>
|
2017-08-06 23:56:49 +02:00
|
|
|
(Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This condition could prevent upgraded standby servers from
|
|
|
|
reconnecting.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_xlogdump</application>'s computation of WAL record length
|
2017-08-06 23:56:49 +02:00
|
|
|
(Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This ensures that option changes affecting connection parameters will
|
|
|
|
be applied promptly.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <filename>postgres_fdw</filename>, allow cancellation of remote
|
2017-08-06 23:56:49 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Increase <literal>MAX_SYSCACHE_CALLBACKS</literal> to provide more room for
|
2017-08-06 23:56:49 +02:00
|
|
|
extensions (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Always use <option>-fPIC</option>, not <option>-fpic</option>, when building
|
2017-08-06 23:56:49 +02:00
|
|
|
shared libraries with gcc (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This supports larger extension libraries on platforms where it makes
|
|
|
|
a difference.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: REL9_5_STABLE [af1f18259] 2017-08-02 15:07:20 -0400
|
|
|
|
Branch: REL9_4_STABLE [8892170e7] 2017-08-02 15:07:20 -0400
|
|
|
|
Branch: REL9_3_STABLE [3d9ae20e7] 2017-08-02 15:07:20 -0400
|
|
|
|
Branch: REL9_2_STABLE [1188b9b2c] 2017-08-02 15:07:21 -0400
|
|
|
|
-->
|
|
|
|
<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>
|
2017-10-09 03:44:17 +02:00
|
|
|
In MSVC builds, handle the case where the <application>openssl</application>
|
|
|
|
library is not within a <filename>VC</filename> subdirectory (Andrew Dunstan)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In MSVC builds, add proper include path for <application>libxml2</application>
|
2017-08-06 23:56:49 +02:00
|
|
|
header files (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This fixes a former need to move things around in standard Windows
|
2017-10-09 03:44:17 +02:00
|
|
|
installations of <application>libxml2</application>.
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In MSVC builds, recognize a Tcl library that is
|
2017-10-09 03:44:17 +02:00
|
|
|
named <filename>tcl86.lib</filename> (Noah Misch)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In MSVC builds, honor <literal>PROVE_FLAGS</literal> settings
|
|
|
|
on <filename>vcregress.pl</filename>'s command line (Andrew Dunstan)
|
2017-08-06 23:56:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
2017-05-07 22:56:02 +02:00
|
|
|
<sect1 id="release-9-5-7">
|
|
|
|
<title>Release 9.5.7</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2017-05-11</para>
|
|
|
|
</formalpara>
|
2017-05-07 22:56:02 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.6.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.7</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-05-08 18:57:27 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
on <quote>logical decoding</quote>, see the fourth changelog entry below.
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Also, if you are upgrading from a version earlier than 9.5.6,
|
|
|
|
see <xref linkend="release-9-5-6">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2017-05-08 18:57:27 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Restrict visibility
|
2017-10-09 03:44:17 +02:00
|
|
|
of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to
|
2017-05-08 18:57:27 +02:00
|
|
|
protect passwords stored as user mapping options
|
|
|
|
(Michael Paquier, Feike Steenbergen)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous coding allowed the owner of a foreign server object,
|
2017-10-09 03:44:17 +02:00
|
|
|
or anyone he has granted server <literal>USAGE</literal> permission to,
|
2017-05-08 18:57:27 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
<structname>information_schema.user_mapping_options</structname>, namely that
|
2017-05-08 18:57:27 +02:00
|
|
|
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,
|
2017-08-07 17:46:20 +02:00
|
|
|
follow the corrected procedure shown in the changelog entry for
|
|
|
|
CVE-2017-7547, in <xref linkend="release-9-5-8">.
|
2017-05-08 18:57:27 +02:00
|
|
|
</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
|
2017-10-09 03:44:17 +02:00
|
|
|
from <structname>pg_statistic</structname>, such as most common values and
|
2017-05-08 18:57:27 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Restore <application>libpq</application>'s recognition of
|
|
|
|
the <envar>PGREQUIRESSL</envar> environment variable (Daniel Gustafsson)
|
2017-05-08 18:57:27 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Processing of this environment variable was unintentionally dropped
|
2017-10-09 03:44:17 +02:00
|
|
|
in <productname>PostgreSQL</productname> 9.3, but its documentation remained.
|
2017-05-08 18:57:27 +02:00
|
|
|
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,
|
2017-10-09 03:44:17 +02:00
|
|
|
but give it lower priority than <envar>PGSSLMODE</envar>, to avoid
|
2017-05-08 18:57:27 +02:00
|
|
|
breaking configurations that work correctly with post-9.3 code.
|
|
|
|
(CVE-2017-7485)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2017-05-07 22:56:02 +02:00
|
|
|
<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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix possible corruption of <quote>init forks</quote> of unlogged indexes
|
2017-05-07 22:56:02 +02:00
|
|
|
(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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix incorrect reconstruction of <structname>pg_subtrans</structname> entries
|
2017-05-07 22:56:02 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
in <structname>pg_subtrans</structname>, potentially causing infinite loops
|
2017-05-07 22:56:02 +02:00
|
|
|
in queries that examine rows modified by the two-phase transaction.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid possible crash in <application>walsender</application> due to failure
|
2017-05-07 22:56:02 +02:00
|
|
|
to initialize a string buffer (Stas Kelvich, Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix possible crash when rescanning a nearest-neighbor index-only scan
|
|
|
|
on a GiST index (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix postmaster's handling of <function>fork()</function> failure for a
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
|
|
|
|
Branch: REL9_5_STABLE [7be3678a8] 2017-04-24 07:53:05 +0100
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix crash or wrong answers when a <literal>GROUPING SETS</literal> column's
|
2017-05-07 22:56:02 +02:00
|
|
|
data type is hashable but not sortable (Pavan Deolasee)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid applying <quote>physical targetlist</quote> optimization to custom
|
2017-05-07 22:56:02 +02:00
|
|
|
scans (Dmitry Ivanov, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This optimization supposed that retrieving all columns of a tuple
|
|
|
|
is inexpensive, which is true for ordinary Postgres tuples; but it
|
|
|
|
might not be the case for a custom scan provider.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Use the correct sub-expression when applying a <literal>FOR ALL</literal>
|
2017-05-07 22:56:02 +02:00
|
|
|
row-level-security policy (Stephen Frost)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In some cases the <literal>WITH CHECK</literal> restriction would be applied
|
|
|
|
when the <literal>USING</literal> restriction is more appropriate.
|
2017-05-07 22:56:02 +02:00
|
|
|
</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
|
2017-10-09 03:44:17 +02:00
|
|
|
... RENAME</command>.
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
|
2017-10-09 03:44:17 +02:00
|
|
|
COLUMN TYPE</command> rebuilds an existing index (Noah Misch)
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The command failed if the calling user did not currently have
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>CREATE</literal> privilege for the tablespace containing the index.
|
2017-05-07 22:56:02 +02:00
|
|
|
That behavior seems unhelpful, so skip the check, allowing the
|
|
|
|
index to be rebuilt where it is.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</command> to not recurse
|
|
|
|
to child tables when the constraint is marked <literal>NO INHERIT</literal>
|
2017-05-07 22:56:02 +02:00
|
|
|
(Amit Langote)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This fix prevents unwanted <quote>constraint does not exist</quote> failures
|
2017-05-07 22:56:02 +02:00
|
|
|
when no matching constraint is present in the child tables.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid dangling pointer in <command>COPY ... TO</command> when row-level
|
2017-05-07 22:56:02 +02:00
|
|
|
security is active for the source table (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Usually this had no ill effects, but sometimes it would cause
|
|
|
|
unexpected errors or crashes.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid accessing an already-closed relcache entry in <command>CLUSTER</command>
|
|
|
|
and <command>VACUUM FULL</command> (Tom Lane)
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
With some bad luck, this could lead to indexes on the target
|
|
|
|
relation getting rebuilt with the wrong persistence setting.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>VACUUM</command> to account properly for pages that could not
|
2017-05-07 22:56:02 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
table, <command>VACUUM</command> could incorrectly report that the table
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix integer-overflow problems in <type>interval</type> comparison (Kyotaro
|
2017-05-07 22:56:02 +02:00
|
|
|
Horiguchi, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The comparison operators for type <type>interval</type> could yield wrong
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <function>cursor_to_xml()</function> to produce valid output
|
|
|
|
with <replaceable>tableforest</replaceable> = false
|
2017-05-07 22:56:02 +02:00
|
|
|
(Thomas Munro, Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Previously it failed to produce a wrapping <literal><table></literal>
|
2017-05-07 22:56:02 +02:00
|
|
|
element.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix roundoff problems in <function>float8_timestamptz()</function>
|
|
|
|
and <function>make_interval()</function> (Tom Lane)
|
2017-05-07 22:56:02 +02:00
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <function>pg_get_object_address()</function> to handle members of operator
|
2017-05-07 22:56:02 +02:00
|
|
|
families correctly (Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve performance of <structname>pg_timezone_names</structname> view
|
2017-05-07 22:56:02 +02:00
|
|
|
(Tom Lane, David Rowley)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Reduce memory management overhead for contexts containing many large
|
|
|
|
blocks (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix sloppy handling of corner-case errors from <function>lseek()</function>
|
|
|
|
and <function>close()</function> (Tom Lane)
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Neither of these system calls are likely to fail in typical situations,
|
2017-10-09 03:44:17 +02:00
|
|
|
but if they did, <filename>fd.c</filename> could get quite confused.
|
2017-05-07 22:56:02 +02:00
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>ecpg</application> to support <command>COMMIT PREPARED</command>
|
|
|
|
and <command>ROLLBACK PREPARED</command> (Masahiko Sawada)
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix a double-free error when processing dollar-quoted string literals
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>ecpg</application> (Michael Meskes)
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_dump</application>, fix incorrect schema and owner marking for
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid emitting an invalid list file in <literal>pg_restore -l</literal>
|
2017-05-07 22:56:02 +02:00
|
|
|
when SQL object names contain newlines (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Replace newlines by spaces, which is sufficient to make the output
|
2017-10-09 03:44:17 +02:00
|
|
|
valid for <literal>pg_restore -L</literal>'s purposes.
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_upgrade</application> to transfer comments and security labels
|
|
|
|
attached to <quote>large objects</quote> (blobs) (Stephen Frost)
|
2017-05-07 22:56:02 +02:00
|
|
|
</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
|
2017-10-09 03:44:17 +02:00
|
|
|
in <filename>contrib/adminpack</filename>'s <function>pg_file_write()</function>
|
2017-05-07 22:56:02 +02:00
|
|
|
function (Noah Misch)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Notably, it failed to detect errors reported
|
2017-10-09 03:44:17 +02:00
|
|
|
by <function>fclose()</function>.
|
2017-05-07 22:56:02 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <filename>contrib/dblink</filename>, avoid leaking the previous unnamed
|
2017-05-07 22:56:02 +02:00
|
|
|
connection when establishing a new unnamed connection (Joe Conway)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <filename>contrib/pg_trgm</filename>'s extraction of trigrams from regular
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: REL9_5_STABLE [cdf5a004b] 2017-05-06 22:21:38 -0400
|
|
|
|
Branch: REL9_4_STABLE [f14bf0a8f] 2017-05-06 22:19:56 -0400
|
|
|
|
Branch: REL9_3_STABLE [3aa16b117] 2017-05-06 22:17:35 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <filename>contrib/postgres_fdw</filename>,
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
|
|
|
<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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2017b
|
2017-05-07 22:56:02 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
abbreviation. At least for the time being, <productname>PostgreSQL</productname>
|
2017-05-07 22:56:02 +02:00
|
|
|
will continue to accept such removed abbreviations for timestamp input.
|
2017-10-09 03:44:17 +02:00
|
|
|
But they will not be shown in the <structname>pg_timezone_names</structname>
|
2017-05-07 22:56:02 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
the <filename>posixrules</filename> file in the timezone directory tree.
|
2017-05-07 22:56:02 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
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
|
2017-05-07 22:56:02 +02:00
|
|
|
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>
|
|
|
|
|
2017-02-06 21:30:16 +01:00
|
|
|
<sect1 id="release-9-5-6">
|
|
|
|
<title>Release 9.5.6</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2017-02-09</para>
|
|
|
|
</formalpara>
|
2017-02-06 21:30:16 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.5.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.6</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
However, if your installation has been affected by the bug described in
|
|
|
|
the first changelog entry below, then after updating you may need
|
|
|
|
to take action to repair corrupted indexes.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Also, if you are upgrading from a version earlier than 9.5.5,
|
|
|
|
see <xref linkend="release-9-5-5">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix a race condition that could cause indexes built
|
2017-10-09 03:44:17 +02:00
|
|
|
with <command>CREATE INDEX CONCURRENTLY</command> to be corrupt
|
2017-02-06 21:30:16 +01:00
|
|
|
(Pavan Deolasee, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
If <command>CREATE INDEX CONCURRENTLY</command> was used to build an index
|
2017-02-07 16:24:24 +01:00
|
|
|
that depends on a column not previously indexed, then rows
|
|
|
|
updated by transactions that ran concurrently with
|
2017-10-09 03:44:17 +02:00
|
|
|
the <command>CREATE INDEX</command> command could have received incorrect
|
2017-02-06 21:30:16 +01:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
along the lines of <quote>cache lookup failed for relation 1255</quote>.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The WAL record emitted for a BRIN <quote>revmap</quote> page when moving an
|
2017-02-06 21:30:16 +01:00
|
|
|
index tuple to a different page was incorrect. Replay would make the
|
|
|
|
related portion of the index useless, forcing it to be recomputed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Unconditionally WAL-log creation of the <quote>init fork</quote> for an
|
2017-02-06 21:30:16 +01:00
|
|
|
unlogged table (Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, this was skipped when <xref linkend="guc-wal-level">
|
2017-10-09 03:44:17 +02:00
|
|
|
= <literal>minimal</literal>, but actually it's necessary even in that case
|
2017-02-06 21:30:16 +01:00
|
|
|
to ensure that the unlogged table is properly reset to empty after a
|
|
|
|
crash.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: REL9_5_STABLE [c0db1ec26] 2016-11-17 13:31:30 -0300
|
|
|
|
Branch: REL9_4_STABLE [30e3cb307] 2016-11-17 13:31:30 -0300
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Reduce interlocking on standby servers during the replay of btree
|
|
|
|
index vacuuming operations (Simon Riggs)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This change avoids substantial replication delays that sometimes
|
|
|
|
occurred while replaying such operations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
If the stats collector dies during hot standby, restart it (Takayuki
|
|
|
|
Tsunakawa)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Ensure that hot standby feedback works correctly when it's enabled at
|
|
|
|
standby server start (Ants Aasma, Craig Ringer)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Check for interrupts while hot standby is waiting for a conflicting
|
|
|
|
query (Simon Riggs)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Avoid constantly respawning the autovacuum launcher in a corner case
|
|
|
|
(Amit Khandekar)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This fix avoids problems when autovacuum is nominally off and there
|
|
|
|
are some tables that require freezing, but all such tables are
|
|
|
|
already being processed by autovacuum workers.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix check for when an extension member object can be dropped (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Extension upgrade scripts should be able to drop member objects,
|
|
|
|
but this was disallowed for serial-column sequences, and possibly
|
|
|
|
other cases.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make sure <command>ALTER TABLE</command> preserves index tablespace
|
2017-02-06 21:30:16 +01:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
TABLE ... ALTER CONSTRAINT</command> (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
This avoids <quote>could not find trigger <replaceable>NNN</replaceable></quote>
|
|
|
|
or <quote>relation <replaceable>NNN</replaceable> has no triggers</quote> errors.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>ALTER TABLE ... SET DATA TYPE ... USING</command> when child
|
2017-02-06 21:30:16 +01:00
|
|
|
table has different column ordering than the parent
|
|
|
|
(Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Failure to adjust the column numbering in the <literal>USING</literal>
|
2017-02-06 21:30:16 +01:00
|
|
|
expression led to errors,
|
2017-10-09 03:44:17 +02:00
|
|
|
typically <quote>attribute <replaceable>N</replaceable> has wrong type</quote>.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix processing of OID column when a table with OIDs is associated to
|
2017-10-09 03:44:17 +02:00
|
|
|
a parent with OIDs via <command>ALTER TABLE ... INHERIT</command> (Amit
|
2017-02-06 21:30:16 +01:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>CREATE OR REPLACE VIEW</command> to update the view query
|
2017-02-06 21:30:16 +01:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
CONFIGURATION</command> (Artur Zakirov)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The wrong catalog OID was reported to extensions such as logical
|
|
|
|
decoding.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix commit timestamp mechanism to not fail when queried about
|
2017-10-09 03:44:17 +02:00
|
|
|
the special XIDs <literal>FrozenTransactionId</literal>
|
|
|
|
and <literal>BootstrapTransactionId</literal> (Craig Ringer)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
|
|
|
Branch: REL9_5_STABLE [bed2a0b06] 2016-12-13 19:14:42 -0600
|
|
|
|
Branch: REL9_4_STABLE [4b9d466c1] 2016-12-13 19:05:12 -0600
|
|
|
|
Branch: REL9_3_STABLE [5d80171ad] 2016-12-13 19:05:35 -0600
|
|
|
|
Branch: REL9_2_STABLE [60314e28e] 2016-12-13 19:08:09 -0600
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Check for serializability conflicts before reporting
|
|
|
|
constraint-violation failures (Thomas Munro)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
When using serializable transaction isolation, it is desirable
|
|
|
|
that any error due to concurrent transactions should manifest
|
|
|
|
as a serialization failure, thereby cueing the application that
|
|
|
|
a retry might succeed. Unfortunately, this does not reliably
|
|
|
|
happen for duplicate-key failures caused by concurrent insertions.
|
|
|
|
This change ensures that such an error will be reported as a
|
|
|
|
serialization error if the application explicitly checked for
|
|
|
|
the presence of a conflicting key (and did not find it) earlier
|
|
|
|
in the transaction.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix incorrect use of view reloptions as regular table reloptions (Tom
|
|
|
|
Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The symptom was spurious <quote>ON CONFLICT is not supported on table
|
2017-10-09 03:44:17 +02:00
|
|
|
... used as a catalog table</quote> errors when the target
|
|
|
|
of <command>INSERT ... ON CONFLICT</command> is a view with cascade option.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix incorrect <quote>target lists can have at most <replaceable>N</replaceable>
|
|
|
|
entries</quote> complaint when using <literal>ON CONFLICT</literal> with
|
2017-02-06 21:30:16 +01:00
|
|
|
wide tables (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Prevent multicolumn expansion of <replaceable>foo</replaceable><literal>.*</literal> in
|
|
|
|
an <command>UPDATE</command> source expression (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This led to <quote>UPDATE target count mismatch --- internal
|
2017-10-09 03:44:17 +02:00
|
|
|
error</quote>. Now the syntax is understood as a whole-row variable,
|
2017-02-06 21:30:16 +01:00
|
|
|
as it would be in other contexts.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Ensure that column typmods are determined accurately for
|
2017-10-09 03:44:17 +02:00
|
|
|
multi-row <literal>VALUES</literal> constructs (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This fixes problems occurring when the first value in a column has a
|
2017-10-09 03:44:17 +02:00
|
|
|
determinable typmod (e.g., length for a <type>varchar</type> value) but
|
2017-02-06 21:30:16 +01:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
string literal (<literal>U&'...'</literal>) or Unicode identifier
|
|
|
|
(<literal>U&"..."</literal>).
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Ensure that a purely negative text search query, such
|
2017-10-09 03:44:17 +02:00
|
|
|
as <literal>!foo</literal>, matches empty <type>tsvector</type>s (Tom Dunstan)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Such matches were found by GIN index searches, but not by sequential
|
|
|
|
scans or GiST index searches.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Prevent crash when <function>ts_rewrite()</function> replaces a non-top-level
|
2017-02-06 21:30:16 +01:00
|
|
|
subtree with an empty query (Artur Zakirov)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix performance problems in <function>ts_rewrite()</function> (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <function>ts_rewrite()</function>'s handling of nested NOT operators
|
2017-02-06 21:30:16 +01:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve speed of user-defined aggregates that
|
2017-10-09 03:44:17 +02:00
|
|
|
use <function>array_append()</function> as transition function (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <function>array_fill()</function> to handle empty arrays properly (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix possible crash in <function>array_position()</function>
|
|
|
|
or <function>array_positions()</function> when processing arrays of records
|
2017-02-06 21:30:16 +01:00
|
|
|
(Junseok Yang)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</function>
|
2017-02-06 21:30:16 +01:00
|
|
|
(Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The overrun occurred only if the input consisted entirely of single
|
|
|
|
quotes and/or backslashes.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Prevent multiple calls of <function>pg_start_backup()</function>
|
|
|
|
and <function>pg_stop_backup()</function> from running concurrently (Michael
|
2017-02-06 21:30:16 +01:00
|
|
|
Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids an assertion failure, and possibly worse things, if
|
|
|
|
someone tries to run these functions in parallel.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Disable transform that attempted to remove no-op <literal>AT TIME
|
2017-10-09 03:44:17 +02:00
|
|
|
ZONE</literal> conversions (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This resulted in wrong answers when the simplified expression was
|
|
|
|
used in an index condition.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid discarding <type>interval</type>-to-<type>interval</type> casts
|
2017-02-06 21:30:16 +01:00
|
|
|
that aren't really no-ops (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In some cases, a cast that should result in zeroing out
|
2017-10-09 03:44:17 +02:00
|
|
|
low-order <type>interval</type> fields was mistakenly deemed to be a
|
2017-02-06 21:30:16 +01:00
|
|
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
2017-10-09 03:44:17 +02:00
|
|
|
MONTH</type> to <type>INTERVAL YEAR</type> failed to clear the months field.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix bugs in transmitting GUC parameter values to parallel workers
|
|
|
|
(Michael Paquier, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Ensure that cached plans are invalidated by changes in foreign-table
|
|
|
|
options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_dump</application> to dump user-defined casts and transforms
|
2017-02-06 21:30:16 +01:00
|
|
|
that use built-in functions (Stephen Frost)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_restore</application> with <option>--create --if-exists</option>
|
2017-02-06 21:30:16 +01:00
|
|
|
to behave more sanely if an archive contains
|
2017-10-09 03:44:17 +02:00
|
|
|
unrecognized <command>DROP</command> commands (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This doesn't fix any live bug, but it may improve the behavior in
|
2017-10-09 03:44:17 +02:00
|
|
|
future if <application>pg_restore</application> is used with an archive
|
|
|
|
generated by a later <application>pg_dump</application> version.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_basebackup</application>'s rate limiting in the presence of
|
2017-02-06 21:30:16 +01:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_basebackup</application>'s handling of
|
|
|
|
symlinked <filename>pg_stat_tmp</filename> and <filename>pg_replslot</filename>
|
2017-02-06 21:30:16 +01:00
|
|
|
subdirectories (Magnus Hagander, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix possible <application>pg_basebackup</application> failure on standby
|
2017-02-06 21:30:16 +01:00
|
|
|
server when including WAL files (Amit Kapila, Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix possible mishandling of expanded arrays in domain check
|
2017-10-09 03:44:17 +02:00
|
|
|
constraints and <literal>CASE</literal> execution (Tom Lane)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
It was possible for a PL/pgSQL function invoked in these contexts to
|
|
|
|
modify or even delete an array value that needs to be preserved for
|
|
|
|
additional operations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix nested uses of PL/pgSQL functions in contexts such as domain
|
|
|
|
check constraints evaluated during assignment to a PL/pgSQL variable
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Ensure that the Python exception objects we create for PL/Python are
|
|
|
|
properly reference-counted (Rafa de la Torre, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids failures if the objects are used after a Python garbage
|
|
|
|
collection cycle has occurred.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix PL/Tcl to support triggers on tables that have <literal>.tupno</literal>
|
2017-02-06 21:30:16 +01:00
|
|
|
as a column name (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This matches the (previously undocumented) behavior of
|
2017-10-09 03:44:17 +02:00
|
|
|
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
|
2017-02-06 21:30:16 +01:00
|
|
|
there isn't a real column named that.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow DOS-style line endings in <filename>~/.pgpass</filename> files,
|
2017-02-06 21:30:16 +01:00
|
|
|
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>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix one-byte buffer overrun if <application>ecpg</application> is given a file
|
2017-02-06 21:30:16 +01:00
|
|
|
name that ends with a dot (Takayuki Tsunakawa)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>psql</application>'s tab completion for <command>ALTER DEFAULT
|
|
|
|
PRIVILEGES</command> (Gilles Darold, Stephen Frost)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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)
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, such a setting caused output intended for the pager to
|
|
|
|
vanish entirely.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <filename>contrib/dblink</filename>'s reporting of
|
|
|
|
low-level <application>libpq</application> errors, such as out-of-memory
|
2017-02-06 21:30:16 +01:00
|
|
|
(Joe Conway)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Teach <filename>contrib/dblink</filename> to ignore irrelevant server options
|
|
|
|
when it uses a <filename>contrib/postgres_fdw</filename> foreign server as
|
2017-02-06 21:30:16 +01:00
|
|
|
the source of connection options (Corey Huinker)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, if the foreign server object had options that were not
|
2017-10-09 03:44:17 +02:00
|
|
|
also <application>libpq</application> connection options, an error occurred.
|
2017-02-06 21:30:16 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix portability problems in <filename>contrib/pageinspect</filename>'s
|
2017-02-06 21:30:16 +01:00
|
|
|
functions for GIN indexes (Peter Eisentraut, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
On Windows, ensure that environment variable changes are propagated
|
|
|
|
to DLLs built with debug options (Christian Ullrich)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Sync our copy of the timezone library with IANA release tzcode2016j
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This fixes various issues, most notably that timezone data
|
|
|
|
installation failed if the target directory didn't support hard
|
|
|
|
links.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2016j
|
2017-02-06 21:30:16 +01:00
|
|
|
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>
|
|
|
|
|
2016-10-24 04:13:28 +02:00
|
|
|
<sect1 id="release-9-5-5">
|
|
|
|
<title>Release 9.5.5</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2016-10-27</para>
|
|
|
|
</formalpara>
|
2016-10-24 04:13:28 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.4.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.5</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
However, if your installation has been affected by the bug described in
|
|
|
|
the first changelog entry below, then after updating you may need
|
|
|
|
to take action to repair corrupted free space maps.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Also, if you are upgrading from a version earlier than 9.5.2,
|
|
|
|
see <xref linkend="release-9-5-2">.
|
|
|
|
</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
|
2017-10-09 03:44:17 +02:00
|
|
|
producing errors like <quote>could not read block <replaceable>XXX</replaceable>:
|
2016-10-24 04:13:28 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
<ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></ulink>.
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2017-02-06 21:30:16 +01:00
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
2016-10-24 04:13:28 +02:00
|
|
|
Branch: master [60893786d] 2016-09-03 13:28:53 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [36646d3af] 2016-09-03 13:28:53 -0400
|
|
|
|
Branch: REL9_5_STABLE [08a72872f] 2016-09-03 13:28:53 -0400
|
|
|
|
Branch: REL9_4_STABLE [a69443564] 2016-09-03 13:28:53 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix incorrect creation of GIN index WAL records on big-endian machines
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The typical symptom was <quote>unexpected GIN leaf action</quote> errors
|
2016-10-24 04:13:28 +02:00
|
|
|
during WAL replay.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [5c609a742] 2016-09-09 15:54:29 -0300
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [c3656c9ff] 2016-09-09 15:54:29 -0300
|
|
|
|
Branch: REL9_5_STABLE [f33765885] 2016-09-09 15:54:29 -0300
|
|
|
|
Branch: REL9_4_STABLE [8778da2af] 2016-09-09 15:54:29 -0300
|
|
|
|
Branch: REL9_3_STABLE [dfe7121df] 2016-09-09 15:54:29 -0300
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>SELECT FOR UPDATE/SHARE</command> to correctly lock tuples that
|
2016-10-24 04:13:28 +02:00
|
|
|
have been updated by a subsequently-aborted transaction
|
|
|
|
(Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In 9.5 and later, the <command>SELECT</command> would sometimes fail to
|
2016-10-24 04:13:28 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [96dd77d34] 2016-09-22 11:35:03 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [a88fe25f5] 2016-09-22 11:34:44 -0400
|
|
|
|
Branch: REL9_5_STABLE [c35917835] 2016-09-22 11:34:44 -0400
|
|
|
|
Branch: REL9_4_STABLE [d3dd00e67] 2016-09-22 11:34:44 -0400
|
|
|
|
Branch: REL9_3_STABLE [73df86a37] 2016-09-22 11:34:44 -0400
|
|
|
|
Branch: REL9_2_STABLE [8552f9b90] 2016-09-22 11:34:44 -0400
|
|
|
|
Branch: REL9_1_STABLE [0183df5dc] 2016-09-22 11:34:45 -0400
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [07ef03512] 2016-08-17 17:03:36 -0700
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [e79aaebcc] 2016-08-17 17:03:36 -0700
|
|
|
|
Branch: REL9_5_STABLE [94bc30725] 2016-08-17 17:03:36 -0700
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix deletion of speculatively inserted TOAST tuples when backing out
|
2017-10-09 03:44:17 +02:00
|
|
|
of <command>INSERT ... ON CONFLICT</command> (Oskari Saarenmaa)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In the race condition where two transactions try to insert conflicting
|
|
|
|
tuples at about the same time, the loser would fail with
|
2017-10-09 03:44:17 +02:00
|
|
|
an <quote>attempted to delete invisible tuple</quote> error if its
|
2016-10-24 04:13:28 +02:00
|
|
|
insertion included any TOAST'ed fields.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Don't throw serialization errors for self-conflicting insertions
|
2017-10-09 03:44:17 +02:00
|
|
|
in <command>INSERT ... ON CONFLICT</command> (Thomas Munro, Peter Geoghegan)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [2c00fad28] 2016-08-24 14:38:12 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [616be05df] 2016-08-24 14:38:13 -0400
|
|
|
|
Branch: REL9_5_STABLE [25fe5f758] 2016-08-24 14:37:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [08a823e53] 2016-08-24 14:37:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [aaad96e40] 2016-08-24 14:37:51 -0400
|
|
|
|
Branch: REL9_2_STABLE [237663897] 2016-08-24 14:37:51 -0400
|
|
|
|
Branch: REL9_1_STABLE [3570ea424] 2016-08-24 14:37:51 -0400
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [ae4760d66] 2016-08-24 22:20:25 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [006fb80a5] 2016-08-24 22:20:26 -0400
|
|
|
|
Branch: REL9_5_STABLE [46bd14a10] 2016-08-24 22:20:01 -0400
|
|
|
|
Branch: REL9_4_STABLE [566afa15c] 2016-08-24 22:20:01 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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
|
2016-10-24 04:13:28 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>COPY</command> with a column name list from a table that has
|
2016-10-24 04:13:28 +02:00
|
|
|
row-level security enabled (Adam Brightwell)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>EXPLAIN</command> to emit valid XML when
|
2016-10-24 04:13:28 +02:00
|
|
|
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously the XML output-format option produced syntactically invalid
|
2017-10-09 03:44:17 +02:00
|
|
|
tags such as <literal><I/O-Read-Time></literal>. That is now
|
|
|
|
rendered as <literal><I-O-Read-Time></literal>.
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master Release: REL9_6_BR [4b234fd8b] 2016-08-12 12:13:04 -0400
|
|
|
|
Branch: REL9_5_STABLE [ed2d7b8c8] 2016-08-12 12:13:04 -0400
|
|
|
|
Branch: REL9_4_STABLE [85974b468] 2016-08-12 12:13:04 -0400
|
|
|
|
Branch: REL9_3_STABLE [16cc6d23b] 2016-08-12 12:13:04 -0400
|
|
|
|
Branch: REL9_2_STABLE [ceb005319] 2016-08-12 12:13:04 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Suppress printing of zeroes for unmeasured times
|
2017-10-09 03:44:17 +02:00
|
|
|
in <command>EXPLAIN</command> (Maksim Milyutin)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Certain option combinations resulted in printing zero values for times
|
|
|
|
that actually aren't ever measured in that combination. Our general
|
2017-10-09 03:44:17 +02:00
|
|
|
policy in <command>EXPLAIN</command> is not to print such fields at all, so
|
2016-10-24 04:13:28 +02:00
|
|
|
do that consistently in all cases.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix statistics update for <command>TRUNCATE</command> in a prepared
|
2016-10-24 04:13:28 +02:00
|
|
|
transaction (Stas Kelvich)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Simon Riggs <simon@2ndQuadrant.com>
|
|
|
|
Branch: master [dcb12ce8d] 2016-09-06 15:35:47 +0100
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [1fa42debe] 2016-09-09 11:43:08 +0100
|
|
|
|
Branch: REL9_5_STABLE [f3b3e871e] 2016-09-09 11:43:46 +0100
|
|
|
|
Branch: REL9_4_STABLE [81b0f8204] 2016-09-09 11:44:54 +0100
|
|
|
|
Branch: REL9_3_STABLE [e1dddf3e8] 2016-09-09 11:45:16 +0100
|
|
|
|
Branch: REL9_2_STABLE [eaf6fe7fa] 2016-09-09 11:45:40 +0100
|
|
|
|
Branch: REL9_1_STABLE [3ed7f54bc] 2016-09-09 11:46:03 +0100
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix timeout length when <command>VACUUM</command> is waiting for exclusive
|
2016-10-24 04:13:28 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
50 microseconds, causing <command>VACUUM</command> to give up on truncation
|
2016-10-24 04:13:28 +02:00
|
|
|
much more easily than intended. Set it to the intended value.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix bugs in merging inherited <literal>CHECK</literal> constraints while
|
2016-10-24 04:13:28 +02:00
|
|
|
creating or altering a table (Tom Lane, Amit Langote)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow identical <literal>CHECK</literal> constraints to be added to a parent
|
2016-10-24 04:13:28 +02:00
|
|
|
and child table in either order. Prevent merging of a valid
|
2017-10-09 03:44:17 +02:00
|
|
|
constraint from the parent table with a <literal>NOT VALID</literal>
|
2016-10-24 04:13:28 +02:00
|
|
|
constraint on the child. Likewise, prevent merging of a <literal>NO
|
2017-10-09 03:44:17 +02:00
|
|
|
INHERIT</literal> child constraint with an inherited constraint.
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Show a sensible value
|
2017-10-09 03:44:17 +02:00
|
|
|
in <structname>pg_settings</structname>.<structfield>unit</structfield>
|
|
|
|
for <varname>min_wal_size</varname> and <varname>max_wal_size</varname> (Tom Lane)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master Release: REL9_6_BR [9389fbd03] 2016-08-14 15:06:01 -0400
|
|
|
|
Branch: REL9_5_STABLE [635651214] 2016-08-14 15:06:01 -0400
|
|
|
|
Branch: REL9_4_STABLE [4ac3d7794] 2016-08-14 15:06:01 -0400
|
|
|
|
Branch: REL9_3_STABLE [e8e20aadd] 2016-08-14 15:06:02 -0400
|
|
|
|
Branch: REL9_2_STABLE [9d5bf77b5] 2016-08-14 15:06:02 -0400
|
|
|
|
Branch: REL9_1_STABLE [7e01c8ef3] 2016-08-14 15:06:02 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Remove artificial restrictions on the values accepted
|
2017-10-09 03:44:17 +02:00
|
|
|
by <function>numeric_in()</function> and <function>numeric_recv()</function>
|
2016-10-24 04:13:28 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
We allow numeric values up to the limit of the storage format (more
|
2017-10-09 03:44:17 +02:00
|
|
|
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
|
2016-10-24 04:13:28 +02:00
|
|
|
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>
|
|
|
|
|
2016-10-24 15:37:23 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Preserve commit timestamps across server restart
|
|
|
|
(Julien Rouhaud, Craig Ringer)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
With <xref linkend="guc-track-commit-timestamp"> turned on, old
|
|
|
|
commit timestamps became inaccessible after a clean server restart.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2016-10-24 04:13:28 +02:00
|
|
|
<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: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [008c4135c] 2016-08-22 15:22:11 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [48b9ca0b6] 2016-08-22 15:30:31 -0400
|
|
|
|
Branch: REL9_5_STABLE [da9659f87] 2016-08-22 15:30:37 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix possible sorting error when aborting use of abbreviated keys
|
|
|
|
(Peter Geoghegan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In the worst case, this could result in a corrupt btree index, which
|
2017-10-09 03:44:17 +02:00
|
|
|
would need to be rebuilt using <command>REINDEX</command>. However, the
|
2016-10-24 04:13:28 +02:00
|
|
|
situation is believed to be rare.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [769fd9d8e] 2016-09-08 16:51:09 -0700
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [f6802936a] 2016-09-08 16:52:13 -0700
|
|
|
|
Branch: REL9_5_STABLE [26ce63ce7] 2016-09-08 16:52:13 -0700
|
|
|
|
Branch: REL9_4_STABLE [075cfbe4a] 2016-09-08 16:52:13 -0700
|
|
|
|
Branch: REL9_3_STABLE [d2a5b2b28] 2016-09-08 16:52:13 -0700
|
|
|
|
Branch: REL9_2_STABLE [f5462dedb] 2016-09-08 16:52:13 -0700
|
|
|
|
Branch: REL9_1_STABLE [08fdfe7a8] 2016-09-08 16:52:13 -0700
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix file descriptor leakage when truncating a temporary relation of
|
|
|
|
more than 1GB (Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [0e0f43d6f] 2016-08-31 08:52:13 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [3fc489cb3] 2016-08-31 08:52:13 -0400
|
|
|
|
Branch: REL9_5_STABLE [c40bb1155] 2016-08-31 08:52:13 -0400
|
|
|
|
Branch: REL9_4_STABLE [f4e40537e] 2016-08-31 08:52:13 -0400
|
|
|
|
Branch: REL9_3_STABLE [baf111d31] 2016-08-31 08:52:13 -0400
|
|
|
|
Branch: REL9_2_STABLE [823df401d] 2016-08-31 08:52:13 -0400
|
|
|
|
Branch: REL9_1_STABLE [e3439a455] 2016-08-31 08:52:13 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Disallow starting a standalone backend with <literal>standby_mode</literal>
|
2016-10-24 04:13:28 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [2d7e59100] 2016-08-17 13:15:03 -0700
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [8cb23dba8] 2016-08-17 13:15:03 -0700
|
|
|
|
Branch: REL9_5_STABLE [de396a1cb] 2016-08-17 13:15:03 -0700
|
|
|
|
Branch: REL9_4_STABLE [690a2fb90] 2016-08-17 13:15:04 -0700
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
prevent <command>VACUUM</command> from removing dead tuples.
|
2016-10-24 04:13:28 +02:00
|
|
|
</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>
|
2017-10-09 03:44:17 +02:00
|
|
|
This avoids possible failures during <function>munmap()</function> on systems
|
2016-10-24 04:13:28 +02:00
|
|
|
with atypical default huge page sizes. Except in crash-recovery
|
|
|
|
cases, there were no ill effects other than a log message.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [470d886c3] 2016-09-20 12:26:29 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [92668cd4d] 2016-09-20 12:28:02 -0400
|
|
|
|
Branch: REL9_5_STABLE [b1aed95f5] 2016-09-20 12:30:38 -0400
|
|
|
|
Branch: REL9_4_STABLE [626312d1b] 2016-09-20 12:30:42 -0400
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [49a91b88e] 2016-09-23 09:54:11 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [b251379fb] 2016-09-23 09:54:11 -0400
|
|
|
|
Branch: REL9_5_STABLE [93528f7b4] 2016-09-23 09:54:11 -0400
|
|
|
|
Branch: REL9_4_STABLE [32cdf680f] 2016-09-23 09:54:11 -0400
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
derived from <function>random()</function> but <function>srandom()</function> had not
|
2016-10-24 04:13:28 +02:00
|
|
|
yet been called. While relatively harmless, this was not the intended
|
|
|
|
behavior.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [419113dfd] 2016-09-20 12:04:41 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [6bcd26c43] 2016-09-20 12:12:27 -0400
|
|
|
|
Branch: REL9_5_STABLE [c124e3649] 2016-09-20 12:12:31 -0400
|
|
|
|
Branch: REL9_4_STABLE [c23b2523d] 2016-09-20 12:12:36 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
On Windows, retry creation of the dynamic shared memory control
|
|
|
|
segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Windows sometimes returns <literal>ERROR_ACCESS_DENIED</literal> rather
|
|
|
|
than <literal>ERROR_ALREADY_EXISTS</literal> when there is an existing
|
2016-10-24 04:13:28 +02:00
|
|
|
segment. This led to postmaster startup failure due to believing that
|
|
|
|
the former was an unrecoverable error.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [5697522d8] 2016-08-18 14:49:08 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [c81c71d88] 2016-08-18 14:48:51 -0400
|
|
|
|
Branch: REL9_5_STABLE [a8fc19505] 2016-08-18 14:48:51 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>PL/pgSQL</application> to not misbehave with parameters and
|
|
|
|
local variables of type <type>int2vector</type> or <type>oidvector</type>
|
2016-10-24 04:13:28 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Don't try to share SSL contexts across multiple connections
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>libpq</application> (Heikki Linnakangas)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This led to assorted corner-case bugs, particularly when trying to use
|
|
|
|
different SSL parameters for different connections.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid corner-case memory leak in <application>libpq</application> (Tom Lane)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The reported problem involved leaking an error report
|
2017-10-09 03:44:17 +02:00
|
|
|
during <function>PQreset()</function>, but there might be related cases.
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
|
|
Branch: master [3fcc98c99] 2016-09-18 13:46:32 +0300
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [e06728d63] 2016-09-18 13:56:11 +0300
|
|
|
|
Branch: REL9_5_STABLE [7c177ddc2] 2016-09-18 13:56:52 +0300
|
|
|
|
Branch: REL9_4_STABLE [d48e10a68] 2016-09-18 13:59:57 +0300
|
|
|
|
Branch: REL9_3_STABLE [b31f335bf] 2016-09-18 14:00:10 +0300
|
|
|
|
Branch: REL9_2_STABLE [a4a3fac16] 2016-09-18 14:00:13 +0300
|
|
|
|
Branch: REL9_1_STABLE [ed29d2de2] 2016-09-18 14:07:30 +0300
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>ecpg</application>'s <option>--help</option> and <option>--version</option>
|
2016-10-24 04:13:28 +02:00
|
|
|
options work consistently with our other executables (Haribabu Kommi)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
|
|
Branch: master [40c3fe498] 2016-09-19 22:55:43 +0300
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [f65764a04] 2016-09-19 22:55:50 +0300
|
|
|
|
Branch: REL9_5_STABLE [edb5c4097] 2016-09-19 22:58:03 +0300
|
|
|
|
Branch: REL9_4_STABLE [476945c45] 2016-09-19 22:59:44 +0300
|
|
|
|
Branch: master [65c655638] 2016-09-21 13:14:48 +0300
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [93834a20f] 2016-09-21 13:16:02 +0300
|
|
|
|
Branch: REL9_5_STABLE [b93d37474] 2016-09-21 13:16:20 +0300
|
|
|
|
Branch: REL9_4_STABLE [f16d4a241] 2016-09-21 13:16:24 +0300
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pgbench</application>'s calculation of average latency
|
2016-10-24 04:13:28 +02:00
|
|
|
(Fabien Coelho)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The calculation was incorrect when there were <literal>\sleep</literal>
|
2016-10-24 04:13:28 +02:00
|
|
|
commands in the script, or when the test duration was specified in
|
|
|
|
number of transactions rather than total time.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_upgrade</application>, check library loadability in name order
|
2016-10-24 04:13:28 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is a workaround to deal with cross-extension dependencies from
|
|
|
|
language transform modules to their base language and data type
|
|
|
|
modules.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [12f6eadff] 2016-09-23 13:49:26 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [7e02476f3] 2016-09-23 13:49:26 -0400
|
|
|
|
Branch: REL9_5_STABLE [96e16d739] 2016-09-23 13:49:26 -0400
|
|
|
|
Branch: REL9_4_STABLE [912ea1945] 2016-09-23 13:49:27 -0400
|
|
|
|
Branch: REL9_3_STABLE [f39bb487d] 2016-09-23 13:49:27 -0400
|
|
|
|
Branch: REL9_2_STABLE [53b29d986] 2016-09-23 13:49:27 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_dump</application>, never dump range constructor functions
|
2016-10-24 04:13:28 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This oversight led to <application>pg_upgrade</application> failures with
|
2016-10-24 04:13:28 +02:00
|
|
|
extensions containing range types, due to duplicate creation of the
|
|
|
|
constructor functions.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [e97e9c57b] 2016-09-08 10:48:03 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [a88cee90f] 2016-09-08 10:48:03 -0400
|
|
|
|
Branch: REL9_5_STABLE [142a110b3] 2016-09-08 10:48:03 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_dump</application> with <option>-C</option>,
|
|
|
|
suppress <literal>TABLESPACE</literal> clause of <command>CREATE DATABASE</command>
|
|
|
|
if <option>--no-tablespaces</option> is specified (Tom Lane)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Simon Riggs <simon@2ndQuadrant.com>
|
|
|
|
Branch: master [49340627f] 2016-08-29 12:16:18 +0100
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [216fd7fe7] 2016-08-29 12:18:12 +0100
|
|
|
|
Branch: REL9_5_STABLE [9050e5c89] 2016-08-29 12:18:57 +0100
|
|
|
|
Branch: REL9_5_STABLE [3aa233f82] 2016-08-29 18:12:04 -0300
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_receivexlog</application> work correctly
|
|
|
|
with <option>--synchronous</option> without slots (Gabriele Bartolini)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Disallow specifying both <option>--source-server</option>
|
|
|
|
and <option>--source-target</option> options to <application>pg_rewind</application>
|
2016-10-24 04:13:28 +02:00
|
|
|
(Michael Banck)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_rewind</application> turn off <varname>synchronous_commit</varname>
|
2016-10-24 04:13:28 +02:00
|
|
|
in its session on the source server (Michael Banck, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This allows <application>pg_rewind</application> to work even when the source
|
2016-10-24 04:13:28 +02:00
|
|
|
server is using synchronous replication that is not working for some
|
|
|
|
reason.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_xlogdump</application>, retry opening new WAL segments when
|
|
|
|
using <option>--follow</option> option (Magnus Hagander)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows for a possible delay in the server's creation of the next
|
|
|
|
segment.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
|
|
Branch: master [bab7823a4] 2016-08-29 14:34:58 +0900
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [2802b02a5] 2016-08-29 14:35:40 +0900
|
|
|
|
Branch: REL9_5_STABLE [7dfb9b479] 2016-08-29 14:35:51 +0900
|
|
|
|
Branch: REL9_4_STABLE [314a25fb3] 2016-08-29 14:38:17 +0900
|
|
|
|
Branch: REL9_3_STABLE [5833306dd] 2016-08-29 15:51:30 +0900
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_xlogdump</application> to cope with a WAL file that begins
|
2016-10-24 04:13:28 +02:00
|
|
|
with a continuation record spanning more than one page (Pavan
|
|
|
|
Deolasee)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [8a503526e] 2016-09-15 09:30:38 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [bea38f34a] 2016-09-15 09:30:37 -0400
|
|
|
|
Branch: REL9_5_STABLE [60b6d99da] 2016-09-15 09:30:36 -0400
|
|
|
|
Branch: REL9_4_STABLE [1336bd986] 2016-09-15 09:22:52 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <filename>contrib/pg_buffercache</filename> to work
|
|
|
|
when <varname>shared_buffers</varname> exceeds 256GB (KaiGai Kohei)
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [6657acc01] 2016-08-17 15:51:10 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [d715b76d1] 2016-08-17 15:51:10 -0400
|
|
|
|
Branch: REL9_5_STABLE [509815ed7] 2016-08-17 15:51:10 -0400
|
|
|
|
Branch: REL9_4_STABLE [3fa8ec44d] 2016-08-17 15:51:10 -0400
|
|
|
|
Branch: REL9_3_STABLE [7baa8bfca] 2016-08-17 15:51:10 -0400
|
|
|
|
Branch: REL9_2_STABLE [60bb1bb12] 2016-08-17 15:51:11 -0400
|
|
|
|
Branch: REL9_1_STABLE [9942376a5] 2016-08-17 15:51:11 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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
|
2016-10-24 04:13:28 +02:00
|
|
|
(Daniel Gustafsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
|
|
Branch: master [593d4e47d] 2016-09-15 14:42:29 +0300
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [fcd93e4af] 2016-09-15 12:55:38 +0300
|
|
|
|
Branch: REL9_5_STABLE [e2838c580] 2016-09-15 14:51:42 +0300
|
|
|
|
Branch: master [5c6df67e0] 2016-09-15 22:52:51 +0300
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [9895818d5] 2016-09-15 22:45:08 +0300
|
|
|
|
Branch: REL9_5_STABLE [48e5ba61e] 2016-09-15 22:38:01 +0300
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Support OpenSSL 1.1.0 (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [c3a081846] 2016-09-23 15:50:00 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [5a83e2d4e] 2016-09-23 15:50:00 -0400
|
|
|
|
Branch: REL9_5_STABLE [025c9a722] 2016-09-23 15:50:00 -0400
|
|
|
|
Branch: REL9_4_STABLE [5d41f27a9] 2016-09-23 15:50:00 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Install TAP test infrastructure so that it's available for extension
|
|
|
|
testing (Craig Ringer)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
When <productname>PostgreSQL</productname> has been configured
|
|
|
|
with <option>--enable-tap-tests</option>, <quote>make install</quote> will now
|
2016-10-24 04:13:28 +02:00
|
|
|
install the Perl support files for TAP testing where PGXS can find
|
|
|
|
them. This allows non-core extensions to
|
2017-10-09 03:44:17 +02:00
|
|
|
use <literal>$(prove_check)</literal> without extra tests.
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [8614b39bc] 2016-09-19 14:25:57 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [156f974f5] 2016-09-19 14:27:04 -0400
|
|
|
|
Branch: REL9_5_STABLE [52acf020a] 2016-09-19 14:27:08 -0400
|
|
|
|
Branch: REL9_4_STABLE [ca93b816f] 2016-09-19 14:27:13 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In MSVC builds, include <application>pg_recvlogical</application> in a
|
2016-10-24 04:13:28 +02:00
|
|
|
client-only installation (MauMau)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
|
|
Branch: master [a79a68562] 2016-08-18 12:32:42 +0200
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [191d45793] 2016-08-18 12:37:55 +0200
|
|
|
|
Branch: REL9_5_STABLE [a0833b972] 2016-08-18 15:35:12 +0200
|
|
|
|
Branch: REL9_4_STABLE [1d990cd8c] 2016-08-18 15:35:26 +0200
|
|
|
|
Branch: REL9_3_STABLE [e8aed974b] 2016-08-18 15:35:36 +0200
|
|
|
|
Branch: REL9_2_STABLE [35982db49] 2016-08-18 15:35:43 +0200
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Update Windows time zone mapping to recognize some time zone names
|
|
|
|
added in recent Windows versions (Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [39b691f25] 2016-09-02 17:30:02 -0400
|
|
|
|
Branch: REL9_6_STABLE Release: REL9_6_0 [32c9950b3] 2016-09-02 17:29:31 -0400
|
|
|
|
Branch: REL9_5_STABLE [73a802a41] 2016-09-02 17:29:31 -0400
|
|
|
|
Branch: REL9_4_STABLE [7430ac852] 2016-09-02 17:29:32 -0400
|
|
|
|
Branch: REL9_3_STABLE [ee78d4885] 2016-09-02 17:29:32 -0400
|
|
|
|
Branch: REL9_2_STABLE [1195b8efe] 2016-09-02 17:29:32 -0400
|
|
|
|
Branch: REL9_1_STABLE [380dad29d] 2016-09-02 17:29:32 -0400
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
their time zone database, as they did in <application>tzdata</application>
|
2016-10-24 04:13:28 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
the <structname>pg_timezone_abbrevs</structname> view to fail altogether.
|
2016-10-24 04:13:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2016h
|
2016-10-24 04:13:28 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
abbreviation. At least for the time being, <productname>PostgreSQL</productname>
|
2016-10-24 04:13:28 +02:00
|
|
|
will continue to accept such removed abbreviations for timestamp input.
|
2017-10-09 03:44:17 +02:00
|
|
|
But they will not be shown in the <structname>pg_timezone_names</structname>
|
2016-10-24 04:13:28 +02:00
|
|
|
view nor used for output.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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>
|
2016-10-24 04:13:28 +02:00
|
|
|
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
2016-08-07 04:08:31 +02:00
|
|
|
<sect1 id="release-9-5-4">
|
|
|
|
<title>Release 9.5.4</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2016-08-11</para>
|
|
|
|
</formalpara>
|
2016-08-07 04:08:31 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.3.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.4</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
However, if you are upgrading from a version earlier than 9.5.2,
|
|
|
|
see <xref linkend="release-9-5-2">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
2016-08-08 17:56:10 +02:00
|
|
|
Branch: master [f0c7b789a] 2016-08-08 10:33:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [98b0c6280] 2016-08-08 10:33:46 -0400
|
|
|
|
Branch: REL9_4_STABLE [f40618092] 2016-08-08 10:33:47 -0400
|
|
|
|
Branch: REL9_3_STABLE [6c954a6a5] 2016-08-08 10:33:47 -0400
|
|
|
|
Branch: REL9_2_STABLE [8b32516db] 2016-08-08 10:33:47 -0400
|
|
|
|
Branch: REL9_1_STABLE [5327b764a] 2016-08-08 10:33:47 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix possible mis-evaluation of
|
2017-10-09 03:44:17 +02:00
|
|
|
nested <literal>CASE</literal>-<literal>WHEN</literal> expressions (Heikki
|
2016-08-08 17:56:10 +02:00
|
|
|
Linnakangas, Michael Paquier, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
A <literal>CASE</literal> expression appearing within the test value
|
|
|
|
subexpression of another <literal>CASE</literal> could become confused about
|
2016-08-08 17:56:10 +02:00
|
|
|
whether its own test value was null or not. Also, inlining of a SQL
|
|
|
|
function implementing the equality operator used by
|
2017-10-09 03:44:17 +02:00
|
|
|
a <literal>CASE</literal> expression could result in passing the wrong test
|
|
|
|
value to functions called within a <literal>CASE</literal> expression in the
|
2016-08-08 17:56:10 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
|
|
Branch: master [fcd15f135] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [286c8bc64] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [254eb04f1] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [95a6855c5] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_2_STABLE [e8f4922c8] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: REL9_1_STABLE [a2385cac1] 2016-08-08 10:07:54 -0400
|
|
|
|
Branch: master [41f18f021] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [8adff3783] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [6df8ff49d] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [c1b048f49] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_2_STABLE [f1d0b09cf] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: REL9_1_STABLE [d2dd5df51] 2016-08-08 10:07:54 -0400
|
|
|
|
Branch: REL9_2_STABLE [a19edcd24] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: REL9_1_STABLE [c761c9fee] 2016-08-08 10:07:54 -0400
|
|
|
|
Branch: master [bd6537185] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [2e5e90d8d] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [18392ed4a] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [395d565ac] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_2_STABLE [483715529] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: REL9_1_STABLE [2d69f5b12] 2016-08-08 10:07:54 -0400
|
|
|
|
Branch: master [142c24c23] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [ec3aebdbd] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [6bec1a6c8] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [0f679d2c1] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_2_STABLE [ffbdab65d] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: REL9_1_STABLE [61c2cd88d] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: master [c40071717] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [640768ceb] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [aed038795] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [05abd3bcf] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_2_STABLE [a466ea33c] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_1_STABLE [ba8c4089d] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: master [9d924e9a6] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [6655c0757] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [afabfcc0e] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [dfb2d8039] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_2_STABLE [f744e8906] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_1_STABLE [cf7e5f55b] 2016-08-08 10:07:53 -0400
|
|
|
|
Branch: master [984e5beb3] 2016-08-08 10:07:46 -0400
|
|
|
|
Branch: REL9_5_STABLE [db951dd19] 2016-08-08 10:07:50 -0400
|
|
|
|
Branch: REL9_4_STABLE [fed83cdac] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [a44d71351] 2016-08-08 10:07:51 -0400
|
|
|
|
Branch: REL9_2_STABLE [0cc3b12d2] 2016-08-08 10:07:52 -0400
|
|
|
|
Branch: REL9_1_STABLE [aed766ab5] 2016-08-08 10:07:53 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix client programs' handling of special characters in database and
|
|
|
|
role names (Noah Misch, Nathan Bossart, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Numerous places in <application>vacuumdb</application> and other client programs
|
2016-08-08 17:56:10 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>psql</application>'s <command>\connect</command>
|
|
|
|
and <command>\password</command> commands to match the documentation.
|
2016-08-08 17:56:10 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Introduce a new <option>-reuse-previous</option> option
|
|
|
|
in <application>psql</application>'s <command>\connect</command> command to allow
|
2016-08-08 17:56:10 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
characters in <application>pg_dumpall</application> scripts.
|
2016-08-08 17:56:10 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<application>pg_dumpall</application> now refuses to deal with database and role
|
2016-08-08 17:56:10 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
executes <application>pg_dumpall</application> or other routine maintenance
|
2016-08-08 17:56:10 +02:00
|
|
|
operations. (CVE-2016-5424)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
2016-08-07 04:08:31 +02:00
|
|
|
Branch: master [4452000f3] 2016-07-26 15:25:02 -0400
|
|
|
|
Branch: REL9_5_STABLE [d2ef7758d] 2016-07-26 15:25:02 -0400
|
|
|
|
Branch: REL9_4_STABLE [0733188cc] 2016-07-26 15:25:02 -0400
|
|
|
|
Branch: REL9_3_STABLE [c235d510e] 2016-07-26 15:25:02 -0400
|
|
|
|
Branch: REL9_2_STABLE [bcdd8a194] 2016-07-26 15:25:02 -0400
|
|
|
|
Branch: REL9_1_STABLE [d243bf77c] 2016-07-26 15:25:02 -0400
|
|
|
|
Branch: master [9492cf86e] 2016-07-28 16:09:15 -0400
|
|
|
|
Branch: REL9_5_STABLE [1e2f96f0a] 2016-07-28 16:09:15 -0400
|
|
|
|
Branch: REL9_4_STABLE [66f7e4081] 2016-07-28 16:09:15 -0400
|
|
|
|
Branch: REL9_3_STABLE [069714387] 2016-07-28 16:09:15 -0400
|
|
|
|
Branch: REL9_2_STABLE [7b8526e5d] 2016-07-28 16:09:15 -0400
|
|
|
|
Branch: REL9_1_STABLE [c0e5096fc] 2016-07-28 16:09:15 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix corner-case misbehaviors for <literal>IS NULL</literal>/<literal>IS NOT
|
|
|
|
NULL</literal> applied to nested composite values (Andrew Gierth, Tom Lane)
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The SQL standard specifies that <literal>IS NULL</literal> should return
|
2016-08-07 04:08:31 +02:00
|
|
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
2017-10-09 03:44:17 +02:00
|
|
|
NULL</literal> yields TRUE), but this is not meant to apply recursively
|
|
|
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</literal> yields FALSE).
|
2016-08-07 04:08:31 +02:00
|
|
|
The core executor got this right, but certain planner optimizations
|
|
|
|
treated the test as recursive (thus producing TRUE in both cases),
|
2017-10-09 03:44:17 +02:00
|
|
|
and <filename>contrib/postgres_fdw</filename> could produce remote queries
|
2016-08-07 04:08:31 +02:00
|
|
|
that misbehaved similarly.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [eae1ad9b6] 2016-05-23 19:23:36 -0400
|
|
|
|
Branch: REL9_5_STABLE [e504d915b] 2016-05-23 19:23:36 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <quote>unrecognized node type</quote> error for <command>INSERT ... ON
|
|
|
|
CONFLICT</command> within a recursive CTE (a <literal>WITH</literal> item) (Peter
|
2016-08-07 04:08:31 +02:00
|
|
|
Geoghegan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [26e66184d] 2016-05-11 16:20:23 -0400
|
|
|
|
Branch: REL9_5_STABLE [58d802410] 2016-05-11 16:20:03 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>INSERT ... ON CONFLICT</command> to successfully match index
|
2016-08-07 04:08:31 +02:00
|
|
|
expressions or index predicates that are simplified during the
|
|
|
|
planner's expression preprocessing phase (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [9c810a2ed] 2016-07-04 16:09:11 -0400
|
|
|
|
Branch: REL9_5_STABLE [31ce32ade] 2016-07-04 16:09:11 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Correctly handle violations of exclusion constraints that apply to
|
2017-10-09 03:44:17 +02:00
|
|
|
the target table of an <literal>INSERT ... ON CONFLICT</literal> command,
|
2016-08-07 04:08:31 +02:00
|
|
|
but are not one of the selected arbiter indexes (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Such a case should raise a normal constraint-violation error, but it
|
|
|
|
got into an infinite loop instead.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [8a13d5e6d] 2016-05-11 17:06:53 -0400
|
|
|
|
Branch: REL9_5_STABLE [428484ce1] 2016-05-11 17:06:53 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>INSERT ... ON CONFLICT</command> to not fail if the target
|
2016-08-07 04:08:31 +02:00
|
|
|
table has a unique index on OID (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [4c56f3269] 2016-06-16 17:16:32 -0400
|
|
|
|
Branch: REL9_5_STABLE [a41b14f94] 2016-06-16 17:16:40 -0400
|
|
|
|
Branch: REL9_4_STABLE [2a8b5d210] 2016-06-16 17:16:44 -0400
|
|
|
|
Branch: REL9_3_STABLE [519445ba2] 2016-06-16 17:16:48 -0400
|
|
|
|
Branch: REL9_2_STABLE [f66e0fec3] 2016-06-16 17:16:53 -0400
|
|
|
|
Branch: REL9_1_STABLE [7b97dafa2] 2016-06-16 17:16:58 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make the <type>inet</type> and <type>cidr</type> data types properly reject
|
2016-08-07 04:08:31 +02:00
|
|
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [278148907] 2016-07-16 14:42:37 -0400
|
|
|
|
Branch: REL9_5_STABLE [884bae143] 2016-07-16 14:42:37 -0400
|
|
|
|
Branch: REL9_4_STABLE [59fa0195c] 2016-07-16 14:42:37 -0400
|
|
|
|
Branch: REL9_3_STABLE [16e28fcec] 2016-07-16 14:42:37 -0400
|
|
|
|
Branch: REL9_2_STABLE [89b301104] 2016-07-16 14:42:37 -0400
|
|
|
|
Branch: REL9_1_STABLE [608cc0c41] 2016-07-16 14:42:37 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Prevent crash in <function>close_ps()</function>
|
|
|
|
(the <type>point</type> <literal>##</literal> <type>lseg</type> operator)
|
2016-08-07 04:08:31 +02:00
|
|
|
for NaN input coordinates (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Make it return NULL instead of crashing.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [0daeba0e9] 2016-07-01 11:40:33 -0400
|
|
|
|
Branch: REL9_5_STABLE [40d0bd8d5] 2016-07-01 11:40:22 -0400
|
|
|
|
Branch: REL9_4_STABLE [b25d87f91] 2016-07-01 11:40:22 -0400
|
|
|
|
Branch: REL9_3_STABLE [b0f20c2ea] 2016-07-01 11:40:22 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid possible crash in <function>pg_get_expr()</function> when inconsistent
|
2016-08-07 04:08:31 +02:00
|
|
|
values are passed to it (Michael Paquier, Thomas Munro)
|
|
|
|
</para>
|
2016-08-08 17:56:10 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
|
|
Branch: master [9a46324fd] 2016-08-08 11:12:59 -0400
|
|
|
|
Branch: REL9_5_STABLE [04cee8f83] 2016-08-08 11:13:25 -0400
|
|
|
|
Branch: REL9_4_STABLE [20f870fd7] 2016-08-08 11:13:34 -0400
|
|
|
|
Branch: REL9_3_STABLE [43d7a0af5] 2016-08-08 11:13:40 -0400
|
|
|
|
Branch: REL9_2_STABLE [b0134fe84] 2016-08-08 11:13:45 -0400
|
|
|
|
Branch: REL9_1_STABLE [d555d2642] 2016-08-08 11:13:51 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix several one-byte buffer over-reads in <function>to_number()</function>
|
2016-08-08 17:56:10 +02:00
|
|
|
(Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In several cases the <function>to_number()</function> function would read one
|
2016-08-08 17:56:10 +02:00
|
|
|
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>
|
2016-08-07 04:08:31 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [874fe3aea] 2016-06-27 15:57:50 -0400
|
|
|
|
Branch: REL9_5_STABLE [1651b9aa2] 2016-06-27 15:57:21 -0400
|
|
|
|
Branch: REL9_4_STABLE [dc9e03bf4] 2016-06-27 15:57:21 -0400
|
|
|
|
Branch: REL9_3_STABLE [17bfef80e] 2016-06-27 15:57:21 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Do not run the planner on the query contained in <literal>CREATE
|
2017-10-09 03:44:17 +02:00
|
|
|
MATERIALIZED VIEW</literal> or <literal>CREATE TABLE AS</literal>
|
|
|
|
when <literal>WITH NO DATA</literal> is specified (Michael Paquier,
|
2016-08-07 04:08:31 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [bfa2ab56b] 2016-07-15 17:49:48 -0700
|
|
|
|
Branch: REL9_5_STABLE [1f9534b49] 2016-07-15 17:49:48 -0700
|
|
|
|
Branch: REL9_4_STABLE [3d5b227ba] 2016-07-15 17:49:48 -0700
|
|
|
|
Branch: REL9_3_STABLE [2e51ae1f6] 2016-07-15 17:49:48 -0700
|
|
|
|
Branch: REL9_2_STABLE [941557f18] 2016-07-15 17:49:48 -0700
|
|
|
|
Branch: REL9_1_STABLE [37276017f] 2016-07-15 17:49:49 -0700
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Avoid unsafe intermediate state during expensive paths
|
2017-10-09 03:44:17 +02:00
|
|
|
through <function>heap_update()</function> (Masahiko Sawada, Andres Freund)
|
2016-08-07 04:08:31 +02:00
|
|
|
</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>
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [a4d357bfb] 2016-07-15 14:45:37 -0700
|
|
|
|
Branch: REL9_5_STABLE [b33e81cba] 2016-07-15 14:45:38 -0700
|
|
|
|
Branch: REL9_4_STABLE [f66828ba6] 2016-07-15 14:50:46 -0700
|
|
|
|
Branch: REL9_3_STABLE [46acbeb2f] 2016-07-15 14:51:03 -0700
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [533e9c6b0] 2016-07-15 14:17:20 -0400
|
|
|
|
Branch: REL9_5_STABLE [649dd1b58] 2016-07-15 14:17:20 -0400
|
|
|
|
Branch: REL9_4_STABLE [166873dd0] 2016-07-15 14:17:20 -0400
|
|
|
|
Branch: REL9_3_STABLE [6c243f90a] 2016-07-15 14:17:20 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid unnecessary <quote>could not serialize access</quote> errors when
|
|
|
|
acquiring <literal>FOR KEY SHARE</literal> row locks in serializable mode
|
2016-08-07 04:08:31 +02:00
|
|
|
(Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [69f526aa4] 2016-06-03 15:14:50 -0400
|
|
|
|
Branch: REL9_5_STABLE [a102f98e2] 2016-06-03 15:14:35 -0400
|
|
|
|
Branch: master [9eaf5be50] 2016-06-03 18:07:14 -0400
|
|
|
|
Branch: REL9_5_STABLE [8355897ff] 2016-06-03 18:07:14 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make sure <quote>expanded</quote> datums returned by a plan node are
|
2016-08-07 04:08:31 +02:00
|
|
|
read-only (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids failures in some cases where the result of a lower plan
|
|
|
|
node is referenced in multiple places in upper nodes. So far as
|
2017-10-09 03:44:17 +02:00
|
|
|
core <productname>PostgreSQL</productname> is concerned, only array values
|
2016-08-07 04:08:31 +02:00
|
|
|
returned by PL/pgSQL functions are at risk; but extensions might
|
|
|
|
use expanded datums for other things.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [0b0baf262] 2016-06-16 12:17:38 -0400
|
|
|
|
Branch: REL9_5_STABLE [4f5995dd9] 2016-06-16 12:17:11 -0400
|
|
|
|
Branch: REL9_4_STABLE [e542bfe61] 2016-06-16 12:17:16 -0400
|
|
|
|
Branch: REL9_3_STABLE [29987b2e1] 2016-06-16 12:17:20 -0400
|
|
|
|
Branch: REL9_2_STABLE [23ed284a5] 2016-06-16 12:17:25 -0400
|
|
|
|
Branch: master [e45e990e4] 2016-06-22 11:55:18 -0400
|
|
|
|
Branch: REL9_5_STABLE [f2c28bb1f] 2016-06-22 11:55:24 -0400
|
|
|
|
Branch: REL9_4_STABLE [f22a3e5ce] 2016-06-22 11:55:28 -0400
|
|
|
|
Branch: REL9_3_STABLE [dafdcbb6c] 2016-06-22 11:55:32 -0400
|
|
|
|
Branch: REL9_2_STABLE [dd41661d2] 2016-06-22 11:55:35 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid crash in <literal>postgres -C</literal> when the specified variable
|
2016-08-07 04:08:31 +02:00
|
|
|
has a null string value (Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [80b346c20] 2016-07-29 12:52:57 -0400
|
|
|
|
Branch: REL9_5_STABLE [c8966a925] 2016-07-29 12:53:02 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Prevent unintended waits for the receiver in WAL sender processes
|
|
|
|
(Kyotaro Horiguchi)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [f8c58554d] 2016-06-30 12:37:02 -0400
|
|
|
|
Branch: REL9_5_STABLE [8caf9fe62] 2016-06-30 12:37:02 -0400
|
|
|
|
Branch: REL9_4_STABLE [1843d88e0] 2016-06-30 12:37:02 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix possible loss of large subtransactions in logical decoding
|
|
|
|
(Petru-Florin Mihancea)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
2016-08-08 03:31:01 +02:00
|
|
|
Branch: master [bcbecbce2] 2016-08-07 13:15:55 -0400
|
|
|
|
Branch: REL9_5_STABLE [71dca408c] 2016-08-07 13:15:55 -0400
|
|
|
|
Branch: REL9_4_STABLE [c63588feb] 2016-08-07 13:15:55 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix failure of logical decoding when a subtransaction contains no
|
|
|
|
actual changes (Marko Tiikkaja, Andrew Gierth)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
2016-08-07 04:08:31 +02:00
|
|
|
Branch: master [52e8fc3e2] 2016-05-25 17:48:15 -0400
|
|
|
|
Branch: REL9_5_STABLE [b2355a29c] 2016-05-25 17:48:15 -0400
|
|
|
|
Branch: REL9_4_STABLE [4b612a78f] 2016-05-25 17:48:15 -0400
|
|
|
|
Branch: REL9_3_STABLE [463207630] 2016-05-25 17:48:15 -0400
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [22b27b4c9] 2016-05-31 15:55:15 -0400
|
|
|
|
Branch: REL9_5_STABLE [47215c16f] 2016-05-31 15:54:46 -0400
|
|
|
|
Branch: REL9_4_STABLE [3ffff7257] 2016-05-31 15:54:46 -0400
|
|
|
|
Branch: REL9_3_STABLE [a84cad224] 2016-05-31 15:54:47 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Avoid redundant writes of the statistics files when multiple
|
|
|
|
backends request updates close together (Tom Lane, Tomas Vondra)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [996d27397] 2016-05-24 15:20:36 -0400
|
|
|
|
Branch: REL9_5_STABLE [a34c3dd50] 2016-05-24 15:20:12 -0400
|
|
|
|
Branch: REL9_4_STABLE [defe936ef] 2016-05-24 15:20:12 -0400
|
|
|
|
Branch: REL9_3_STABLE [9f3e4c813] 2016-05-24 15:20:12 -0400
|
|
|
|
Branch: REL9_2_STABLE [2e7f0c34a] 2016-05-24 15:20:12 -0400
|
|
|
|
Branch: REL9_1_STABLE [fe1731fca] 2016-05-24 15:20:12 -0400
|
|
|
|
Branch: master [2d2e40e3b] 2016-05-24 15:47:51 -0400
|
|
|
|
Branch: REL9_5_STABLE [bbbe2c97e] 2016-05-24 15:47:51 -0400
|
|
|
|
Branch: REL9_4_STABLE [edd8873ff] 2016-05-24 15:47:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [ff98ae908] 2016-05-24 15:47:51 -0400
|
|
|
|
Branch: REL9_2_STABLE [4cf0978ea] 2016-05-24 15:47:51 -0400
|
|
|
|
Branch: REL9_1_STABLE [5551dac59] 2016-05-24 15:47:51 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid consuming a transaction ID during <command>VACUUM</command>
|
2016-08-07 04:08:31 +02:00
|
|
|
(Alexander Korotkov)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Some cases in <command>VACUUM</command> unnecessarily caused an XID to be
|
2016-08-07 04:08:31 +02:00
|
|
|
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: master [e3ad3ffa6] 2016-06-24 18:29:28 -0400
|
|
|
|
Branch: REL9_5_STABLE [d372cb173] 2016-06-24 18:29:28 -0400
|
|
|
|
Branch: REL9_4_STABLE [61b24fef8] 2016-06-24 18:29:28 -0400
|
|
|
|
Branch: REL9_3_STABLE [28f294afd] 2016-06-24 18:29:28 -0400
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
like <quote>MultiXactId <replaceable>NNN</replaceable> has not been created
|
2016-08-07 04:08:31 +02:00
|
|
|
yet -- apparent wraparound</quote>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [f64340e74] 2016-06-06 17:44:17 -0400
|
|
|
|
Branch: REL9_5_STABLE [5acc58c5e] 2016-06-06 17:44:17 -0400
|
|
|
|
Branch: REL9_4_STABLE [a4400c251] 2016-06-06 17:44:17 -0400
|
|
|
|
Branch: REL9_3_STABLE [5f3e0e84b] 2016-06-06 17:44:17 -0400
|
|
|
|
Branch: REL9_2_STABLE [3201709de] 2016-06-06 17:44:18 -0400
|
|
|
|
Branch: REL9_1_STABLE [32ceb8dfb] 2016-06-06 17:44:18 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
When a manual <command>ANALYZE</command> specifies a column list, don't
|
|
|
|
reset the table's <literal>changes_since_analyze</literal> counter
|
2016-08-07 04:08:31 +02:00
|
|
|
(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>
|
|
|
|
<!--
|
2016-08-08 03:31:01 +02:00
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [95bee941b] 2016-08-07 18:52:02 -0400
|
|
|
|
Branch: REL9_5_STABLE [cb5c14984] 2016-08-07 18:52:02 -0400
|
|
|
|
Branch: REL9_4_STABLE [8f180a6cc] 2016-08-07 18:52:02 -0400
|
|
|
|
Branch: REL9_3_STABLE [20a859504] 2016-08-07 18:52:02 -0400
|
|
|
|
Branch: REL9_2_STABLE [127d73009] 2016-08-07 18:52:02 -0400
|
|
|
|
Branch: REL9_1_STABLE [a449ad095] 2016-08-07 18:52:02 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>ANALYZE</command>'s overestimation of <literal>n_distinct</literal>
|
2016-08-08 03:31:01 +02:00
|
|
|
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>
|
|
|
|
<!--
|
2016-08-07 04:08:31 +02:00
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [15739393e] 2016-05-10 16:23:54 -0300
|
|
|
|
Branch: REL9_5_STABLE [7516cdb76] 2016-05-10 16:23:54 -0300
|
|
|
|
Branch: REL9_4_STABLE [e9a273199] 2016-05-10 16:23:54 -0300
|
|
|
|
Branch: REL9_3_STABLE [92ebe509e] 2016-05-10 16:23:54 -0300
|
|
|
|
Branch: REL9_2_STABLE [ca4c6d043] 2016-05-10 16:23:54 -0300
|
|
|
|
Branch: REL9_1_STABLE [2152762c5] 2016-05-10 16:23:54 -0300
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
|
|
|
Branch: master [7392eed7c] 2016-06-02 12:23:01 -0500
|
|
|
|
Branch: REL9_5_STABLE [236d569f9] 2016-06-02 12:23:19 -0500
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix bug in b-tree mark/restore processing (Kevin Grittner)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This error could lead to incorrect join results or assertion failures
|
|
|
|
in a merge join whose inner source node is a b-tree indexscan.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [e89526d4f] 2016-08-06 14:28:37 -0400
|
|
|
|
Branch: REL9_5_STABLE [ee5d1de04] 2016-08-06 14:28:37 -0400
|
|
|
|
Branch: REL9_4_STABLE [98d5f366b] 2016-08-06 14:28:38 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Avoid duplicate buffer lock release when abandoning a b-tree index
|
|
|
|
page deletion attempt (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This mistake prevented <command>VACUUM</command> from completing in some
|
2016-08-07 04:08:31 +02:00
|
|
|
cases involving corrupt b-tree indexes.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [8cf739de8] 2016-06-24 16:57:36 -0400
|
|
|
|
Branch: REL9_5_STABLE [07f69137b] 2016-06-24 16:57:36 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix building of large (bigger than <varname>shared_buffers</varname>)
|
2016-08-07 04:08:31 +02:00
|
|
|
hash indexes (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The code path used for large indexes contained a bug causing
|
|
|
|
incorrect hash values to be inserted into the index, so that
|
|
|
|
subsequent index searches always failed, except for tuples inserted
|
|
|
|
into the index after the initial build.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [1acf75725] 2016-07-14 18:45:59 -0400
|
|
|
|
Branch: REL9_5_STABLE [503546376] 2016-07-14 18:46:00 -0400
|
|
|
|
Branch: REL9_4_STABLE [054052b3a] 2016-07-14 18:46:00 -0400
|
|
|
|
Branch: REL9_3_STABLE [57dba87a7] 2016-07-14 18:46:00 -0400
|
|
|
|
Branch: REL9_2_STABLE [042009f24] 2016-07-14 18:46:00 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Prevent infinite loop in GiST index build for geometric columns
|
|
|
|
containing NaN component values (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [8a859691d] 2016-06-05 11:53:06 -0400
|
|
|
|
Branch: REL9_5_STABLE [a7aa61ffe] 2016-06-05 11:53:06 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix possible crash during a nearest-neighbor (<literal>ORDER BY</literal>
|
|
|
|
distance) indexscan on a <filename>contrib/btree_gist</filename> index on
|
|
|
|
an <type>interval</type> column (Peter Geoghegan)
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [975ad4e60] 2016-05-30 14:47:22 -0400
|
|
|
|
Branch: REL9_5_STABLE [2973d7d02] 2016-05-30 14:47:22 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <quote>PANIC: failed to add BRIN tuple</quote> error when attempting
|
2016-08-07 04:08:31 +02:00
|
|
|
to update a BRIN index entry (Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [8d498a5c8] 2016-08-04 16:06:14 -0400
|
|
|
|
Branch: REL9_5_STABLE [c1d6ee879] 2016-08-04 16:06:14 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix possible crash during background worker shutdown (Dmitry Ivanov)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [baebab3ac] 2016-07-12 18:07:03 -0400
|
|
|
|
Branch: REL9_5_STABLE [a0943dbbe] 2016-07-12 18:06:50 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix PL/pgSQL's handling of the <literal>INTO</literal> clause
|
|
|
|
within <command>IMPORT FOREIGN SCHEMA</command> commands (Tom Lane)
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
|
|
Branch: master [f36ca9af0] 2016-07-17 09:15:37 -0400
|
|
|
|
Branch: REL9_5_STABLE [fb279fc7a] 2016-07-17 09:24:06 -0400
|
|
|
|
Branch: REL9_4_STABLE [97d741650] 2016-07-17 09:37:33 -0400
|
|
|
|
Branch: REL9_3_STABLE [805f2bb53] 2016-07-17 09:38:23 -0400
|
|
|
|
Branch: REL9_2_STABLE [6c0be49b2] 2016-07-17 09:39:51 -0400
|
|
|
|
Branch: REL9_1_STABLE [84d679204] 2016-07-17 09:41:08 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <filename>contrib/btree_gin</filename> to handle the smallest
|
|
|
|
possible <type>bigint</type> value correctly (Peter Eisentraut)
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [69dc5ae40] 2016-08-05 18:58:12 -0400
|
|
|
|
Branch: REL9_5_STABLE [cae0d4f9b] 2016-08-05 18:58:19 -0400
|
|
|
|
Branch: REL9_4_STABLE [a3cd60ebf] 2016-08-05 18:58:23 -0400
|
|
|
|
Branch: REL9_3_STABLE [c3107f18a] 2016-08-05 18:58:28 -0400
|
|
|
|
Branch: REL9_2_STABLE [3e40d9227] 2016-08-05 18:58:32 -0400
|
|
|
|
Branch: REL9_1_STABLE [1f63b0e09] 2016-08-05 18:58:36 -0400
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
that <function>PQserverVersion()</function> returns the correct value for
|
2016-08-07 04:08:31 +02:00
|
|
|
such cases.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
|
|
Branch: master [3ebc88e56] 2016-08-01 15:08:12 +0200
|
|
|
|
Branch: REL9_5_STABLE [dc6b20c6b] 2016-08-01 15:09:23 +0200
|
|
|
|
Branch: REL9_4_STABLE [057404854] 2016-08-01 15:09:12 +0200
|
|
|
|
Branch: REL9_3_STABLE [3ca359426] 2016-08-01 15:08:59 +0200
|
|
|
|
Branch: REL9_2_STABLE [295edbecf] 2016-08-01 15:08:48 +0200
|
|
|
|
Branch: REL9_1_STABLE [c15f502b6] 2016-08-01 15:08:36 +0200
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>ecpg</application>'s code for <literal>unsigned long long</literal>
|
2016-08-07 04:08:31 +02:00
|
|
|
array elements (Michael Meskes)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [e2e95f5ef] 2016-08-02 12:49:40 -0400
|
|
|
|
Branch: REL9_5_STABLE [89c30d113] 2016-08-02 12:49:41 -0400
|
|
|
|
Branch: REL9_4_STABLE [2ff8a2fc0] 2016-08-02 12:49:04 -0400
|
|
|
|
Branch: REL9_3_STABLE [6693c9d7b] 2016-08-02 12:49:09 -0400
|
|
|
|
Branch: REL9_2_STABLE [a5a7caaa1] 2016-08-02 12:49:15 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_dump</application> with both <option>-c</option> and <option>-C</option>
|
|
|
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</literal>
|
2016-08-07 04:08:31 +02:00
|
|
|
command (David Johnston, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [e652273e0] 2016-06-02 13:28:17 -0400
|
|
|
|
Branch: REL9_5_STABLE [404429038] 2016-06-02 13:28:18 -0400
|
|
|
|
Branch: REL9_4_STABLE [96aac0e6d] 2016-06-02 13:27:53 -0400
|
|
|
|
Branch: REL9_3_STABLE [5c9724305] 2016-06-02 13:27:53 -0400
|
|
|
|
Branch: master [6c72a28e5] 2016-06-03 11:29:38 -0400
|
|
|
|
Branch: REL9_5_STABLE [ec5622351] 2016-06-03 11:29:20 -0400
|
|
|
|
Branch: REL9_4_STABLE [53c2601a5] 2016-06-03 11:29:20 -0400
|
|
|
|
Branch: REL9_3_STABLE [4a21c6fd7] 2016-06-03 11:29:20 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve handling of <systemitem>SIGTERM</systemitem>/control-C in
|
|
|
|
parallel <application>pg_dump</application> and <application>pg_restore</application> (Tom
|
2016-08-07 04:08:31 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
are doing something long-running such as a <command>CREATE INDEX</command>.
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [9abd64ec9] 2016-05-25 12:40:12 -0400
|
|
|
|
Branch: REL9_5_STABLE [af6555b80] 2016-05-25 12:39:57 -0400
|
|
|
|
Branch: REL9_4_STABLE [ea274b2f4] 2016-05-25 12:39:57 -0400
|
|
|
|
Branch: REL9_3_STABLE [1c8205159] 2016-05-25 12:39:57 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix error reporting in parallel <application>pg_dump</application>
|
|
|
|
and <application>pg_restore</application> (Tom Lane)
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Previously, errors reported by <application>pg_dump</application>
|
|
|
|
or <application>pg_restore</application> worker processes might never make it to
|
2016-08-07 04:08:31 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
everything to <literal>stderr</literal>. In some cases this will result in
|
2016-08-07 04:08:31 +02:00
|
|
|
duplicate messages (for instance, if all the workers report a server
|
|
|
|
shutdown), but that seems better than no message.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [df8d2d8c4] 2016-05-26 10:50:30 -0400
|
|
|
|
Branch: REL9_5_STABLE [6479df137] 2016-05-26 10:50:38 -0400
|
|
|
|
Branch: REL9_4_STABLE [d32bc204c] 2016-05-26 10:50:42 -0400
|
|
|
|
Branch: REL9_3_STABLE [b9784e1f7] 2016-05-26 10:50:46 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Ensure that parallel <application>pg_dump</application>
|
|
|
|
or <application>pg_restore</application> on Windows will shut down properly
|
2016-08-07 04:08:31 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
|
|
Branch: master [d74048def] 2016-05-26 22:14:23 +0200
|
|
|
|
Branch: REL9_5_STABLE [47e596976] 2016-05-26 22:18:04 +0200
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make parallel <application>pg_dump</application> fail cleanly when run against a
|
2016-08-07 04:08:31 +02:00
|
|
|
standby server (Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This usage is not supported
|
2017-10-09 03:44:17 +02:00
|
|
|
unless <option>--no-synchronized-snapshots</option> is specified, but the
|
2016-08-07 04:08:31 +02:00
|
|
|
error was not handled very well.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [cae2bb198] 2016-05-26 11:51:04 -0400
|
|
|
|
Branch: REL9_5_STABLE [64b296976] 2016-05-26 11:51:11 -0400
|
|
|
|
Branch: REL9_4_STABLE [f2f18a37c] 2016-05-26 11:51:16 -0400
|
|
|
|
Branch: REL9_3_STABLE [99565a1ef] 2016-05-26 11:51:20 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_dump</application> behave better when built without zlib
|
2016-08-07 04:08:31 +02:00
|
|
|
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>
|
|
|
|
<!--
|
|
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
|
|
Branch: master [74d8c95b7] 2016-08-01 17:36:14 +0900
|
|
|
|
Branch: REL9_5_STABLE [928e92fda] 2016-08-01 17:37:18 +0900
|
|
|
|
Branch: REL9_4_STABLE [dbe56f2a1] 2016-08-01 17:37:41 +0900
|
|
|
|
Branch: REL9_3_STABLE [013f42372] 2016-08-01 17:37:53 +0900
|
|
|
|
Branch: REL9_2_STABLE [a21617759] 2016-08-01 17:38:00 +0900
|
|
|
|
Branch: REL9_1_STABLE [366f4a962] 2016-08-01 17:38:05 +0900
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_basebackup</application> accept <literal>-Z 0</literal> as
|
2016-08-07 04:08:31 +02:00
|
|
|
specifying no compression (Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
|
|
Branch: master [e8564ef03] 2016-07-23 20:30:03 -0400
|
|
|
|
Branch: REL9_5_STABLE [cf35406f9] 2016-07-23 20:30:40 -0400
|
|
|
|
Branch: REL9_4_STABLE [f0c9e4697] 2016-07-23 20:30:44 -0400
|
|
|
|
Branch: REL9_3_STABLE [98b7a3cf2] 2016-07-23 20:30:48 -0400
|
|
|
|
Branch: REL9_2_STABLE [a4daf59ee] 2016-07-23 20:30:55 -0400
|
|
|
|
Branch: REL9_1_STABLE [b1fa6c0eb] 2016-07-23 20:30:59 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
|
|
|
parallel make (Noah Misch)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [30b2731bd] 2016-07-09 16:47:38 -0400
|
|
|
|
Branch: REL9_5_STABLE [f80395ca1] 2016-07-09 16:47:39 -0400
|
|
|
|
Branch: REL9_4_STABLE [02a898b00] 2016-07-09 16:47:39 -0400
|
|
|
|
Branch: REL9_3_STABLE [57e9ea2dd] 2016-07-11 11:24:04 -0400
|
|
|
|
Branch: REL9_2_STABLE [fdf2ee62e] 2016-07-11 11:24:04 -0400
|
|
|
|
Branch: REL9_1_STABLE [71af6c006] 2016-07-11 11:24:04 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
|
|
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [9dd4178ce] 2016-05-27 10:40:20 -0400
|
|
|
|
Branch: REL9_5_STABLE [cea17ba07] 2016-05-27 10:40:20 -0400
|
|
|
|
Branch: REL9_4_STABLE [c2651cd24] 2016-05-27 10:40:20 -0400
|
|
|
|
Branch: REL9_3_STABLE [1f1e70a87] 2016-05-27 10:40:20 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Be more predictable about reporting <quote>statement timeout</quote>
|
|
|
|
versus <quote>lock timeout</quote> (Tom Lane)
|
2016-08-07 04:08:31 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
On heavily loaded machines, the regression tests sometimes failed due
|
2017-10-09 03:44:17 +02:00
|
|
|
to reporting <quote>lock timeout</quote> even though the statement timeout
|
2016-08-07 04:08:31 +02:00
|
|
|
should have occurred first.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [b3399cb0f] 2016-07-21 13:11:00 -0400
|
|
|
|
Branch: REL9_5_STABLE [fd507d542] 2016-07-21 13:11:00 -0400
|
|
|
|
Branch: master [9d7abca90] 2016-07-22 15:41:39 -0400
|
|
|
|
Branch: REL9_5_STABLE [2aa2533f2] 2016-07-22 15:41:40 -0400
|
|
|
|
Branch: master [95810ed8e] 2016-07-21 14:24:07 -0400
|
|
|
|
Branch: REL9_5_STABLE [95e8b44f0] 2016-07-21 14:24:07 -0400
|
|
|
|
Branch: REL9_4_STABLE [dfddc452d] 2016-07-21 14:24:07 -0400
|
|
|
|
Branch: REL9_3_STABLE [0060638c8] 2016-07-21 14:24:07 -0400
|
|
|
|
Branch: REL9_2_STABLE [52502e7a5] 2016-07-21 14:24:07 -0400
|
|
|
|
Branch: REL9_1_STABLE [f61ecd01e] 2016-07-21 14:24:07 -0400
|
|
|
|
Branch: master [d70d11915] 2016-07-21 16:52:35 -0400
|
|
|
|
Branch: REL9_5_STABLE [d365dc3d1] 2016-07-21 16:52:36 -0400
|
|
|
|
Branch: REL9_4_STABLE [1156a9db8] 2016-07-21 16:52:36 -0400
|
|
|
|
Branch: REL9_3_STABLE [e15e7886e] 2016-07-21 16:52:36 -0400
|
|
|
|
Branch: REL9_2_STABLE [a1e750553] 2016-07-21 16:52:36 -0400
|
|
|
|
Branch: REL9_1_STABLE [ba64aed70] 2016-07-21 16:52:36 -0400
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: REL9_5_STABLE [19d477aa6] 2016-07-19 15:59:36 -0400
|
|
|
|
Branch: REL9_4_STABLE [590a7f82b] 2016-07-19 15:59:36 -0400
|
|
|
|
Branch: REL9_3_STABLE [3928132ea] 2016-07-19 15:59:36 -0400
|
|
|
|
Branch: REL9_2_STABLE [cd951aa61] 2016-07-19 15:59:36 -0400
|
|
|
|
Branch: REL9_1_STABLE [5db14fad0] 2016-07-19 15:59:36 -0400
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: REL9_5_STABLE [0aabe80c6] 2016-07-19 17:53:31 -0400
|
|
|
|
Branch: REL9_4_STABLE [bdbcfba35] 2016-07-19 17:53:31 -0400
|
|
|
|
Branch: REL9_3_STABLE [f102bd868] 2016-07-19 17:53:31 -0400
|
|
|
|
Branch: REL9_2_STABLE [4d37b7cff] 2016-07-19 17:53:31 -0400
|
|
|
|
Branch: REL9_1_STABLE [d70df7867] 2016-07-19 17:53:31 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Update our copy of the timezone code to match
|
2017-10-09 03:44:17 +02:00
|
|
|
IANA's <application>tzcode</application> release 2016c (Tom Lane)
|
2016-08-07 04:08:31 +02:00
|
|
|
</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>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [a629330b2] 2016-08-05 12:59:29 -0400
|
|
|
|
Branch: REL9_5_STABLE [3fddd6484] 2016-08-05 12:58:38 -0400
|
|
|
|
Branch: REL9_4_STABLE [8080337b0] 2016-08-05 12:58:46 -0400
|
|
|
|
Branch: REL9_3_STABLE [5630bd2ec] 2016-08-05 12:58:53 -0400
|
|
|
|
Branch: REL9_2_STABLE [7822792f7] 2016-08-05 12:58:58 -0400
|
|
|
|
Branch: REL9_1_STABLE [a44388ffe] 2016-08-05 12:59:02 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2016f
|
2016-08-07 04:08:31 +02:00
|
|
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
|
|
|
corrections for Azerbaijan, Belarus, and Morocco.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
2016-05-07 01:43:51 +02:00
|
|
|
<sect1 id="release-9-5-3">
|
|
|
|
<title>Release 9.5.3</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2016-05-12</para>
|
|
|
|
</formalpara>
|
2016-05-07 01:43:51 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.2.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.3</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
However, if you are upgrading from a version earlier than 9.5.2,
|
|
|
|
see <xref linkend="release-9-5-2">.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2016-05-07 06:51:27 +02:00
|
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
|
|
Branch: master [7c7d4fdda] 2016-04-08 14:11:56 -0400
|
|
|
|
Branch: REL9_5_STABLE [a3c17b2af] 2016-05-06 23:47:42 -0400
|
|
|
|
Branch: REL9_4_STABLE [e3b14de9f] 2016-05-07 00:10:31 -0400
|
|
|
|
Branch: REL9_3_STABLE [a9d8644de] 2016-05-07 00:10:17 -0400
|
|
|
|
Branch: REL9_2_STABLE [e3a493ac0] 2016-05-07 00:05:39 -0400
|
|
|
|
Branch: REL9_1_STABLE [9b676fd49] 2016-05-07 00:09:37 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Clear the OpenSSL error queue before OpenSSL calls, rather than
|
|
|
|
assuming it's clear already; and make sure we leave it clear
|
2016-05-07 23:26:23 +02:00
|
|
|
afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
|
2016-05-07 06:51:27 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2016-05-07 23:26:23 +02:00
|
|
|
This change prevents problems when there are multiple connections
|
|
|
|
using OpenSSL within a single process and not all the code involved
|
2016-05-07 06:51:27 +02:00
|
|
|
follows the same rules for when to clear the error queue.
|
2016-05-07 23:26:23 +02:00
|
|
|
Failures have been reported specifically when a client application
|
2017-10-09 03:44:17 +02:00
|
|
|
uses SSL connections in <application>libpq</application> concurrently with
|
2016-05-07 23:26:23 +02:00
|
|
|
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.
|
2016-05-07 06:51:27 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2016-05-07 01:43:51 +02:00
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [80f66a9ad] 2016-04-21 20:05:58 -0400
|
|
|
|
Branch: REL9_5_STABLE [94c685a7c] 2016-04-21 20:05:58 -0400
|
|
|
|
Branch: REL9_4_STABLE [3232c2427] 2016-04-21 20:05:58 -0400
|
|
|
|
Branch: REL9_3_STABLE [d9742ac46] 2016-04-21 20:05:58 -0400
|
|
|
|
Branch: REL9_2_STABLE [ad2d32b57] 2016-04-21 20:05:58 -0400
|
|
|
|
Branch: REL9_1_STABLE [6882dbd34] 2016-04-21 20:05:58 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <quote>failed to build any <replaceable>N</replaceable>-way joins</quote>
|
2016-05-07 01:43:51 +02:00
|
|
|
planner error with a full join enclosed in the right-hand side of a
|
|
|
|
left join (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [207d5a656] 2016-04-29 20:19:38 -0400
|
|
|
|
Branch: REL9_5_STABLE [f25d0619c] 2016-04-29 20:19:38 -0400
|
|
|
|
Branch: REL9_4_STABLE [72edc8ffe] 2016-04-29 20:19:38 -0400
|
|
|
|
Branch: REL9_3_STABLE [67349e5a8] 2016-04-29 20:19:38 -0400
|
|
|
|
Branch: REL9_2_STABLE [f02cb8c9a] 2016-04-29 20:19:38 -0400
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
as <literal>X.X = Y.Y = Z.Z</literal>, it was possible for the planner to omit
|
2016-05-07 01:43:51 +02:00
|
|
|
some of the tests needed to enforce that all the variables are actually
|
|
|
|
equal, leading to join rows being output that didn't satisfy
|
2017-10-09 03:44:17 +02:00
|
|
|
the <literal>WHERE</literal> clauses. For various reasons, erroneous plans
|
2016-05-07 01:43:51 +02:00
|
|
|
were seldom selected in practice, so that this bug has gone undetected
|
|
|
|
for a long time.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [abb164655] 2016-04-21 23:17:36 -0400
|
|
|
|
Branch: REL9_5_STABLE [81deadd31] 2016-04-21 23:17:36 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix corner-case parser failures occurring
|
|
|
|
when <xref linkend="guc-operator-precedence-warning"> is turned on
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
An example is that <literal>SELECT (ARRAY[])::text[]</literal> gave an error,
|
2016-05-07 01:43:51 +02:00
|
|
|
though it worked without the parentheses.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [f0e766bd7] 2016-04-15 00:02:26 -0400
|
|
|
|
Branch: REL9_5_STABLE [edd57377f] 2016-04-15 00:02:26 -0400
|
|
|
|
Branch: REL9_4_STABLE [0479eccdc] 2016-04-15 00:02:26 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [bde361fef] 2016-04-20 14:25:15 -0400
|
|
|
|
Branch: REL9_5_STABLE [be2754456] 2016-04-20 14:25:15 -0400
|
|
|
|
Branch: REL9_4_STABLE [ef35afa35] 2016-04-20 14:25:15 -0400
|
|
|
|
-->
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
high <varname>maintenance_work_mem</varname>.
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [d136d600f] 2016-05-06 12:09:20 -0400
|
|
|
|
Branch: REL9_5_STABLE [504af1fe0] 2016-05-06 12:09:20 -0400
|
|
|
|
Branch: REL9_4_STABLE [1180868d1] 2016-05-06 12:09:20 -0400
|
|
|
|
Branch: REL9_3_STABLE [462456d8d] 2016-05-06 12:09:20 -0400
|
|
|
|
Branch: REL9_2_STABLE [11247dd99] 2016-05-06 12:09:20 -0400
|
|
|
|
Branch: REL9_1_STABLE [7bad282c3] 2016-05-06 12:09:20 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix possible misbehavior of <literal>TH</literal>, <literal>th</literal>,
|
|
|
|
and <literal>Y,YYY</literal> format codes in <function>to_timestamp()</function>
|
2016-05-07 01:43:51 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
These could advance off the end of the input string, causing subsequent
|
|
|
|
format codes to read garbage.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [1f7c85b82] 2016-04-21 14:20:30 -0400
|
|
|
|
Branch: REL9_5_STABLE [4b52cc289] 2016-04-21 14:20:18 -0400
|
|
|
|
Branch: REL9_4_STABLE [679c92238] 2016-04-21 14:20:18 -0400
|
|
|
|
Branch: REL9_3_STABLE [e5882f26b] 2016-04-21 14:20:18 -0400
|
|
|
|
Branch: REL9_2_STABLE [c7c145e4f] 2016-04-21 14:20:18 -0400
|
|
|
|
Branch: REL9_1_STABLE [663624e60] 2016-04-21 14:20:18 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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
|
2016-05-07 01:43:51 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [99f3b5613] 2016-04-04 18:05:23 -0400
|
|
|
|
Branch: REL9_5_STABLE [f3d17491c] 2016-04-04 18:05:23 -0400
|
|
|
|
Branch: REL9_4_STABLE [28148e258] 2016-04-04 18:05:24 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Disallow newlines in <command>ALTER SYSTEM</command> parameter values
|
2016-05-07 23:26:23 +02:00
|
|
|
(Tom Lane)
|
2016-05-07 01:43:51 +02:00
|
|
|
</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
|
2017-10-09 03:44:17 +02:00
|
|
|
by <command>ALTER SYSTEM</command>.
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [8f1911d5e] 2016-04-15 12:11:40 -0400
|
|
|
|
Branch: REL9_5_STABLE [8f8e65d34] 2016-04-15 12:11:27 -0400
|
|
|
|
Branch: REL9_4_STABLE [8eed31ffb] 2016-04-15 12:11:27 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</command> to
|
2016-05-07 01:43:51 +02:00
|
|
|
work properly if an index on OID is selected (David Rowley)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [93c301fc4] 2016-04-08 12:31:53 -0400
|
|
|
|
Branch: REL9_5_STABLE [0da7cf6e8] 2016-04-08 12:31:42 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2016-05-07 23:26:23 +02:00
|
|
|
Avoid possible misbehavior after failing to remove a tablespace symlink
|
2016-05-07 01:43:51 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [6a3d3965d] 2016-04-14 19:42:21 -0400
|
|
|
|
Branch: REL9_5_STABLE [e7a456174] 2016-04-14 19:42:22 -0400
|
|
|
|
Branch: REL9_4_STABLE [00456911f] 2016-04-14 19:42:22 -0400
|
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [59455018a] 2016-04-28 22:11:18 -0700
|
|
|
|
Branch: REL9_5_STABLE [2e1b4adf3] 2016-04-28 22:11:18 -0700
|
|
|
|
Branch: REL9_4_STABLE [596f93605] 2016-04-28 22:11:18 -0700
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Avoid repeated requests for feedback from receiver while shutting down
|
|
|
|
walsender (Nick Cleaton)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [cbabb70f3] 2016-04-20 23:48:13 -0400
|
|
|
|
Branch: REL9_5_STABLE [0b8e0bf0a] 2016-04-20 23:48:13 -0400
|
|
|
|
Branch: REL9_4_STABLE [f05ac711b] 2016-04-20 23:48:13 -0400
|
|
|
|
Branch: REL9_3_STABLE [691073bd8] 2016-04-20 23:48:13 -0400
|
|
|
|
Branch: REL9_2_STABLE [1b22368ff] 2016-04-20 23:48:13 -0400
|
|
|
|
Branch: REL9_1_STABLE [4c1c9f80b] 2016-04-20 23:48:13 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_regress</application> use a startup timeout from the
|
|
|
|
<envar>PGCTLTIMEOUT</envar> environment variable, if that's set (Tom Lane)
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is for consistency with a behavior recently added
|
2017-10-09 03:44:17 +02:00
|
|
|
to <application>pg_ctl</application>; it eases automated testing on slow machines.
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [6cead413b] 2016-04-13 18:58:14 -0400
|
|
|
|
Branch: REL9_5_STABLE [fb0f63933] 2016-04-13 18:57:52 -0400
|
|
|
|
Branch: REL9_4_STABLE [5daf1012a] 2016-04-13 18:57:52 -0400
|
|
|
|
Branch: REL9_3_STABLE [34bf6bc56] 2016-04-13 18:57:52 -0400
|
|
|
|
Branch: REL9_2_STABLE [6bb42d520] 2016-04-13 18:57:52 -0400
|
|
|
|
Branch: REL9_1_STABLE [3ef1f3a3e] 2016-04-13 18:57:52 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_upgrade</application> to correctly restore extension
|
2016-05-07 01:43:51 +02:00
|
|
|
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
|
2017-10-09 03:44:17 +02:00
|
|
|
immediate ill effects, but would cause later <application>pg_dump</application>
|
2016-05-07 01:43:51 +02:00
|
|
|
runs to emit output that would cause (harmless) errors on restore.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2016-05-07 06:51:27 +02:00
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [1a2c17f8e] 2016-05-06 22:05:56 -0400
|
|
|
|
Branch: REL9_5_STABLE [196870f2f] 2016-05-06 22:05:51 -0400
|
|
|
|
Branch: REL9_4_STABLE [e1aecebc0] 2016-05-06 22:05:51 -0400
|
|
|
|
Branch: REL9_3_STABLE [e1d88f983] 2016-05-06 22:05:51 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pg_upgrade</application> to not fail when new-cluster TOAST rules
|
2016-05-07 06:51:27 +02:00
|
|
|
differ from old (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<application>pg_upgrade</application> had special-case code to handle the
|
|
|
|
situation where the new <productname>PostgreSQL</productname> version thinks that
|
2016-05-07 06:51:27 +02:00
|
|
|
a table should have a TOAST table while the old version did not. That
|
2016-05-07 23:26:23 +02:00
|
|
|
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.
|
2016-05-07 06:51:27 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2016-05-07 01:43:51 +02:00
|
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
|
|
Branch: master [213c7df03] 2016-04-26 21:53:58 -0400
|
|
|
|
Branch: REL9_5_STABLE [f9989482d] 2016-04-26 21:54:07 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix atomic operations for PPC when using IBM's XLC compiler (Noah Misch)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [75c24d0f7] 2016-04-18 13:33:06 -0400
|
|
|
|
Branch: REL9_5_STABLE [c6a5b6677] 2016-04-18 13:33:07 -0400
|
|
|
|
Branch: REL9_4_STABLE [21b7f49eb] 2016-04-18 13:33:07 -0400
|
|
|
|
Branch: REL9_3_STABLE [6ec1ff852] 2016-04-18 13:33:07 -0400
|
|
|
|
Branch: REL9_2_STABLE [b24f7e280] 2016-04-18 13:33:07 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Reduce the number of SysV semaphores used by a build configured with
|
2017-10-09 03:44:17 +02:00
|
|
|
<option>--disable-spinlocks</option> (Tom Lane)
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [0ab3595e5] 2016-04-23 16:53:15 -0400
|
|
|
|
Branch: REL9_5_STABLE [bdf7744f7] 2016-04-23 16:53:15 -0400
|
|
|
|
Branch: REL9_4_STABLE [2a715371c] 2016-04-23 16:53:15 -0400
|
|
|
|
Branch: REL9_3_STABLE [252c35895] 2016-04-23 16:53:15 -0400
|
|
|
|
Branch: REL9_2_STABLE [0f5491283] 2016-04-23 16:53:15 -0400
|
|
|
|
Branch: REL9_1_STABLE [cbff4b708] 2016-04-23 16:53:15 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Rename internal function <function>strtoi()</function>
|
|
|
|
to <function>strtoint()</function> to avoid conflict with a NetBSD library
|
2016-05-07 01:43:51 +02:00
|
|
|
function (Thomas Munro)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: REL9_5_STABLE [20d4428f0] 2016-04-21 15:44:18 -0400
|
|
|
|
Branch: REL9_4_STABLE [5e2fb8862] 2016-04-21 15:44:18 -0400
|
|
|
|
Branch: REL9_3_STABLE [8f9518414] 2016-04-21 15:44:18 -0400
|
|
|
|
Branch: REL9_2_STABLE [6848827b4] 2016-04-21 15:44:18 -0400
|
|
|
|
Branch: REL9_1_STABLE [b2bb59bd5] 2016-04-21 15:44:18 -0400
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [125ad539a] 2016-04-21 16:58:47 -0400
|
|
|
|
Branch: REL9_5_STABLE [d2e59cbc3] 2016-04-21 16:58:59 -0400
|
|
|
|
Branch: REL9_4_STABLE [56dee70d9] 2016-04-21 16:59:04 -0400
|
|
|
|
Branch: REL9_3_STABLE [82bf369ed] 2016-04-21 16:59:08 -0400
|
|
|
|
Branch: REL9_2_STABLE [b5ebc513d] 2016-04-21 16:59:13 -0400
|
|
|
|
Branch: REL9_1_STABLE [9028f404e] 2016-04-21 16:59:17 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix reporting of errors from <function>bind()</function>
|
|
|
|
and <function>listen()</function> system calls on Windows (Tom Lane)
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
|
|
Branch: master [01a07e6c1] 2016-04-08 12:37:20 -0400
|
|
|
|
Branch: REL9_5_STABLE [849167943] 2016-04-08 12:36:59 -0400
|
|
|
|
Branch: REL9_4_STABLE [f79a7fa90] 2016-04-08 12:29:31 -0400
|
|
|
|
Branch: REL9_3_STABLE [ca5d6edbf] 2016-04-08 12:29:34 -0400
|
|
|
|
Branch: REL9_2_STABLE [9e77d0e3c] 2016-04-08 12:29:36 -0400
|
|
|
|
Branch: REL9_1_STABLE [d2189a802] 2016-04-08 12:33:29 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2016-05-07 23:26:23 +02:00
|
|
|
Reduce verbosity of compiler output when building with Microsoft Visual
|
|
|
|
Studio (Christian Ullrich)
|
2016-05-07 01:43:51 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
|
|
Branch: master [0fb54de9a] 2016-04-29 08:09:07 -0400
|
|
|
|
Branch: REL9_5_STABLE [da52474f3] 2016-04-29 08:06:25 -0400
|
|
|
|
Branch: master [7dc549238] 2016-04-29 09:49:31 -0400
|
|
|
|
Branch: REL9_5_STABLE [b71b4d852] 2016-04-29 09:50:38 -0400
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [23b09e15b] 2016-04-28 11:50:58 -0400
|
|
|
|
Branch: REL9_5_STABLE [94a16531b] 2016-04-28 11:51:08 -0400
|
|
|
|
Branch: REL9_4_STABLE [65c2eeb00] 2016-04-28 11:51:13 -0400
|
|
|
|
Branch: REL9_3_STABLE [707c44fe2] 2016-04-28 11:51:17 -0400
|
|
|
|
Branch: REL9_2_STABLE [c563d97c6] 2016-04-28 11:51:22 -0400
|
|
|
|
Branch: REL9_1_STABLE [a6c6789c4] 2016-04-28 11:51:26 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Support building with Visual Studio 2015
|
|
|
|
(Michael Paquier, Petr Jelínek)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Note that builds made with VS2015 will not run on Windows versions
|
|
|
|
before Windows Vista.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
|
|
Branch: master [9f633b404] 2016-04-22 05:18:59 -0400
|
|
|
|
Branch: REL9_5_STABLE [409c49c64] 2016-04-22 05:19:57 -0400
|
|
|
|
Branch: REL9_4_STABLE [c238a4101] 2016-04-22 05:20:07 -0400
|
|
|
|
Branch: REL9_3_STABLE [ab5c6d01f] 2016-04-22 05:20:18 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <function>putenv()</function> to work properly with Visual Studio 2013
|
2016-05-07 01:43:51 +02:00
|
|
|
(Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [7abc15716] 2016-03-29 11:55:19 -0400
|
|
|
|
Branch: REL9_5_STABLE [491e84738] 2016-03-29 11:54:57 -0400
|
|
|
|
Branch: REL9_4_STABLE [2fed676c9] 2016-03-29 11:54:57 -0400
|
|
|
|
Branch: REL9_3_STABLE [11cc7bb88] 2016-03-29 11:54:57 -0400
|
|
|
|
Branch: REL9_2_STABLE [b4b06931e] 2016-03-29 11:54:58 -0400
|
|
|
|
Branch: REL9_1_STABLE [6cd30292b] 2016-03-29 11:54:58 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid possibly-unsafe use of Windows' <function>FormatMessage()</function>
|
2016-05-07 01:43:51 +02:00
|
|
|
function (Christian Ullrich)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</literal> flag where
|
2016-05-07 01:43:51 +02:00
|
|
|
appropriate. No live bug is known to exist here, but it seems like a
|
|
|
|
good idea to be careful.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [98f158e41] 2016-05-05 20:08:58 -0400
|
|
|
|
Branch: REL9_5_STABLE [4edbb265c] 2016-05-05 20:09:10 -0400
|
|
|
|
Branch: REL9_4_STABLE [a5148e800] 2016-05-05 20:09:17 -0400
|
|
|
|
Branch: REL9_3_STABLE [d30c67af8] 2016-05-05 20:09:22 -0400
|
|
|
|
Branch: REL9_2_STABLE [29d154e36] 2016-05-05 20:09:27 -0400
|
|
|
|
Branch: REL9_1_STABLE [bfc39da64] 2016-05-05 20:09:32 -0400
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2016d
|
2016-05-07 01:43:51 +02:00
|
|
|
for DST law changes in Russia and Venezuela. There are new zone
|
2017-10-09 03:44:17 +02:00
|
|
|
names <literal>Europe/Kirov</literal> and <literal>Asia/Tomsk</literal> to reflect
|
2016-05-07 01:43:51 +02:00
|
|
|
the fact that these regions now have different time zone histories from
|
|
|
|
adjacent regions.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
2016-03-27 00:27:58 +01:00
|
|
|
<sect1 id="release-9-5-2">
|
|
|
|
<title>Release 9.5.2</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2016-03-31</para>
|
|
|
|
</formalpara>
|
2016-03-27 00:27:58 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.1.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.2</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
However, you may need to <command>REINDEX</command> some indexes after applying
|
2016-03-27 00:27:58 +01:00
|
|
|
the update, as per the first changelog entry below.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [3df9c374e] 2016-03-23 16:03:13 -0400
|
|
|
|
Branch: REL9_5_STABLE [8aa6e9780] 2016-03-23 16:04:35 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Disable abbreviated keys for string sorting in non-<literal>C</literal>
|
2016-03-27 00:27:58 +01:00
|
|
|
locales (Robert Haas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<productname>PostgreSQL</productname> 9.5 introduced logic for speeding up
|
2016-03-27 00:27:58 +01:00
|
|
|
comparisons of string data types by using the standard C library
|
2017-10-09 03:44:17 +02:00
|
|
|
function <function>strxfrm()</function> as a substitute
|
|
|
|
for <function>strcoll()</function>. It now emerges that most versions of
|
2016-03-27 00:27:58 +01:00
|
|
|
glibc (Linux's implementation of the C library) have buggy
|
2017-10-09 03:44:17 +02:00
|
|
|
implementations of <function>strxfrm()</function> that, in some locales,
|
2016-03-27 00:27:58 +01:00
|
|
|
can produce string comparison results that do not
|
2017-10-09 03:44:17 +02:00
|
|
|
match <function>strcoll()</function>. Until this problem can be better
|
|
|
|
characterized, disable the optimization in all non-<literal>C</literal>
|
|
|
|
locales. (<literal>C</literal> locale is safe since it uses
|
|
|
|
neither <function>strcoll()</function> nor <function>strxfrm()</function>.)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Unfortunately, this problem affects not only sorting but also entry
|
2016-03-28 01:26:26 +02:00
|
|
|
ordering in B-tree indexes, which means that B-tree indexes
|
2017-10-09 03:44:17 +02:00
|
|
|
on <type>text</type>, <type>varchar</type>, or <type>char</type> columns may now
|
2016-03-27 00:27:58 +01:00
|
|
|
be corrupt if they sort according to an affected locale and were
|
2017-10-09 03:44:17 +02:00
|
|
|
built or modified under <productname>PostgreSQL</productname> 9.5.0 or 9.5.1.
|
|
|
|
Users should <command>REINDEX</command> indexes that might be affected.
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
It is not possible at this time to give an exhaustive list of
|
2017-10-09 03:44:17 +02:00
|
|
|
known-affected locales. <literal>C</literal> locale is known safe, and
|
2016-03-27 00:27:58 +01:00
|
|
|
there is no evidence of trouble in English-based locales such
|
2017-10-09 03:44:17 +02:00
|
|
|
as <literal>en_US</literal>, but some other popular locales such
|
|
|
|
as <literal>de_DE</literal> are affected in most glibc versions.
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2016-03-28 17:32:17 +02:00
|
|
|
<!--
|
|
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
|
|
Branch: master [86ebf30fd] 2016-03-28 09:03:20 -0400
|
|
|
|
Branch: REL9_5_STABLE [db69e58a0] 2016-03-28 09:03:41 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Maintain row-security status properly in cached plans (Stephen Frost)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In a session that performs queries as more than one role, the plan
|
|
|
|
cache might incorrectly re-use a plan that was generated for another
|
|
|
|
role ID, thus possibly applying the wrong set of policies when
|
|
|
|
row-level security (RLS) is in use.
|
|
|
|
(CVE-2016-2193)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [3e1338475] 2016-03-28 10:57:42 -0300
|
|
|
|
Branch: REL9_5_STABLE [bf78a6f10] 2016-03-28 10:57:46 -0300
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add must-be-superuser checks to some
|
2017-10-09 03:44:17 +02:00
|
|
|
new <filename>contrib/pageinspect</filename> functions (Andreas Seltenreich)
|
2016-03-28 17:32:17 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Most functions in the <filename>pageinspect</filename> extension that
|
|
|
|
inspect <type>bytea</type> values disallow calls by non-superusers,
|
|
|
|
but <function>brin_page_type()</function> and <function>brin_metapage_info()</function>
|
|
|
|
failed to do so. Passing contrived <type>bytea</type> values to them might
|
2016-03-28 17:32:17 +02:00
|
|
|
crash the server or disclose a few bytes of server memory. Add the
|
|
|
|
missing permissions checks to prevent misuse.
|
|
|
|
(CVE-2016-3065)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2016-03-27 00:27:58 +01:00
|
|
|
<!--
|
|
|
|
Author: Simon Riggs <simon@2ndQuadrant.com>
|
|
|
|
Branch: master [c7111d11b] 2016-03-03 09:53:43 +0000
|
|
|
|
Branch: REL9_5_STABLE [bf7ced5e2] 2016-03-03 09:50:38 +0000
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix incorrect handling of indexed <literal>ROW()</literal> comparisons
|
2016-03-27 00:27:58 +01:00
|
|
|
(Simon Riggs)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Flaws in a minor optimization introduced in 9.5 caused incorrect
|
2017-10-09 03:44:17 +02:00
|
|
|
results if the <literal>ROW()</literal> comparison matches the index ordering
|
2016-03-27 00:27:58 +01:00
|
|
|
partially but not exactly (for example, differing column order, or the
|
2017-10-09 03:44:17 +02:00
|
|
|
index contains both <literal>ASC</literal> and <literal>DESC</literal> columns).
|
2016-03-27 00:27:58 +01:00
|
|
|
Pending a better solution, the optimization has been removed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [a298a1e06] 2016-03-09 14:51:22 -0500
|
|
|
|
Branch: REL9_5_STABLE [b2ce9485b] 2016-03-09 14:51:01 -0500
|
|
|
|
Branch: REL9_4_STABLE [da936200d] 2016-03-09 14:51:01 -0500
|
|
|
|
Branch: REL9_3_STABLE [1ab7a160f] 2016-03-09 14:51:01 -0500
|
|
|
|
Branch: REL9_2_STABLE [c8e059724] 2016-03-09 14:51:01 -0500
|
|
|
|
Branch: REL9_1_STABLE [d485d9581] 2016-03-09 14:51:02 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix incorrect handling of NULL index entries in
|
2017-10-09 03:44:17 +02:00
|
|
|
indexed <literal>ROW()</literal> comparisons (Tom Lane)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
An index search using a row comparison such as <literal>ROW(a, b) >
|
2017-10-09 03:44:17 +02:00
|
|
|
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>.
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [1d4a0ab19] 2016-03-09 18:53:53 -0800
|
|
|
|
Branch: REL9_5_STABLE [301cc3549] 2016-03-09 18:53:53 -0800
|
|
|
|
Branch: REL9_4_STABLE [4f37d0916] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: REL9_3_STABLE [bfa282a02] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: REL9_2_STABLE [ce8f42919] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: REL9_1_STABLE [a62714fae] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: master [606e0f984] 2016-03-09 18:53:53 -0800
|
|
|
|
Branch: REL9_5_STABLE [63b06e8fa] 2016-03-09 18:53:53 -0800
|
|
|
|
Branch: REL9_4_STABLE [43b491a81] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: REL9_3_STABLE [e069848a3] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: REL9_2_STABLE [c224d44f7] 2016-03-09 18:53:54 -0800
|
|
|
|
Branch: REL9_1_STABLE [d0e47bcd4] 2016-03-09 18:53:54 -0800
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Avoid unlikely data-loss scenarios due to renaming files without
|
2017-10-09 03:44:17 +02:00
|
|
|
adequate <function>fsync()</function> calls before and after (Michael Paquier,
|
2016-03-27 00:27:58 +01:00
|
|
|
Tomas Vondra, Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [71404af2a] 2016-03-22 17:56:20 -0400
|
|
|
|
Branch: REL9_5_STABLE [d8d5a00b1] 2016-03-22 17:56:06 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix incorrect behavior when rechecking a just-modified row in a query
|
2017-10-09 03:44:17 +02:00
|
|
|
that does <command>SELECT FOR UPDATE/SHARE</command> and contains some
|
2016-03-27 00:27:58 +01:00
|
|
|
relations that need not be locked (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Rows from non-locked relations were incorrectly treated as containing
|
|
|
|
all NULLs during the recheck, which could result in incorrectly
|
2017-10-09 03:44:17 +02:00
|
|
|
deciding that the updated row no longer passes the <literal>WHERE</literal>
|
2016-03-27 00:27:58 +01:00
|
|
|
condition, or in incorrectly outputting NULLs.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [a9d199f6d] 2016-03-02 23:31:39 -0500
|
|
|
|
Branch: REL9_5_STABLE [429d68465] 2016-03-02 23:31:39 -0500
|
|
|
|
Branch: REL9_4_STABLE [597e41e45] 2016-03-02 23:31:39 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix bug in <function>json_to_record()</function> when a field of its input
|
2016-03-27 00:27:58 +01:00
|
|
|
object contains a sub-object with a field name matching one of the
|
|
|
|
requested output column names (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
|
|
Branch: master [94c745eb1] 2016-02-21 10:30:49 -0500
|
|
|
|
Branch: REL9_5_STABLE [68d68ff83] 2016-02-21 10:40:39 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix nonsense result from two-argument form
|
2017-10-09 03:44:17 +02:00
|
|
|
of <function>jsonb_object()</function> when called with empty arrays
|
2016-03-27 00:27:58 +01:00
|
|
|
(Michael Paquier, Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [384dfbde1] 2016-03-23 10:43:13 -0400
|
|
|
|
Branch: REL9_5_STABLE [5f95521b3] 2016-03-23 10:43:24 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix misbehavior in <function>jsonb_set()</function> when converting a path
|
2016-03-27 00:27:58 +01:00
|
|
|
array element into an integer for use as an array subscript
|
|
|
|
(Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [55c3a04d6] 2016-03-17 15:50:33 -0400
|
|
|
|
Branch: REL9_5_STABLE [d0a585c69] 2016-03-17 15:50:33 -0400
|
|
|
|
Branch: REL9_4_STABLE [17a250b18] 2016-03-17 15:50:33 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix misformatting of negative time zone offsets
|
2017-10-09 03:44:17 +02:00
|
|
|
by <function>to_char()</function>'s <literal>OF</literal> format code
|
2016-03-27 00:27:58 +01:00
|
|
|
(Thomas Munro, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
|
|
Branch: master [fd658dbb3] 2016-03-15 18:04:39 -0400
|
|
|
|
Branch: REL9_5_STABLE [3f14d8d59] 2016-03-15 18:04:48 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix possible incorrect logging of waits done by
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>INSERT ... ON CONFLICT</command> (Peter Geoghegan)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Log messages would sometimes claim that the wait was due to an
|
|
|
|
exclusion constraint although no such constraint was responsible.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
|
|
Branch: master [d34794f7d] 2016-03-06 02:29:04 +0900
|
|
|
|
Branch: REL9_5_STABLE [f95f1ce00] 2016-03-06 02:43:17 +0900
|
|
|
|
Branch: REL9_4_STABLE [a9613ee69] 2016-03-06 02:43:26 +0900
|
|
|
|
-->
|
|
|
|
|
|
|
|
<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
|
2017-10-09 03:44:17 +02:00
|
|
|
response to <varname>recovery_min_apply_delay</varname> even while replaying
|
2016-03-27 00:27:58 +01:00
|
|
|
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>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Simon Riggs <simon@2ndQuadrant.com>
|
|
|
|
Branch: master [481725c0b] 2016-02-19 08:31:12 +0000
|
|
|
|
Branch: REL9_5_STABLE [c479024d3] 2016-02-19 08:31:39 +0000
|
|
|
|
Branch: REL9_4_STABLE [6830cae5f] 2016-02-19 08:32:28 +0000
|
|
|
|
Branch: REL9_3_STABLE [71e3cff2e] 2016-02-19 08:33:33 +0000
|
|
|
|
Branch: REL9_2_STABLE [c063d3c43] 2016-02-19 08:33:52 +0000
|
|
|
|
Branch: REL9_1_STABLE [ca32f125b] 2016-02-19 08:35:02 +0000
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Correctly handle cases where <literal>pg_subtrans</literal> is close to XID
|
2016-03-28 01:26:26 +02:00
|
|
|
wraparound during server startup (Jeff Janes)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [c8f621c43] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: REL9_5_STABLE [5990a034a] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: REL9_4_STABLE [3b94b3a49] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: master [fd45d16f6] 2016-03-06 16:27:20 -0800
|
|
|
|
Branch: REL9_5_STABLE [5d1826fe7] 2016-03-06 16:27:20 -0800
|
|
|
|
Branch: REL9_4_STABLE [fb3ea0465] 2016-03-06 16:27:20 -0800
|
|
|
|
Branch: master [b63bea5fd] 2016-03-07 14:24:03 -0800
|
|
|
|
Branch: REL9_5_STABLE [250e5bd71] 2016-03-07 14:24:52 -0800
|
|
|
|
Branch: REL9_4_STABLE [e3e84fd35] 2016-03-07 14:24:58 -0800
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [0bda14d54] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: REL9_5_STABLE [e76e365be] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: REL9_4_STABLE [a50f50a65] 2016-03-05 18:02:20 -0800
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [d9e903f3c] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: REL9_5_STABLE [6e759cefe] 2016-03-05 18:02:20 -0800
|
|
|
|
Branch: REL9_4_STABLE [465dd92d9] 2016-03-05 18:02:20 -0800
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [7c17aac69] 2016-03-02 23:42:21 -0800
|
|
|
|
Branch: REL9_5_STABLE [f8a75881f] 2016-03-02 23:43:42 -0800
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix assorted bugs in logical decoding (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Trouble cases included tuples larger than one page when replica
|
2017-10-09 03:44:17 +02:00
|
|
|
identity is <literal>FULL</literal>, <command>UPDATE</command>s that change a
|
2016-03-28 01:26:26 +02:00
|
|
|
primary key within a transaction large enough to be spooled to disk,
|
2016-03-27 00:27:58 +01:00
|
|
|
incorrect reports of <quote>subxact logged without previous toplevel
|
2017-10-09 03:44:17 +02:00
|
|
|
record</quote>, and incorrect reporting of a transaction's commit time.
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
|
|
Branch: master [41fedc246] 2016-02-29 12:28:06 +0000
|
|
|
|
Branch: REL9_5_STABLE [f1dfcf63d] 2016-02-29 12:31:25 +0000
|
|
|
|
Branch: REL9_4_STABLE [9b69d5c1d] 2016-02-29 12:34:33 +0000
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix planner error with nested security barrier views when the outer
|
2017-10-09 03:44:17 +02:00
|
|
|
view has a <literal>WHERE</literal> clause containing a correlated subquery
|
2016-03-27 00:27:58 +01:00
|
|
|
(Dean Rasheed)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [ab4ff2889] 2016-03-13 16:44:31 -0400
|
|
|
|
Branch: REL9_5_STABLE [aa9c4e71c] 2016-03-13 16:44:10 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix memory leak in GIN index searches (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [907e4dd2b] 2016-02-28 23:39:20 -0500
|
|
|
|
Branch: REL9_5_STABLE [2d43c45e9] 2016-02-28 23:40:04 -0500
|
|
|
|
Branch: REL9_4_STABLE [80c925c7b] 2016-02-28 23:40:13 -0500
|
|
|
|
Branch: REL9_3_STABLE [0c4457de8] 2016-02-28 23:40:21 -0500
|
|
|
|
Branch: REL9_2_STABLE [47792639c] 2016-02-28 23:40:28 -0500
|
|
|
|
Branch: REL9_1_STABLE [7d6c58aa1] 2016-02-28 23:40:35 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix corner-case crash due to trying to free <function>localeconv()</function>
|
2016-03-27 00:27:58 +01:00
|
|
|
output strings more than once (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [b3e05097e] 2016-03-06 19:20:55 -0500
|
|
|
|
Branch: REL9_5_STABLE [c2d61adc3] 2016-03-06 19:21:03 -0500
|
|
|
|
Branch: REL9_4_STABLE [3fa4715c5] 2016-03-06 19:21:03 -0500
|
|
|
|
Branch: REL9_3_STABLE [a35f85a52] 2016-03-06 19:21:03 -0500
|
|
|
|
Branch: REL9_2_STABLE [8894c9f79] 2016-03-06 19:21:03 -0500
|
|
|
|
Branch: REL9_1_STABLE [fe747b741] 2016-03-06 19:21:03 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix parsing of affix files for <literal>ispell</literal> dictionaries
|
2016-03-27 00:27:58 +01:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The code could go wrong if the affix file contained any characters
|
|
|
|
whose byte length changes during case-folding, for
|
2017-10-09 03:44:17 +02:00
|
|
|
example <literal>I</literal> in Turkish UTF8 locales.
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [51e78ab4f] 2016-02-10 19:30:11 -0500
|
|
|
|
Branch: REL9_5_STABLE [b10635bb5] 2016-02-10 19:30:11 -0500
|
|
|
|
Branch: REL9_4_STABLE [19e469410] 2016-02-10 19:30:12 -0500
|
|
|
|
Branch: REL9_3_STABLE [24ce5754a] 2016-02-10 19:30:12 -0500
|
|
|
|
Branch: REL9_2_STABLE [64f99a2ee] 2016-02-10 19:30:12 -0500
|
|
|
|
Branch: REL9_1_STABLE [e56acbe2a] 2016-02-10 19:30:12 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid use of <function>sscanf()</function> to parse <literal>ispell</literal>
|
2016-03-27 00:27:58 +01:00
|
|
|
dictionary files (Artur Zakirov)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This dodges a portability problem on FreeBSD-derived platforms
|
Refer to OS X as "macOS", except for the port name which is still "darwin".
We weren't terribly consistent about whether to call Apple's OS "OS X"
or "Mac OS X", and the former is probably confusing to people who aren't
Apple users. Now that Apple has rebranded it "macOS", follow their lead
to establish a consistent naming pattern. Also, avoid the use of the
ancient project name "Darwin", except as the port code name which does not
seem desirable to change. (In short, this patch touches documentation and
comments, but no actual code.)
I didn't touch contrib/start-scripts/osx/, either. I suspect those are
obsolete and due for a rewrite, anyway.
I dithered about whether to apply this edit to old release notes, but
those were responsible for quite a lot of the inconsistencies, so I ended
up changing them too. Anyway, Apple's being ahistorical about this,
so why shouldn't we be?
2016-09-25 21:40:57 +02:00
|
|
|
(including macOS).
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
|
|
Branch: master [5882ca668] 2016-02-19 22:47:50 -0500
|
|
|
|
Branch: REL9_5_STABLE [377a1af56] 2016-02-19 22:48:04 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix atomic-operations code used on PPC with IBM's xlc compiler
|
|
|
|
(Noah Misch)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This error led to rare failures of concurrent operations on that
|
|
|
|
platform.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
|
|
Branch: master [9d9038824] 2016-03-10 14:10:18 +0100
|
|
|
|
Branch: REL9_5_STABLE [ad9a15d3f] 2016-03-10 14:10:32 +0100
|
|
|
|
Branch: REL9_4_STABLE [8857488b6] 2016-03-10 14:10:41 +0100
|
|
|
|
Branch: REL9_3_STABLE [270d8a12e] 2016-03-10 14:10:48 +0100
|
|
|
|
Branch: REL9_2_STABLE [78b597808] 2016-03-10 14:10:54 +0100
|
|
|
|
Branch: REL9_1_STABLE [3e6385e27] 2016-03-10 14:11:01 +0100
|
|
|
|
-->
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [9445db925] 2016-03-04 11:53:20 -0500
|
|
|
|
Branch: REL9_5_STABLE [0315dfa8f] 2016-03-04 11:57:22 -0500
|
|
|
|
Branch: REL9_4_STABLE [8de488d00] 2016-03-04 11:57:23 -0500
|
|
|
|
Branch: REL9_3_STABLE [54139ac22] 2016-03-04 11:57:31 -0500
|
|
|
|
Branch: REL9_2_STABLE [c658d5a9b] 2016-03-04 11:57:36 -0500
|
|
|
|
Branch: REL9_1_STABLE [b4895bf79] 2016-03-04 11:57:40 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>psql</application>'s tab completion logic to handle multibyte
|
2016-03-27 00:27:58 +01:00
|
|
|
characters properly (Kyotaro Horiguchi, Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: REL9_5_STABLE [1bee54e51] 2016-03-14 11:31:22 -0400
|
|
|
|
Branch: REL9_4_STABLE [13108dd0e] 2016-03-14 11:31:34 -0400
|
|
|
|
Branch: REL9_3_STABLE [0576de5c7] 2016-03-14 11:31:39 -0400
|
|
|
|
Branch: REL9_2_STABLE [39b3ea714] 2016-03-14 11:31:44 -0400
|
|
|
|
Branch: REL9_1_STABLE [2d61d88d8] 2016-03-14 11:31:49 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>psql</application>'s tab completion for
|
|
|
|
<literal>SECURITY LABEL</literal> (Tom Lane)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Pressing TAB after <literal>SECURITY LABEL</literal> might cause a crash
|
2016-03-27 00:27:58 +01:00
|
|
|
or offering of inappropriate keywords.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
|
|
Branch: master [2ffa86962] 2016-02-10 20:34:02 -0500
|
|
|
|
Branch: REL9_5_STABLE [725f0ce29] 2016-02-10 20:34:24 -0500
|
|
|
|
Branch: REL9_4_STABLE [4492ab53b] 2016-02-10 20:34:30 -0500
|
|
|
|
Branch: REL9_3_STABLE [198242ede] 2016-02-10 20:34:35 -0500
|
|
|
|
Branch: REL9_2_STABLE [4421b5253] 2016-02-10 20:34:41 -0500
|
|
|
|
Branch: REL9_1_STABLE [f97664cf5] 2016-02-10 20:34:48 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_ctl</application> accept a wait timeout from the
|
|
|
|
<envar>PGCTLTIMEOUT</envar> environment variable, if none is specified on
|
2016-03-27 00:27:58 +01:00
|
|
|
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>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [b642e50ae] 2016-03-07 10:40:44 -0500
|
|
|
|
Branch: REL9_5_STABLE [45b87cc57] 2016-03-07 10:40:53 -0500
|
|
|
|
Branch: REL9_4_STABLE [89f8372cb] 2016-03-07 10:40:57 -0500
|
|
|
|
Branch: REL9_3_STABLE [b73e81605] 2016-03-07 10:41:01 -0500
|
|
|
|
Branch: REL9_2_STABLE [15d43196c] 2016-03-07 10:41:07 -0500
|
|
|
|
Branch: REL9_1_STABLE [5a39c7395] 2016-03-07 10:41:11 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix incorrect test for Windows service status
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>pg_ctl</application> (Manuel Mathar)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous set of minor releases attempted to
|
2017-10-09 03:44:17 +02:00
|
|
|
fix <application>pg_ctl</application> to properly determine whether to send log
|
2016-03-27 00:27:58 +01:00
|
|
|
messages to Window's Event Log, but got the test backwards.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [47211af17] 2016-03-16 23:18:07 -0400
|
|
|
|
Branch: REL9_5_STABLE [8ee2e5f78] 2016-03-16 23:18:07 -0400
|
|
|
|
Branch: REL9_4_STABLE [23cb32660] 2016-03-16 23:18:07 -0400
|
|
|
|
Branch: REL9_3_STABLE [c02aae418] 2016-03-16 23:18:07 -0400
|
|
|
|
Branch: REL9_2_STABLE [be6f9ea2e] 2016-03-16 23:18:08 -0400
|
|
|
|
Branch: REL9_1_STABLE [1965a8ce1] 2016-03-16 23:18:08 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>pgbench</application> to correctly handle the combination
|
|
|
|
of <literal>-C</literal> and <literal>-M prepared</literal> options (Tom Lane)
|
2016-03-27 00:27:58 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
|
|
Branch: master [3386f34cd] 2016-02-18 18:32:27 -0500
|
|
|
|
Branch: REL9_5_STABLE [6f43c4d34] 2016-02-18 18:32:26 -0500
|
|
|
|
Branch: REL9_4_STABLE [bec4d0ffb] 2016-02-18 18:32:26 -0500
|
|
|
|
Branch: REL9_3_STABLE [bf26c4f44] 2016-02-18 18:32:26 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_upgrade</application>, skip creating a deletion script when
|
2016-03-27 00:27:58 +01:00
|
|
|
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>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [e66197fa2] 2016-03-08 13:42:57 -0800
|
|
|
|
Branch: REL9_5_STABLE [68dababfe] 2016-03-08 13:42:58 -0800
|
|
|
|
Branch: REL9_4_STABLE [6041d388c] 2016-03-08 13:42:58 -0800
|
|
|
|
Branch: REL9_3_STABLE [44f9f1f2d] 2016-03-08 13:42:58 -0800
|
|
|
|
Branch: REL9_2_STABLE [ee06c97e4] 2016-03-08 13:42:58 -0800
|
|
|
|
Branch: REL9_1_STABLE [c5f1fbbfb] 2016-03-08 13:42:58 -0800
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In PL/Perl, properly translate empty Postgres arrays into empty Perl
|
|
|
|
arrays (Alex Hunsaker)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [66f503868] 2016-02-16 21:08:15 -0500
|
|
|
|
Branch: REL9_5_STABLE [2ce19f8a5] 2016-02-16 21:08:15 -0500
|
|
|
|
Branch: REL9_4_STABLE [f461fa7d0] 2016-02-16 21:08:15 -0500
|
|
|
|
Branch: REL9_3_STABLE [b3ec98c8b] 2016-02-16 21:08:15 -0500
|
|
|
|
Branch: REL9_2_STABLE [7d48349fd] 2016-02-16 21:08:15 -0500
|
|
|
|
Branch: REL9_1_STABLE [875973f5d] 2016-02-16 21:08:15 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Make PL/Python cope with function names that aren't valid Python
|
|
|
|
identifiers (Jim Nasby)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [48e6c943e] 2016-02-18 15:40:35 -0500
|
|
|
|
Branch: REL9_5_STABLE [0276bbd62] 2016-02-18 15:40:35 -0500
|
|
|
|
Branch: REL9_4_STABLE [b7547166f] 2016-02-18 15:40:35 -0500
|
|
|
|
Branch: REL9_3_STABLE [9dfb5b940] 2016-02-18 15:40:35 -0500
|
|
|
|
Branch: REL9_2_STABLE [29f299728] 2016-02-18 15:40:35 -0500
|
|
|
|
Branch: REL9_1_STABLE [0f359c7de] 2016-02-18 15:40:36 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix multiple mistakes in the statistics returned
|
2017-10-09 03:44:17 +02:00
|
|
|
by <filename>contrib/pgstattuple</filename>'s <function>pgstatindex()</function>
|
2016-03-27 00:27:58 +01:00
|
|
|
function (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
|
|
Branch: master [5d0320105] 2016-03-19 18:36:35 -0400
|
|
|
|
Branch: REL9_5_STABLE [2f38b3e7d] 2016-03-19 18:44:04 -0400
|
|
|
|
Branch: REL9_4_STABLE [6336ca916] 2016-03-19 18:49:19 -0400
|
|
|
|
Branch: REL9_3_STABLE [a0adf3852] 2016-03-19 18:51:01 -0400
|
|
|
|
Branch: REL9_2_STABLE [89bf78a9b] 2016-03-19 18:51:01 -0400
|
|
|
|
Branch: REL9_1_STABLE [2aa9fd963] 2016-03-19 18:59:41 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Remove dependency on <literal>psed</literal> in MSVC builds, since it's no
|
2016-03-27 00:27:58 +01:00
|
|
|
longer provided by core Perl (Michael Paquier, Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [676265eb7] 2016-03-25 19:03:08 -0400
|
|
|
|
Branch: REL9_5_STABLE [31d02ebf7] 2016-03-25 19:03:24 -0400
|
|
|
|
Branch: REL9_4_STABLE [de371e68a] 2016-03-25 19:03:32 -0400
|
|
|
|
Branch: REL9_3_STABLE [8e16592d4] 2016-03-25 19:03:39 -0400
|
|
|
|
Branch: REL9_2_STABLE [96fa37459] 2016-03-25 19:03:47 -0400
|
|
|
|
Branch: REL9_1_STABLE [e5fd35cc5] 2016-03-25 19:03:54 -0400
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2016c
|
2016-03-27 00:27:58 +01:00
|
|
|
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>
|
|
|
|
|
2016-02-07 20:16:31 +01:00
|
|
|
<sect1 id="release-9-5-1">
|
|
|
|
<title>Release 9.5.1</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2016-02-11</para>
|
|
|
|
</formalpara>
|
2016-02-07 20:16:31 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This release contains a variety of fixes from 9.5.0.
|
|
|
|
For information about new features in the 9.5 major release, see
|
|
|
|
<xref linkend="release-9-5">.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.5.1</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore is not required for those running 9.5.X.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2016-02-08 16:49:37 +01:00
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [3bb3f42f3] 2016-02-08 10:25:40 -0500
|
|
|
|
Branch: REL9_5_STABLE [a61de2bc1] 2016-02-08 10:25:40 -0500
|
|
|
|
Branch: REL9_4_STABLE [fdc3139e2] 2016-02-08 10:25:40 -0500
|
|
|
|
Branch: REL9_3_STABLE [6403a6b74] 2016-02-08 10:25:40 -0500
|
|
|
|
Branch: REL9_2_STABLE [e93516cf7] 2016-02-08 10:25:40 -0500
|
|
|
|
Branch: REL9_1_STABLE [98d6b7305] 2016-02-08 10:25:40 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
2016-02-07 20:16:31 +01:00
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [f867ce551] 2016-02-07 12:29:32 -0500
|
|
|
|
Branch: REL9_5_STABLE [129db3cbe] 2016-02-07 12:29:17 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix an oversight that caused hash joins to miss joining to some tuples
|
|
|
|
of the inner relation in rare cases (Tomas Vondra, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2016-02-08 16:49:37 +01:00
|
|
|
<!--
|
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: master [a6897efab] 2016-02-08 11:03:31 +0100
|
|
|
|
Branch: REL9_5_STABLE [87dbc72a7] 2016-02-08 11:03:37 +0100
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid pushdown of <literal>HAVING</literal> clauses when grouping sets are
|
2016-02-08 16:49:37 +01:00
|
|
|
used (Andrew Gierth)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [cc2ca9319] 2016-02-07 14:57:24 -0500
|
|
|
|
Branch: REL9_5_STABLE [82406d6ff] 2016-02-07 14:57:24 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix deparsing of <literal>ON CONFLICT</literal> arbiter <literal>WHERE</literal>
|
2016-02-08 16:49:37 +01:00
|
|
|
clauses (Peter Geoghegan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2016-02-07 20:16:31 +01:00
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [b8682a715] 2016-01-26 15:38:33 -0500
|
|
|
|
Branch: REL9_5_STABLE [2acb682f6] 2016-01-26 15:38:33 -0500
|
|
|
|
Branch: REL9_4_STABLE [2b3983158] 2016-01-26 15:38:33 -0500
|
|
|
|
Branch: REL9_3_STABLE [9bbfca8fd] 2016-01-26 15:38:33 -0500
|
|
|
|
Branch: REL9_2_STABLE [3a7af9d73] 2016-01-26 15:38:33 -0500
|
|
|
|
Branch: REL9_1_STABLE [b043df093] 2016-01-26 15:38:33 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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)
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Previously, <literal>%h</literal>/<literal>%r</literal> started to work just after a
|
|
|
|
new session had emitted the <quote>connection received</quote> log message;
|
2016-02-07 20:16:31 +01:00
|
|
|
now they work for that message too.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
|
|
Branch: master [6a61d1ff9] 2016-01-14 13:06:03 +0100
|
|
|
|
Branch: REL9_5_STABLE [3276ca303] 2016-01-14 13:07:20 +0100
|
|
|
|
Branch: REL9_4_STABLE [ab49f87d5] 2016-01-14 13:07:35 +0100
|
|
|
|
Branch: REL9_3_STABLE [77d8edcf5] 2016-01-14 13:07:45 +0100
|
|
|
|
Branch: REL9_2_STABLE [df0bd5a0f] 2016-01-14 13:07:55 +0100
|
|
|
|
Branch: REL9_1_STABLE [b1c0f92eb] 2016-01-14 13:08:10 +0100
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Avoid leaking a token handle during SSPI authentication
|
|
|
|
(Christian Ullrich)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [7e2247047] 2016-01-29 10:28:02 +0100
|
|
|
|
Branch: REL9_5_STABLE [56251f396] 2016-01-29 10:28:02 +0100
|
|
|
|
Branch: REL9_4_STABLE [5849b6e32] 2016-01-29 10:28:02 +0100
|
|
|
|
Branch: REL9_3_STABLE [db678ca16] 2016-01-29 10:28:03 +0100
|
|
|
|
Branch: REL9_2_STABLE [a362cc2e3] 2016-01-29 10:28:03 +0100
|
|
|
|
Branch: REL9_1_STABLE [ed5f57218] 2016-01-29 10:28:03 +0100
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>psql</application>'s <literal>\det</literal> command to interpret its
|
|
|
|
pattern argument the same way as other <literal>\d</literal> commands with
|
2016-02-07 20:16:31 +01:00
|
|
|
potentially schema-qualified patterns do (Reece Hart)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [a96761391] 2016-01-07 11:59:08 -0300
|
|
|
|
Branch: REL9_5_STABLE [744d01c9a] 2016-01-07 11:59:08 -0300
|
|
|
|
Branch: REL9_4_STABLE [c7aca3d45] 2016-01-07 11:59:08 -0300
|
|
|
|
Branch: REL9_3_STABLE [74d4009b8] 2016-01-07 11:59:08 -0300
|
|
|
|
Branch: REL9_2_STABLE [5c4cbd5d1] 2016-01-07 11:59:08 -0300
|
|
|
|
Branch: REL9_1_STABLE [b96f6f444] 2016-01-07 11:59:08 -0300
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <application>pg_ctl</application> on Windows, check service status to decide
|
2016-02-07 20:16:31 +01:00
|
|
|
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 [e72d7d853] 2016-01-13 18:55:27 -0500
|
|
|
|
Branch: REL9_5_STABLE [c42df2d46] 2016-01-13 18:55:27 -0500
|
|
|
|
Branch: REL9_4_STABLE [7393208b5] 2016-01-13 18:55:27 -0500
|
|
|
|
Branch: REL9_3_STABLE [b87403f70] 2016-01-13 18:55:27 -0500
|
|
|
|
Branch: REL9_2_STABLE [be2b27651] 2016-01-13 18:55:27 -0500
|
|
|
|
Branch: REL9_1_STABLE [5108013db] 2016-01-13 18:55:27 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix assorted corner-case bugs in <application>pg_dump</application>'s processing
|
2016-02-07 20:16:31 +01:00
|
|
|
of extension member objects (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
|
|
Branch: master [df43fcf45] 2016-01-22 20:04:35 -0300
|
|
|
|
Branch: REL9_5_STABLE [1e910cf5b] 2016-01-22 20:04:35 -0300
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix improper quoting of domain constraint names
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>pg_dump</application> (Elvis Pranskevichus)
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [0ed707e9b] 2016-02-04 00:26:10 -0500
|
|
|
|
Branch: REL9_5_STABLE [b99dd7170] 2016-02-04 00:26:10 -0500
|
|
|
|
Branch: REL9_4_STABLE [411e2b0d5] 2016-02-04 00:26:10 -0500
|
|
|
|
Branch: REL9_3_STABLE [aefbc208b] 2016-02-04 00:26:10 -0500
|
|
|
|
Branch: REL9_2_STABLE [4f58a7003] 2016-02-04 00:26:10 -0500
|
|
|
|
Branch: REL9_1_STABLE [9c704632c] 2016-02-04 00:26:10 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_dump</application> mark a view's triggers as needing to be
|
2016-02-07 20:16:31 +01:00
|
|
|
processed after its rule, to prevent possible failure during
|
2017-10-09 03:44:17 +02:00
|
|
|
parallel <application>pg_restore</application> (Tom Lane)
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [64f5edca2] 2016-02-01 08:23:41 -0500
|
|
|
|
Branch: REL9_5_STABLE [829757c8a] 2016-02-01 08:26:07 -0500
|
|
|
|
Branch: REL9_4_STABLE [c33d1a8d5] 2016-02-03 09:15:29 -0500
|
|
|
|
Branch: REL9_3_STABLE [014796aa3] 2016-02-03 09:19:58 -0500
|
|
|
|
Branch: REL9_2_STABLE [b63a4f418] 2016-02-03 09:21:44 -0500
|
|
|
|
Branch: REL9_1_STABLE [4c8b07d3c] 2016-02-03 09:25:34 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Install guards in <application>pgbench</application> against corner-case overflow
|
2016-02-07 20:16:31 +01:00
|
|
|
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 [4aecd22d3] 2016-01-05 17:25:12 -0300
|
|
|
|
Branch: REL9_5_STABLE [7ef311eb4] 2016-01-05 17:25:12 -0300
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Suppress useless warning message when <application>pg_receivexlog</application>
|
2016-02-07 20:16:31 +01:00
|
|
|
connects to a pre-9.4 server (Marco Nenciarini)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [866566a69] 2016-01-11 19:55:39 -0500
|
|
|
|
Branch: REL9_5_STABLE [db8fa56d6] 2016-01-11 19:55:39 -0500
|
|
|
|
Branch: REL9_4_STABLE [22815752e] 2016-01-11 19:55:40 -0500
|
|
|
|
Branch: REL9_3_STABLE [0ddeaba7e] 2016-01-11 19:55:40 -0500
|
|
|
|
Branch: REL9_2_STABLE [3843ba510] 2016-01-11 19:55:40 -0500
|
|
|
|
Branch: master [fb6fcbd33] 2016-01-11 20:06:36 -0500
|
|
|
|
Branch: REL9_5_STABLE [5ef26b8de] 2016-01-11 20:06:47 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Avoid dump/reload problems when using both <application>plpython2</application>
|
|
|
|
and <application>plpython3</application> (Tom Lane)
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In principle, both versions of <application>PL/Python</application> can be used in
|
2016-02-07 20:16:31 +01:00
|
|
|
the same database, though not in the same session (because the two
|
2017-10-09 03:44:17 +02:00
|
|
|
versions of <application>libpython</application> cannot safely be used concurrently).
|
|
|
|
However, <application>pg_restore</application> and <application>pg_upgrade</application> both
|
2016-02-07 20:16:31 +01:00
|
|
|
do things that can fall foul of the same-session restriction. Work
|
|
|
|
around that by changing the timing of the check.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
|
|
Branch: REL9_4_STABLE [f1b898759] 2015-11-14 13:43:43 -0500
|
|
|
|
Branch: REL9_3_STABLE [a37ab812c] 2015-11-14 13:44:09 -0500
|
|
|
|
Branch: REL9_2_STABLE [82076c1e4] 2015-11-14 13:53:26 -0500
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: REL9_5_STABLE [a66c1fcdd] 2016-01-08 11:39:28 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>PL/Python</application> regression tests to pass with Python 3.5
|
2016-02-07 20:16:31 +01:00
|
|
|
(Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
|
|
Branch: master [f4aa3a18a] 2016-02-05 20:22:51 -0500
|
|
|
|
Branch: REL9_5_STABLE [0089dd34a] 2016-02-05 20:23:04 -0500
|
|
|
|
Branch: REL9_4_STABLE [ed6deeb7a] 2016-02-05 20:23:07 -0500
|
|
|
|
Branch: REL9_3_STABLE [34e91736b] 2016-02-05 20:23:11 -0500
|
|
|
|
Branch: REL9_2_STABLE [de9766d39] 2016-02-05 20:23:14 -0500
|
|
|
|
Branch: REL9_1_STABLE [b1f591c50] 2016-02-05 20:23:19 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Prevent certain <application>PL/Java</application> parameters from being set by
|
2016-02-07 20:16:31 +01:00
|
|
|
non-superusers (Noah Misch)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This change mitigates a <application>PL/Java</application> security bug
|
|
|
|
(CVE-2016-0766), which was fixed in <application>PL/Java</application> by marking
|
2016-02-07 20:16:31 +01:00
|
|
|
these parameters as superuser-only. To fix the security hazard for
|
2017-10-09 03:44:17 +02:00
|
|
|
sites that update <productname>PostgreSQL</productname> more frequently
|
|
|
|
than <application>PL/Java</application>, make the core code aware of them also.
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
|
|
Branch: master [7a58d19b0] 2016-02-01 13:21:00 +0100
|
|
|
|
Branch: REL9_5_STABLE [40482e606] 2016-02-01 13:20:37 +0100
|
|
|
|
Branch: REL9_3_STABLE [0b55fef39] 2016-02-01 13:19:10 +0100
|
|
|
|
Branch: REL9_2_STABLE [d9ce5d201] 2016-02-01 13:19:34 +0100
|
|
|
|
Branch: REL9_1_STABLE [79782b407] 2016-02-01 13:19:43 +0100
|
2016-02-08 16:49:37 +01:00
|
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
|
|
Branch: REL9_4_STABLE [33b26426e] 2016-02-08 11:10:14 +0100
|
2016-02-07 20:16:31 +01:00
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix <application>ecpg</application>-supplied header files to not contain comments
|
2016-02-07 20:16:31 +01:00
|
|
|
continued from a preprocessor directive line onto the next line
|
|
|
|
(Michael Meskes)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Such a comment is rejected by <application>ecpg</application>. It's not yet clear
|
|
|
|
whether <application>ecpg</application> itself should be changed.
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [e6ecc93a1] 2016-02-03 01:39:48 -0500
|
|
|
|
Branch: REL9_5_STABLE [1c291624b] 2016-02-03 01:39:08 -0500
|
|
|
|
Branch: REL9_4_STABLE [aa223a037] 2016-02-03 01:39:08 -0500
|
|
|
|
Branch: REL9_3_STABLE [1f2b195eb] 2016-02-03 01:39:08 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
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)
|
2016-02-07 20:16:31 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously this function could be fooled by non-alphanumeric trailing
|
|
|
|
characters, leading to emitting syntactically-invalid JSON.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
|
|
Branch: master [9418d79a7] 2016-02-04 21:17:53 -0500
|
|
|
|
Branch: REL9_5_STABLE [453d40817] 2016-02-04 21:17:46 -0500
|
|
|
|
Branch: REL9_4_STABLE [1f3294c22] 2016-02-04 21:15:57 -0500
|
|
|
|
Branch: master [37c84570b] 2016-02-04 22:27:13 -0500
|
|
|
|
Branch: REL9_5_STABLE [d160e2a34] 2016-02-04 22:27:38 -0500
|
|
|
|
Branch: REL9_4_STABLE [2099b911d] 2016-02-04 22:27:47 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
In <filename>contrib/postgres_fdw</filename>, fix bugs triggered by use
|
|
|
|
of <literal>tableoid</literal> in data-modifying commands (Etsuro Fujita,
|
2016-02-07 20:16:31 +01:00
|
|
|
Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [a396144ac] 2016-01-22 11:53:06 -0500
|
|
|
|
Branch: REL9_5_STABLE [47acf3add] 2016-01-22 11:53:06 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Fix ill-advised restriction of <literal>NAMEDATALEN</literal> to be less
|
2016-02-07 20:16:31 +01:00
|
|
|
than 256 (Robert Haas, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [3343ea9e8] 2016-01-05 15:47:05 -0500
|
|
|
|
Branch: REL9_5_STABLE [8805af088] 2016-01-05 15:47:05 -0500
|
|
|
|
Branch: REL9_4_STABLE [8c558b2e9] 2016-01-05 15:47:05 -0500
|
|
|
|
Branch: REL9_3_STABLE [6d899f098] 2016-01-05 15:47:05 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<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: Bruce Momjian <bruce@momjian.us>
|
|
|
|
Branch: master [216d56843] 2016-01-19 23:30:29 -0500
|
|
|
|
Branch: REL9_5_STABLE [34bda20ae] 2016-01-19 23:30:29 -0500
|
|
|
|
Branch: REL9_4_STABLE [8b3d52801] 2016-01-19 23:30:29 -0500
|
|
|
|
Branch: REL9_3_STABLE [7a47262ce] 2016-01-19 23:30:28 -0500
|
|
|
|
Branch: REL9_2_STABLE [49d65e857] 2016-01-19 23:30:28 -0500
|
|
|
|
Branch: REL9_1_STABLE [b1bc38144] 2016-01-19 23:30:28 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Ensure that <filename>dynloader.h</filename> is included in the installed
|
2016-02-07 20:16:31 +01:00
|
|
|
header files in MSVC builds (Bruce Momjian, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
|
|
Branch: master [a73311e52] 2016-02-05 10:59:09 -0500
|
|
|
|
Branch: REL9_5_STABLE [37e694632] 2016-02-05 10:59:21 -0500
|
|
|
|
Branch: REL9_4_STABLE [31b792f61] 2016-02-05 10:59:26 -0500
|
|
|
|
Branch: REL9_3_STABLE [9a3475b84] 2016-02-05 10:59:31 -0500
|
|
|
|
Branch: REL9_2_STABLE [32f17a2e7] 2016-02-05 10:59:35 -0500
|
|
|
|
Branch: REL9_1_STABLE [6887d72d0] 2016-02-05 10:59:39 -0500
|
|
|
|
-->
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Update time zone data files to <application>tzdata</application> release 2016a for
|
2016-02-07 20:16:31 +01:00
|
|
|
DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
|
|
|
|
Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<sect1 id="release-9-5">
|
|
|
|
<title>Release 9.5</title>
|
|
|
|
|
2017-05-13 00:31:55 +02:00
|
|
|
<formalpara>
|
|
|
|
<title>Release date:</title>
|
|
|
|
<para>2016-01-07</para>
|
|
|
|
</formalpara>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Overview</title>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Major enhancements in <productname>PostgreSQL</productname> 9.5 include:
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- This list duplicates items below, but without authors or details-->
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="sql-on-conflict"><command>INSERT</command></link>s
|
2015-11-12 01:19:14 +01:00
|
|
|
that would generate constraint conflicts to be turned into
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>UPDATE</command>s or ignored
|
2015-11-12 01:19:14 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <literal>GROUP BY</literal> analysis features <link
|
|
|
|
linkend="queries-grouping-sets"><literal>GROUPING SETS</literal></link>,
|
|
|
|
<link linkend="queries-grouping-sets"><literal>CUBE</literal></link> and
|
|
|
|
<link linkend="queries-grouping-sets"><literal>ROLLUP</literal></link>
|
2015-11-12 01:19:14 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="ddl-rowsecurity">row-level security control</link>
|
2015-11-12 01:19:14 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2016-01-03 21:33:12 +01:00
|
|
|
Create mechanisms for tracking
|
2017-10-09 03:44:17 +02:00
|
|
|
the <link linkend="replication-origins">progress of replication</link>,
|
2016-01-03 21:33:12 +01:00
|
|
|
including methods for identifying the origin of individual changes
|
|
|
|
during logical replication
|
2015-11-12 01:19:14 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Add <link linkend="brin">Block Range Indexes</link> (<acronym>BRIN</acronym>)
|
2015-11-12 01:19:14 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Substantial performance improvements for sorting
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Substantial performance improvements for multi-CPU machines
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The above items are explained in more detail in the sections below.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
|
|
|
|
<title>Migration to Version 9.5</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.5 contains a number of changes that may affect compatibility
|
|
|
|
with previous releases. Observe the following incompatibilities:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [c6b3c93] Tom Lane: Make operator precedence follow the SQL standar..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Adjust <link linkend="sql-precedence">operator precedence</link>
|
|
|
|
to match the <acronym>SQL</acronym> standard (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
The precedence of <literal><=</literal>, <literal>>=</literal>
|
|
|
|
and <literal><></literal> has been reduced to match that of
|
|
|
|
<literal><</literal>, <literal>></literal>
|
2017-10-09 03:44:17 +02:00
|
|
|
and <literal>=</literal>. The precedence of <literal>IS</literal> tests
|
|
|
|
(e.g., <replaceable>x</replaceable> <literal>IS NULL</literal>) has been reduced to be
|
2015-06-29 21:38:46 +02:00
|
|
|
just below these six comparison operators.
|
2017-10-09 03:44:17 +02:00
|
|
|
Also, multi-keyword operators beginning with <literal>NOT</literal> now have
|
2015-06-29 21:38:46 +02:00
|
|
|
the precedence of their base operator (for example, <literal>NOT
|
2017-10-09 03:44:17 +02:00
|
|
|
BETWEEN</literal> now has the same precedence as <literal>BETWEEN</literal>) whereas
|
|
|
|
before they had inconsistent precedence, behaving like <literal>NOT</literal>
|
2015-06-29 21:38:46 +02:00
|
|
|
with respect to their left operand but like their base operator with
|
|
|
|
respect to their right operand. The new configuration
|
|
|
|
parameter <xref linkend="guc-operator-precedence-warning"> can be
|
|
|
|
enabled to warn about queries in which these precedence changes result
|
|
|
|
in different parsing choices.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-08-06 23:34:38 +02:00
|
|
|
2015-03-31 [0badb06] Bruce ..: pg_ctl: change default shutdown mode from 'sma..
|
|
|
|
-->
|
|
|
|
<para>
|
2016-01-03 21:33:12 +01:00
|
|
|
Change <xref linkend="app-pg-ctl">'s default shutdown mode from
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>smart</literal> to <literal>fast</literal> (Bruce Momjian)
|
2015-08-06 23:34:38 +02:00
|
|
|
</para>
|
2015-11-12 01:19:14 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This means the default behavior will be to forcibly cancel existing
|
|
|
|
database sessions, not simply wait for them to exit.
|
|
|
|
</para>
|
2015-08-06 23:34:38 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2015-03-04 [1345cc6] Tom Lane: Use standard casting mechanism to convert type..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Use assignment cast behavior for data type conversions
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>PL/pgSQL</application> assignments, rather than converting to and
|
2015-06-29 21:38:46 +02:00
|
|
|
from text (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-09-11 03:22:21 +02:00
|
|
|
This change causes conversions of Booleans to strings to
|
2017-10-09 03:44:17 +02:00
|
|
|
produce <literal>true</literal> or <literal>false</literal>, not <literal>t</literal>
|
|
|
|
or <literal>f</literal>. Other type conversions may succeed in more cases
|
|
|
|
than before; for example, assigning a numeric value <literal>3.9</literal> to
|
2015-06-29 21:38:46 +02:00
|
|
|
an integer variable will now assign 4 rather than failing. If no
|
|
|
|
assignment-grade cast is defined for the particular source and
|
2017-10-09 03:44:17 +02:00
|
|
|
destination types, <application>PL/pgSQL</application> will fall back to its old
|
2015-06-29 21:38:46 +02:00
|
|
|
I/O conversion behavior.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-28 [11a020e] Andres..: Allow escaping of option values for options pas..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow characters in <link linkend="libpq-connect-options">server
|
2017-10-09 03:44:17 +02:00
|
|
|
command-line options</link> to be escaped with a backslash (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Formerly, spaces in the options string always separated options, so
|
|
|
|
there was no way to include a space in an option value. Including
|
2017-10-09 03:44:17 +02:00
|
|
|
a backslash in an option value now requires writing <literal>\\</literal>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [9a08841] Stephe..: Change default for include_realm to 1
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Change the default value of the GSSAPI <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="gssapi-auth"><varname>include_realm</varname></link> parameter to 1, so
|
|
|
|
that by default the realm is not removed from a <acronym>GSS</acronym>
|
|
|
|
or <acronym>SSPI</acronym> principal name (Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-12-15 22:42:18 +01:00
|
|
|
2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a..
|
|
|
|
2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1..
|
|
|
|
2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Replace configuration parameter <varname>checkpoint_segments</varname>
|
2015-12-15 22:42:18 +01:00
|
|
|
with <xref linkend="guc-min-wal-size">
|
|
|
|
and <xref linkend="guc-max-wal-size"> (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
2015-10-22 19:59:58 +02:00
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
If you previously adjusted <varname>checkpoint_segments</varname>, the
|
|
|
|
following formula will give you an approximately equivalent setting:
|
2015-10-22 19:59:58 +02:00
|
|
|
<programlisting>
|
|
|
|
max_wal_size = (3 * checkpoint_segments) * 16MB
|
|
|
|
</programlisting>
|
|
|
|
Note that the default setting for <varname>max_wal_size</varname> is
|
|
|
|
much higher than the default <varname>checkpoint_segments</varname> used
|
2015-12-15 22:42:18 +01:00
|
|
|
to be, so adjusting it might no longer be necessary.
|
2015-10-22 19:59:58 +02:00
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
2016-01-03 21:33:12 +01:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Control the Linux <acronym>OOM</acronym> killer via new environment
|
2016-01-03 21:33:12 +01:00
|
|
|
variables <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</envar></link>
|
2016-01-03 21:33:12 +01:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</envar></link>,
|
|
|
|
instead of compile-time options <literal>LINUX_OOM_SCORE_ADJ</literal> and
|
|
|
|
<literal>LINUX_OOM_ADJ</literal>
|
2016-01-03 21:33:12 +01:00
|
|
|
(Gurjeet Singh)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-11-07 23:09:04 +01:00
|
|
|
2015-10-20 [b06f1f2] Robert..: Put back ssl_renegotiation_limit parameter, bu..
|
2015-08-03 18:29:10 +02:00
|
|
|
2015-07-28 [6087d95] Andres..: Remove ssl renegotiation support.
|
|
|
|
-->
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Decommission server configuration
|
2017-10-09 03:44:17 +02:00
|
|
|
parameter <varname>ssl_renegotiation_limit</varname>, which was deprecated
|
2015-08-03 18:29:10 +02:00
|
|
|
in earlier releases (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
While SSL renegotiation is a good idea in theory, it has caused enough
|
|
|
|
bugs to be considered a net negative in practice, and it is due to be
|
|
|
|
removed from future versions of the relevant standards. We have
|
2017-10-09 03:44:17 +02:00
|
|
|
therefore removed support for it from <productname>PostgreSQL</productname>.
|
|
|
|
The <varname>ssl_renegotiation_limit</varname> parameter still exists, but
|
2015-11-07 23:09:04 +01:00
|
|
|
cannot be set to anything but zero (disabled). It's not documented
|
|
|
|
anymore, either.
|
2015-08-03 18:29:10 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-11-05 [525a489] Tom Lane: Remove the last vestige of server-side autocomm..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Remove server configuration parameter <varname>autocommit</varname>, which
|
2015-06-11 06:08:55 +02:00
|
|
|
was already deprecated and non-operational (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-06 [bb8582a] Peter ..: Remove rolcatupdate
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Remove the <link linkend="catalog-pg-authid"><structname>pg_authid</structname></link>
|
|
|
|
catalog's <structfield>rolcatupdate</structfield> field, as it had no usefulness
|
2015-12-15 22:42:18 +01:00
|
|
|
(Adam Brightwell)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-12-13 [28c3667] Magnus..: Consistently set all fields in pg_stat_replica..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
The <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_replication</structname></link>
|
|
|
|
system view's <structfield>sent</structfield> field is now NULL, not zero, when
|
2015-12-15 22:42:18 +01:00
|
|
|
it has no valid value (Magnus Hagander)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-07-18 03:08:03 +02:00
|
|
|
<listitem>
|
2015-08-03 18:29:10 +02:00
|
|
|
<!--
|
|
|
|
2015-07-17 [89ddd29] Andrew..: Support JSON negative array subscripts everywh..
|
|
|
|
-->
|
2015-07-18 03:08:03 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <type>json</type> and <type>jsonb</type> array extraction operators to
|
2015-12-15 22:42:18 +01:00
|
|
|
accept negative subscripts, which count from the end of JSON arrays
|
|
|
|
(Peter Geoghegan, Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Previously, these operators returned <literal>NULL</literal> for negative
|
2015-12-15 22:42:18 +01:00
|
|
|
subscripts.
|
2015-07-18 03:08:03 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Below you will find a detailed account of the changes between
|
2015-06-11 06:08:55 +02:00
|
|
|
<productname>PostgreSQL</productname> 9.5 and the previous major
|
2015-06-29 21:38:46 +02:00
|
|
|
release.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server</title>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Indexes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-07 [7516f52] Alvaro..: BRIN: Block Range Indexes
|
|
|
|
2015-05-05 [3b6db1f] Alvaro..: Add geometry/range functions to support BRIN in..
|
|
|
|
2015-05-15 [b0b7be6] Alvaro..: Add BRIN infrastructure for "inclusion" opclasses
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Add <link linkend="brin">Block Range Indexes</link> (<acronym>BRIN</acronym>)
|
2015-08-07 04:33:15 +02:00
|
|
|
(Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<acronym>BRIN</acronym> indexes store only summary data (such as minimum
|
2015-11-12 01:19:14 +01:00
|
|
|
and maximum values) for ranges of heap blocks. They are therefore
|
|
|
|
very compact and cheap to update; but if the data is naturally
|
|
|
|
clustered, they can still provide substantial speedup of searches.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [35fcb1b] Heikki..: Allow GiST distance function to return merely ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow queries to perform accurate distance filtering of
|
2015-06-12 05:04:46 +02:00
|
|
|
bounding-box-indexed objects (polygons, circles) using <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="gist">GiST</link> indexes (Alexander Korotkov, Heikki
|
2015-06-12 05:04:46 +02:00
|
|
|
Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Previously, to exploit such an index a subquery had to be used to
|
|
|
|
select a large number of rows ordered by bounding-box distance, and
|
|
|
|
the result then had to be filtered further with a more accurate
|
|
|
|
distance calculation.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-26 [d04c8ed] Heikki..: Add support for index-only scans in GiST.
|
|
|
|
2015-03-27 [e09b483] Heikki..: Add index-only scan support to btree_gist.
|
|
|
|
2015-03-28 [3a20b0e] Heikki..: Add index-only scan support to inet GiST opclass.
|
|
|
|
2015-03-30 [0633a60] Heikki..: Add index-only scan support to range type GiST ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Allow <link linkend="gist">GiST</link> indexes to perform index-only
|
2015-06-12 05:04:46 +02:00
|
|
|
scans (Anastasia Lubennikova, Heikki Linnakangas, Andreas Karlsson)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
Add GUC and storage parameter to set the maximum size of GIN pending list.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add configuration parameter <xref linkend="guc-gin-pending-list-limit">
|
2017-10-09 03:44:17 +02:00
|
|
|
to control the size of <acronym>GIN</acronym> pending lists (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
This value can also be set on a per-index basis as an index storage
|
|
|
|
parameter. Previously the pending-list size was controlled
|
|
|
|
by <xref linkend="guc-work-mem">, which was awkward because
|
2017-10-09 03:44:17 +02:00
|
|
|
appropriate values for <varname>work_mem</varname> are often much too large
|
2015-12-15 22:42:18 +01:00
|
|
|
for this purpose.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [84aa8ba] Bruce ..: Issue a warning during the creation of hash in..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Issue a warning during the creation of <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="indexes-types">hash</link> indexes because they are not
|
2015-06-12 05:04:46 +02:00
|
|
|
crash-safe (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>General Performance</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-19 [4ea51cd] Robert..: Use abbreviated keys for faster sorting of text..
|
|
|
|
2014-09-19 [e246b3d] Robert..: Add a fast pre-check for equality of equal-leng..
|
|
|
|
2015-05-13 [78efd5c] Robert..: Extend abbreviated key infrastructure to datum ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve the speed of sorting of <type>varchar</type>, <type>text</type>,
|
|
|
|
and <type>numeric</type> fields via <quote>abbreviated</quote> keys
|
2015-11-12 01:19:14 +01:00
|
|
|
(Peter Geoghegan, Andrew Gierth, Robert Haas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-26 20:48:52 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-06-30 21:09:51 +02:00
|
|
|
2014-11-07 [5ea86e6] Robert..: Use the sortsupport infrastructure in more cas..
|
2015-06-30 21:00:12 +02:00
|
|
|
-->
|
2015-06-26 20:48:52 +02:00
|
|
|
<para>
|
2015-06-26 22:04:46 +02:00
|
|
|
Extend the infrastructure that allows sorting to be performed by
|
|
|
|
inlined, non-<acronym>SQL</acronym>-callable comparison functions to
|
2017-10-09 03:44:17 +02:00
|
|
|
cover <command>CREATE INDEX</command>, <command>REINDEX</command>, and
|
|
|
|
<command>CLUSTER</command> (Peter Geoghegan)
|
2015-06-26 20:48:52 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [45f6240] Heikki..: Pack tuples in a hash join batch densely, to sa..
|
|
|
|
2014-09-12 [8cce08f] Robert..: Change NTUP_PER_BUCKET to 1 to improve hash joi..
|
|
|
|
2014-10-13 [30d7ae3] Kevin ..: Increase number of hash join buckets for undere..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Improve performance of hash joins (Tomas Vondra, Robert Haas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-25 [5d7962c] Robert..: Change locking regimen around buffer replacement.
|
|
|
|
2014-12-25 [d72731a] Andres..: Lockless StrategyGetBuffer clock sweep hot path.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Improve concurrency of shared buffer replacement
|
2015-11-12 01:19:14 +01:00
|
|
|
(Robert Haas, Amit Kapila, Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-25 [2ed5b87f] Kevin ..: Reduce pinning and buffer content locking for b..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-30 21:00:12 +02:00
|
|
|
Reduce the number of page locks and pins during index scans (Kevin Grittner)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The primary benefit of this is to allow index vacuums to be blocked
|
|
|
|
less often.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-08-30 [4b4b680] Andres..: Make backend local tracking of buffer pins memo..
|
|
|
|
2015-01-19 [2d115e4] Andres..: Fix various shortcomings of the new PrivateRefC..
|
|
|
|
-->
|
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Make per-backend tracking of buffer pins more memory-efficient
|
|
|
|
(Andres Freund)
|
2015-06-30 21:00:12 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-12-25 [ab5194e] Andres..: Improve LWLock scalability.
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Improve lock scalability (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This particularly addresses scalability problems when running on
|
2017-10-09 03:44:17 +02:00
|
|
|
systems with multiple <acronym>CPU</acronym> sockets.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-13 03:47:08 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-15 [f15821e] Tom Lane: Allow join removal in some cases involving a le..
|
|
|
|
-->
|
2015-06-13 03:47:08 +02:00
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Allow the optimizer to remove unnecessary references to left-joined
|
|
|
|
subqueries (David Rowley)
|
2015-06-13 03:47:08 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-27 [d222585] Tom Lane: Allow pushdown of WHERE quals into subqueries w..
|
|
|
|
-->
|
2015-06-13 03:47:08 +02:00
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Allow pushdown of query restrictions into subqueries with <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="tutorial-window">window functions</link>, where appropriate
|
2015-06-13 03:47:08 +02:00
|
|
|
(David Rowley)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
2015-08-06 22:07:27 +02:00
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-04-27 [dcbf594] Stephe..: Improve qual pushdown for RLS and SB views
|
|
|
|
-->
|
|
|
|
<para>
|
2016-01-03 21:33:12 +01:00
|
|
|
Allow a non-leakproof function to be pushed down into a security
|
|
|
|
barrier view if the function does not receive any view output
|
|
|
|
columns (Dean Rasheed)
|
2015-08-06 22:07:27 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
2015-06-13 03:47:08 +02:00
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-10-04 04:27:02 +02:00
|
|
|
2015-09-24 [45d256c] Tom Lane: Allow planner to use expression-index stats fo..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Teach the planner to use statistics obtained from an expression
|
|
|
|
index on a boolean-returning function, when a matching function call
|
2017-10-09 03:44:17 +02:00
|
|
|
appears in <literal>WHERE</literal> (Tom Lane)
|
2015-10-04 04:27:02 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-09-23 [cfb2024] Tom Lane: Make ANALYZE compute basic statistics even for..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <command>ANALYZE</command> compute basic statistics (null fraction and
|
2015-10-04 04:27:02 +02:00
|
|
|
average column width) even for columns whose data type lacks an
|
|
|
|
equality function (Oleksandr Shulgin)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-11-04 [5028f22] Heikki..: Switch to CRC-32C in WAL and other places.
|
|
|
|
2015-02-10 [025c024] Heikki..: Speed up CRC calculation using slicing-by-8 alg..
|
|
|
|
2015-04-14 [3dc2d62] Heikki..: Use Intel SSE 4.2 CRC instructions where availa..
|
|
|
|
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Speed up <acronym>CRC</acronym> (cyclic redundancy check) computations
|
2015-08-07 00:03:39 +02:00
|
|
|
and switch to CRC-32C (Abhijit Menon-Sen, Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-30 21:00:12 +02:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-01-16 [f5ae3ba] Andres..: Make tbm_add_tuples more efficient by caching t..
|
|
|
|
2015-01-16 [779fdcd] Tom Lane: Improve new caching logic in tbm_add_tuples().
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Improve bitmap index scan performance (Teodor Sigaev, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-07-01 [9f03ca9] Robert..: Avoid copying index tuples when building an ind..
|
|
|
|
-->
|
2015-11-12 01:19:14 +01:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Speed up <command>CREATE INDEX</command> by avoiding unnecessary memory
|
2015-11-12 01:19:14 +01:00
|
|
|
copies (Robert Haas)
|
2015-06-30 21:00:12 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-08-08 19:38:31 +02:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-10-02 [3acc10c9] Robert..: Increase the number of buffer mapping partitio..
|
|
|
|
-->
|
2015-11-12 01:19:14 +01:00
|
|
|
<para>
|
2015-08-08 19:38:31 +02:00
|
|
|
Increase the number of buffer mapping partitions (Amit Kapila,
|
|
|
|
Andres Freund, Robert Haas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This improves performance for highly concurrent workloads.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-30 21:00:12 +02:00
|
|
|
</itemizedlist>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Monitoring</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-03 [4ff695b1] Alvaro..: Add log_min_autovacuum_duration per-table option
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Add per-table autovacuum logging control via new
|
2017-10-09 03:44:17 +02:00
|
|
|
<varname>log_autovacuum_min_duration</varname> storage parameter
|
2015-11-12 01:19:14 +01:00
|
|
|
(Michael Paquier)
|
2015-06-12 05:04:46 +02:00
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-29 [51adcaa] Andres..: Add cluster_name GUC which is included in proce..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add new configuration parameter <xref linkend="guc-cluster-name">
|
|
|
|
(Thomas Munro)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This string, typically set in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="config-setting-configuration-file"><filename>postgresql.conf</filename></link>,
|
2015-06-29 21:38:46 +02:00
|
|
|
allows clients to identify the cluster. This name also appears
|
|
|
|
in the process title of all server processes, allowing for easier
|
|
|
|
identification of processes belonging to the same cluster.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-13 [fe550b2] Tom Lane: Invent PGC_SU_BACKEND and mark log_connections..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Prevent non-superusers from changing <xref
|
|
|
|
linkend="guc-log-disconnections"> on connection startup (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2017-10-09 03:44:17 +02:00
|
|
|
<title><acronym>SSL</acronym></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-12 [acd08d7] Heikki..: Support Subject Alternative Names in SSL server..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Check <link linkend="libpq-ssl"><quote>Subject Alternative
|
2017-10-09 03:44:17 +02:00
|
|
|
Names</quote></link> in <acronym>SSL</acronym> server certificates, if present
|
2015-06-12 05:04:46 +02:00
|
|
|
(Alexey Klyukin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
When they are present, this replaces checks against the certificate's
|
2017-10-09 03:44:17 +02:00
|
|
|
<quote>Common Name</quote>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-12 [9029f4b] Magnus..: Add system view pg_stat_ssl
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add system view <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</structname></link> to report
|
|
|
|
<acronym>SSL</acronym> connection information (Magnus Hagander)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <application>libpq</application> functions to return <acronym>SSL</acronym>
|
2015-11-07 22:13:49 +01:00
|
|
|
information in an implementation-independent way (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
While <link linkend="libpq-pqgetssl"><function>PQgetssl()</function></link> can
|
|
|
|
still be used to call <productname>OpenSSL</productname> functions, it is now
|
2015-11-07 22:13:49 +01:00
|
|
|
considered deprecated because future versions
|
2017-10-09 03:44:17 +02:00
|
|
|
of <application>libpq</application> might support other <acronym>SSL</acronym>
|
2015-11-07 22:13:49 +01:00
|
|
|
implementations. When possible, use the new
|
|
|
|
functions <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="libpq-pqsslattribute"><function>PQsslAttribute()</function></link>, <link
|
|
|
|
linkend="libpq-pqsslattributenames"><function>PQsslAttributeNames()</function></link>,
|
|
|
|
and <link linkend="libpq-pqsslinuse"><function>PQsslInUse()</function></link>
|
|
|
|
to obtain <acronym>SSL</acronym> information in
|
|
|
|
an <acronym>SSL</acronym>-implementation-independent way.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-09 [8a0d34e4] Peter ..: libpq: Don't overwrite existing OpenSSL thread..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>libpq</application> honor any <productname>OpenSSL</productname>
|
2015-06-11 06:08:55 +02:00
|
|
|
thread callbacks (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously they were overwritten.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a..
|
|
|
|
2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1..
|
|
|
|
2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Replace configuration parameter <varname>checkpoint_segments</varname>
|
2015-06-29 21:38:46 +02:00
|
|
|
with <xref linkend="guc-min-wal-size">
|
|
|
|
and <xref linkend="guc-max-wal-size"> (Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This change allows the allocation of a large number of <acronym>WAL</acronym>
|
2015-12-15 22:42:18 +01:00
|
|
|
files without keeping them after they are no longer needed.
|
2017-10-09 03:44:17 +02:00
|
|
|
Therefore the default for <varname>max_wal_size</varname> has been set
|
|
|
|
to <literal>1GB</literal>, much larger than the old default
|
|
|
|
for <varname>checkpoint_segments</varname>.
|
2015-12-15 22:42:18 +01:00
|
|
|
Also note that standby servers perform restartpoints to try to limit
|
2017-10-09 03:44:17 +02:00
|
|
|
their WAL space consumption to <varname>max_wal_size</varname>; previously
|
|
|
|
they did not pay any attention to <varname>checkpoint_segments</varname>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2016-01-03 21:33:12 +01:00
|
|
|
2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Control the Linux <acronym>OOM</acronym> killer via new environment
|
2016-01-03 21:33:12 +01:00
|
|
|
variables <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</envar></link>
|
2016-01-03 21:33:12 +01:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</envar></link>
|
2016-01-03 21:33:12 +01:00
|
|
|
(Gurjeet Singh)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The previous <acronym>OOM</acronym> control infrastructure involved
|
|
|
|
compile-time options <literal>LINUX_OOM_SCORE_ADJ</literal> and
|
|
|
|
<literal>LINUX_OOM_ADJ</literal>, which are no longer supported.
|
2016-01-03 21:33:12 +01:00
|
|
|
The new behavior is available in all builds.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-12-03 [73c986a] Alvaro..: Keep track of transaction commit timestamps
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow recording of transaction
|
2015-09-11 03:22:21 +02:00
|
|
|
commit time stamps when configuration parameter <xref
|
2015-06-29 21:38:46 +02:00
|
|
|
linkend="guc-track-commit-timestamp">
|
2015-06-14 03:00:30 +02:00
|
|
|
is enabled (Álvaro Herrera, Petr Jelínek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-09-11 03:22:21 +02:00
|
|
|
Time stamp information can be accessed using functions <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-commit-timestamp"><function>pg_xact_commit_timestamp()</function></link>
|
|
|
|
and <function>pg_last_committed_xact()</function>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-22 [584e35d] Peter ..: Change local_preload_libraries to PGC_USERSET
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow <xref linkend="guc-local-preload-libraries"> to be set
|
2017-10-09 03:44:17 +02:00
|
|
|
by <command>ALTER ROLE SET</command> (Peter Eisentraut, Kyotaro Horiguchi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-03 [a75fb9b] Alvaro..: Have autovacuum workers listen to SIGHUP, too
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="autovacuum">autovacuum workers</link>
|
2015-12-15 22:42:18 +01:00
|
|
|
to respond to configuration parameter changes during a run
|
|
|
|
(Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-20 [3bdcf6a] Andres..: Don't allow to disable backend assertions via t..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Make configuration parameter <xref linkend="guc-debug-assertions">
|
2015-06-12 05:04:46 +02:00
|
|
|
read-only (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
This means that assertions can no longer be turned
|
2015-06-29 21:38:46 +02:00
|
|
|
off if they were enabled at compile time, allowing for more
|
2015-11-12 01:19:14 +01:00
|
|
|
efficient code optimization. This change also removes the <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="app-postgres-options">postgres</link> <option>-A</option> option.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-18 [7feaccc] Peter ..: Allow setting effective_io_concurrency even on..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow setting <xref linkend="guc-effective-io-concurrency"> on
|
|
|
|
systems where it has no effect (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [a97e0c3] Stephe..: Add pg_file_settings view and function
|
|
|
|
2015-06-28 [62d16c7] Tom Lane: Improve design and implementation of pg_file_se..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
Improve design and implementation of pg_file_settings view.
As first committed, this view reported on the file contents as they were
at the last SIGHUP event. That's not as useful as reporting on the current
contents, and what's more, it didn't work right on Windows unless the
current session had serviced at least one SIGHUP. Therefore, arrange to
re-read the files when pg_show_all_settings() is called. This requires
only minor refactoring so that we can pass changeVal = false to
set_config_option() so that it won't actually apply any changes locally.
In addition, add error reporting so that errors that would prevent the
configuration files from being loaded, or would prevent individual settings
from being applied, are visible directly in the view. This makes the view
usable for pre-testing whether edits made in the config files will have the
desired effect, before one actually issues a SIGHUP.
I also added an "applied" column so that it's easy to identify entries that
are superseded by later entries; this was the main use-case for the original
design, but it seemed unnecessarily hard to use for that.
Also fix a 9.4.1 regression that allowed multiple entries for a
PGC_POSTMASTER variable to cause bogus complaints in the postmaster log.
(The issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the pg_file_settings
view depended on such suppression *not* happening, we couldn't have fixed
this issue now without first doing something with pg_file_settings.
Now we suppress duplicates by marking them "ignored" within
ProcessConfigFileInternal, which doesn't hide them in the view.)
Lesser changes include:
Drive the view directly off the ConfigVariable list, instead of making a
basically-equivalent second copy of the data. There's no longer any need
to hang onto the data permanently, anyway.
Convert show_all_file_settings() to do its work in one call and return a
tuplestore; this avoids risks associated with assuming that the GUC state
will hold still over the course of query execution. (I think there were
probably latent bugs here, though you might need something like a cursor
on the view to expose them.)
Arrange to run SIGHUP processing in a short-lived memory context, to
forestall process-lifespan memory leaks. (There is one known leak in this
code, in ProcessConfigDirectory; it seems minor enough to not be worth
back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line counting
after an include_dir directive to be completely wrong.
Add missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29 00:06:14 +02:00
|
|
|
Add system view <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="view-pg-file-settings"><structname>pg_file_settings</structname></link>
|
Improve design and implementation of pg_file_settings view.
As first committed, this view reported on the file contents as they were
at the last SIGHUP event. That's not as useful as reporting on the current
contents, and what's more, it didn't work right on Windows unless the
current session had serviced at least one SIGHUP. Therefore, arrange to
re-read the files when pg_show_all_settings() is called. This requires
only minor refactoring so that we can pass changeVal = false to
set_config_option() so that it won't actually apply any changes locally.
In addition, add error reporting so that errors that would prevent the
configuration files from being loaded, or would prevent individual settings
from being applied, are visible directly in the view. This makes the view
usable for pre-testing whether edits made in the config files will have the
desired effect, before one actually issues a SIGHUP.
I also added an "applied" column so that it's easy to identify entries that
are superseded by later entries; this was the main use-case for the original
design, but it seemed unnecessarily hard to use for that.
Also fix a 9.4.1 regression that allowed multiple entries for a
PGC_POSTMASTER variable to cause bogus complaints in the postmaster log.
(The issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the pg_file_settings
view depended on such suppression *not* happening, we couldn't have fixed
this issue now without first doing something with pg_file_settings.
Now we suppress duplicates by marking them "ignored" within
ProcessConfigFileInternal, which doesn't hide them in the view.)
Lesser changes include:
Drive the view directly off the ConfigVariable list, instead of making a
basically-equivalent second copy of the data. There's no longer any need
to hang onto the data permanently, anyway.
Convert show_all_file_settings() to do its work in one call and return a
tuplestore; this avoids risks associated with assuming that the GUC state
will hold still over the course of query execution. (I think there were
probably latent bugs here, though you might need something like a cursor
on the view to expose them.)
Arrange to run SIGHUP processing in a short-lived memory context, to
forestall process-lifespan memory leaks. (There is one known leak in this
code, in ProcessConfigDirectory; it seems minor enough to not be worth
back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line counting
after an include_dir directive to be completely wrong.
Add missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29 00:06:14 +02:00
|
|
|
to show the contents of the server's configuration files
|
|
|
|
(Sawada Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-14 [a486e35] Peter ..: Add pg_settings.pending_restart column
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <structname>pending_restart</structname> to the system view <link
|
|
|
|
linkend="view-pg-settings"><structname>pg_settings</structname></link> to
|
2015-11-12 01:19:14 +01:00
|
|
|
indicate a change has been made but will not take effect until a
|
|
|
|
database restart (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-02 [bd3b7a9] Fujii ..: Support ALTER SYSTEM RESET command.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Allow <link linkend="sql-altersystem"><command>ALTER SYSTEM</command></link>
|
2017-10-09 03:44:17 +02:00
|
|
|
values to be reset with <command>ALTER SYSTEM RESET</command> (Vik
|
2015-06-12 05:04:46 +02:00
|
|
|
Fearing)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
This command removes the specified setting
|
2017-10-09 03:44:17 +02:00
|
|
|
from <filename>postgresql.auto.conf</filename>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Replication and Recovery</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2016-01-03 21:33:12 +01:00
|
|
|
2015-04-29 [5aa2350] Andres..: Introduce replication progress tracking infrast..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Create mechanisms for tracking
|
2017-10-09 03:44:17 +02:00
|
|
|
the <link linkend="replication-origins">progress of replication</link>,
|
2016-01-03 21:33:12 +01:00
|
|
|
including methods for identifying the origin of individual changes
|
|
|
|
during logical replication (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is helpful when implementing replication solutions.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-10-04 04:27:02 +02:00
|
|
|
2015-09-26 [bd7c348] Andres..: Rework the way multixact truncations work.
|
|
|
|
2015-09-26 [6e8af37] Andres..: Remove legacy multixact truncation support.
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Rework truncation of the multixact commit log to be properly
|
|
|
|
WAL-logged (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This makes things substantially simpler and more robust.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-11-25 [aedccb1] Simon ..: action_at_recovery_target recovery config option
|
|
|
|
2014-12-07 [b8e33a8] Simon ..: Tweaks for recovery_target_action
|
|
|
|
2015-03-15 [51c11a7] Andres..: Remove pause_at_recovery_target recovery.conf s..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="recovery-config"><filename>recovery.conf</filename></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
parameter <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="recovery-target-action"><varname>recovery_target_action</varname></link>
|
2015-06-14 19:41:37 +02:00
|
|
|
to control post-recovery activity (Petr Jelínek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This replaces the old parameter <varname>pause_at_recovery_target</varname>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [ffd3774] Heikki..: Add archive_mode='always' option.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add new <xref linkend="guc-archive-mode"> value
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>always</literal> to allow standbys to always archive received
|
|
|
|
<acronym>WAL</acronym> files (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-23 [5d2b45e] Fujii ..: Add GUC to control the time to wait before retr..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add configuration
|
|
|
|
parameter <xref linkend="guc-wal-retrieve-retry-interval"> to
|
2017-10-09 03:44:17 +02:00
|
|
|
control <acronym>WAL</acronym> read retry after failure
|
2015-06-29 21:38:46 +02:00
|
|
|
(Alexey Vasiliev, Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is particularly helpful for warm standbys.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-11-12 01:19:14 +01:00
|
|
|
2015-03-11 [57aa5b2] Fujii ..: Add GUC to enable compression of full page imag..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow compression of full-page images stored in <acronym>WAL</acronym>
|
2015-11-12 01:19:14 +01:00
|
|
|
(Rahila Syed, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This feature reduces WAL volume, at the cost of more CPU time spent
|
|
|
|
on WAL logging and WAL replay. It is controlled by a new
|
|
|
|
configuration parameter <xref linkend="guc-wal-compression">, which
|
|
|
|
currently is off by default.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2015-05-08 [de76884] Heikki..: At promotion, archive last segment from old tim..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Archive <acronym>WAL</acronym> files with suffix <literal>.partial</literal>
|
2015-06-11 06:08:55 +02:00
|
|
|
during standby promotion (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-13 [4ad2a54] Fujii ..: Add GUC to enable logging of replication comman..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add configuration parameter <xref
|
|
|
|
linkend="guc-log-replication-commands">
|
2015-06-12 05:04:46 +02:00
|
|
|
to log replication commands (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-13 04:31:17 +02:00
|
|
|
By default, replication commands, e.g. <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="protocol-replication"><literal>IDENTIFY_SYSTEM</literal></link>,
|
2015-06-29 21:38:46 +02:00
|
|
|
are not logged, even when <xref linkend="guc-log-statement"> is set
|
2017-10-09 03:44:17 +02:00
|
|
|
to <literal>all</literal>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Report the processes holding replication slots in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Craig Ringer)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The new output column is <structname>active_pid</structname>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [b3fc672] Heikki..: Allow using connection URI in primary_conninfo.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <filename>recovery.conf</filename>'s <link
|
|
|
|
linkend="primary-conninfo"><varname>primary_conninfo</varname></link> setting to
|
|
|
|
use connection <acronym>URI</acronym>s, e.g. <literal>postgres://</literal>
|
2015-06-14 03:10:48 +02:00
|
|
|
(Alexander Shulgin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Queries</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI..
|
|
|
|
2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="sql-on-conflict"><command>INSERT</command></link>s
|
2015-06-12 05:04:46 +02:00
|
|
|
that would generate constraint conflicts to be turned into
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>UPDATE</command>s or ignored (Peter Geoghegan, Heikki
|
2015-06-12 05:04:46 +02:00
|
|
|
Linnakangas, Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</command>.
|
2015-06-11 06:08:55 +02:00
|
|
|
This is the Postgres implementation of the popular
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>UPSERT</command> command.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-16 [f3d3118] Andres..: Support GROUPING SETS, CUBE and ROLLUP.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <literal>GROUP BY</literal> analysis features <link
|
|
|
|
linkend="queries-grouping-sets"><literal>GROUPING SETS</literal></link>,
|
|
|
|
<link linkend="queries-grouping-sets"><literal>CUBE</literal></link> and
|
|
|
|
<link linkend="queries-grouping-sets"><literal>ROLLUP</literal></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Andrew Gierth, Atri Sharma)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-18 [8f889b1] Tom Lane: Implement UPDATE tab SET (col1,col2,...) = (SEL..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-10-04 04:27:02 +02:00
|
|
|
Allow setting multiple target columns in
|
2017-10-20 03:16:39 +02:00
|
|
|
an <link linkend="sql-update"><command>UPDATE</command></link> from the result of
|
2015-10-04 04:27:02 +02:00
|
|
|
a single sub-SELECT (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is accomplished using the syntax <command>UPDATE tab SET
|
2017-10-09 03:44:17 +02:00
|
|
|
(col1, col2, ...) = (SELECT ...)</command>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-07 [df630b0] Alvaro..: Implement SKIP LOCKED for row-level locks
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Add <link linkend="sql-select"><command>SELECT</command></link> option
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>SKIP LOCKED</literal> to skip locked rows (Thomas Munro)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This does not throw an error for locked rows like
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>NOWAIT</literal> does.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [f6d208d] Simon ..: TABLESAMPLE, SQL Standard and extensible
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Add <link linkend="sql-select"><command>SELECT</command></link> option
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>TABLESAMPLE</literal> to return a subset of a table (Petr
|
2015-06-14 19:41:37 +02:00
|
|
|
Jelínek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
2016-01-03 21:33:12 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This feature supports the SQL-standard table sampling methods.
|
|
|
|
In addition, there are provisions
|
|
|
|
for <link linkend="tablesample-method">user-defined
|
2017-10-09 03:44:17 +02:00
|
|
|
table sampling methods</link>.
|
2016-01-03 21:33:12 +01:00
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [e529cd4] Robert..: Suggest to the user the column they may have m..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Suggest possible matches for mistyped column names (Peter
|
|
|
|
Geoghegan, Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Utility Commands</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-16 [20af53d] Tom Lane: Show sort ordering options in EXPLAIN output.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add more details about sort ordering in <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-explain"><command>EXPLAIN</command></link> output (Marius Timmer,
|
2015-06-12 05:04:46 +02:00
|
|
|
Lukas Kreft, Arne Scheffer)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Details include <literal>COLLATE</literal>, <literal>DESC</literal>,
|
|
|
|
<literal>USING</literal>, and <literal>NULLS FIRST</literal><literal>/LAST</literal>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-18 [35192f0] Alvaro..: Have VACUUM log number of skipped pages due to ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Make <link linkend="sql-vacuum"><command>VACUUM</command></link> log the
|
2015-06-12 05:04:46 +02:00
|
|
|
number of pages skipped due to pins (Jim Nasby)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-20 [d42358e] Alvaro..: Have TRUNCATE update pgstat tuple counters
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Make <link linkend="sql-truncate"><command>TRUNCATE</command></link> properly
|
2017-10-09 03:44:17 +02:00
|
|
|
update the <literal>pg_stat</literal>* tuple counters (Alexander Shulgin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
2017-10-20 03:16:39 +02:00
|
|
|
<title><xref linkend="sql-reindex"></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-09 [fe263d1] Simon ..: REINDEX SCHEMA
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <command>REINDEX</command> to reindex an entire schema using the
|
|
|
|
<literal>SCHEMA</literal> option (Sawada Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [ecd222e] Fujii ..: Support VERBOSE option in REINDEX command.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <literal>VERBOSE</literal> option to <command>REINDEX</command> (Sawada
|
2015-06-13 04:31:17 +02:00
|
|
|
Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-09 [ae4e688] Simon ..: Silence REINDEX
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Prevent <command>REINDEX DATABASE</command> and <command>SCHEMA</command>
|
|
|
|
from outputting object names, unless <literal>VERBOSE</literal> is used
|
2015-06-11 06:08:55 +02:00
|
|
|
(Simon Riggs)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-09 [17d436d] Fujii ..: Remove obsolete FORCE option from REINDEX.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Remove obsolete <literal>FORCE</literal> option from <command>REINDEX</command>
|
2015-06-11 06:08:55 +02:00
|
|
|
(Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Object Manipulation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-19 [491c029] Stephe..: Row-Level Security Policies (RLS)
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="ddl-rowsecurity">row-level security control</link>
|
2016-01-03 21:33:12 +01:00
|
|
|
(Craig Ringer, KaiGai Kohei, Adam Brightwell, Dean Rasheed,
|
|
|
|
Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
This feature allows row-by-row control over which users can add,
|
|
|
|
modify, or even see rows in a table. This is controlled by new
|
2017-10-20 03:16:39 +02:00
|
|
|
commands <link linkend="sql-createpolicy"><command>CREATE</command></link>/<link
|
|
|
|
linkend="sql-alterpolicy"><command>ALTER</command></link>/<link
|
|
|
|
linkend="sql-droppolicy"><command>DROP POLICY</command></link> and <link
|
|
|
|
linkend="sql-altertable"><command>ALTER TABLE ... ENABLE/DISABLE
|
2017-10-09 03:44:17 +02:00
|
|
|
ROW SECURITY</command></link>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-22 [f41872d] Alvaro..: Implement ALTER TABLE .. SET LOGGED / UNLOGGED
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-08-06 23:34:38 +02:00
|
|
|
Allow changing of the <acronym>WAL</acronym>
|
2015-09-05 10:35:49 +02:00
|
|
|
logging status of a table after creation with <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-altertable"><command>ALTER TABLE ... SET LOGGED /
|
2017-10-09 03:44:17 +02:00
|
|
|
UNLOGGED</command></link> (Fabrízio de Royes Mello)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-26 [0076f26] Heikki..: Implement IF NOT EXISTS for CREATE SEQUENCE.
|
|
|
|
2014-11-06 [08309aa] Fujii ..: Implement IF NOT EXIST for CREATE INDEX.
|
|
|
|
2014-12-13 [e39b6f9] Andrew..: Add CINE option for CREATE TABLE AS and CREATE ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <literal>IF NOT EXISTS</literal> clause to <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-createtableas"><command>CREATE TABLE AS</command></link>,
|
|
|
|
<link linkend="sql-createindex"><command>CREATE INDEX</command></link>,
|
|
|
|
<link linkend="sql-createsequence"><command>CREATE SEQUENCE</command></link>,
|
|
|
|
and <link linkend="sql-creatematerializedview"><command>CREATE
|
2017-10-09 03:44:17 +02:00
|
|
|
MATERIALIZED VIEW</command></link> (Fabrízio de Royes Mello)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-24 [1d8198b] Bruce ..: Add support for ALTER TABLE IF EXISTS ... RENAM..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add support for <literal>IF EXISTS</literal> to <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-altertable"><command>ALTER TABLE ... RENAME
|
2017-10-09 03:44:17 +02:00
|
|
|
CONSTRAINT</command></link> (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-09 [31eae60] Alvaro..: Allow CURRENT/SESSION_USER to be used in certai..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow some DDL commands to accept <literal>CURRENT_USER</literal>
|
|
|
|
or <literal>SESSION_USER</literal>, meaning the current user or session
|
2016-01-03 21:33:12 +01:00
|
|
|
user, in place of a specific user name (Kyotaro Horiguchi,
|
|
|
|
Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2016-01-03 21:33:12 +01:00
|
|
|
This feature is now supported in
|
2017-10-20 03:16:39 +02:00
|
|
|
<xref linkend="sql-alteruser">, <xref linkend="sql-altergroup">,
|
|
|
|
<xref linkend="sql-alterrole">, <xref linkend="sql-grant">,
|
2017-10-09 03:44:17 +02:00
|
|
|
and <command>ALTER <replaceable>object</replaceable> OWNER TO</command> commands.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2016-02-16 18:42:35 +01:00
|
|
|
2014-12-23 [7eca575] Alvaro..: get_object_address: separate domain constraints..
|
2015-06-30 21:00:12 +02:00
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Support comments on <link linkend="sql-createdomain">domain
|
2017-10-09 03:44:17 +02:00
|
|
|
constraints</link> (Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-05 [0ef0396] Simon ..: Reduce lock levels of some trigger DDL and add ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Reduce lock levels of some create and alter trigger and foreign
|
|
|
|
key commands (Simon Riggs, Andreas Karlsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-11 [fa26424] Stephe..: Allow LOCK TABLE .. ROW EXCLUSIVE MODE with IN..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Allow <link linkend="sql-lock"><command>LOCK TABLE ... ROW EXCLUSIVE
|
2017-10-09 03:44:17 +02:00
|
|
|
MODE</command></link> for those with <command>INSERT</command> privileges on the
|
2016-01-03 21:33:12 +01:00
|
|
|
target table (Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Previously this command required <command>UPDATE</command>, <command>DELETE</command>,
|
|
|
|
or <command>TRUNCATE</command> privileges.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-23 [e5f455f] Tom Lane: Apply table and domain CHECK constraints in nam.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Apply table and domain <literal>CHECK</literal> constraints in order by name
|
2015-06-11 06:08:55 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2016-01-03 21:33:12 +01:00
|
|
|
The previous ordering was indeterminate.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-01 [15c82ef] Tom Lane: Refactor CREATE/ALTER DATABASE syntax so option..
|
|
|
|
2014-07-01 [fbb1d7d] Tom Lane: Allow CREATE/ALTER DATABASE to manipulate datis..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-createdatabase"><command>CREATE</command></link>/<link
|
|
|
|
linkend="sql-alterdatabase"><command>ALTER DATABASE</command></link>
|
2017-10-09 03:44:17 +02:00
|
|
|
to manipulate <structname>datistemplate</structname> and
|
|
|
|
<structname>datallowconn</structname> (Vik Fearing)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
This allows these per-database settings to be
|
|
|
|
changed without manually modifying the <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="catalog-pg-database"><structname>pg_database</structname></link>
|
2015-12-15 22:42:18 +01:00
|
|
|
system catalog.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
2016-01-03 21:33:12 +01:00
|
|
|
<title><link linkend="ddl-foreign-data">Foreign Tables</link></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-10 [59efda3] Tom Lane: Implement IMPORT FOREIGN SCHEMA.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Add support for <xref linkend="sql-importforeignschema">
|
2016-01-03 21:33:12 +01:00
|
|
|
(Ronan Dunklau, Michael Paquier, Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This command allows automatic creation of local foreign tables
|
|
|
|
that match the structure of existing tables on a remote server.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-12-15 22:42:18 +01:00
|
|
|
2014-12-17 [fc2ac1f] Tom Lane: Allow CHECK constraints to be placed on foreign..
|
2015-06-30 21:00:12 +02:00
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <literal>CHECK</literal> constraints to be placed on foreign tables
|
2015-12-15 22:42:18 +01:00
|
|
|
(Shigeru Hanada, Etsuro Fujita)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Such constraints are assumed to be enforced on the remote server,
|
|
|
|
and are not enforced locally. However, they are assumed to hold for
|
|
|
|
purposes of query optimization, such
|
|
|
|
as <link linkend="ddl-partitioning-constraint-exclusion">constraint
|
2017-10-09 03:44:17 +02:00
|
|
|
exclusion</link>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-12-15 22:42:18 +01:00
|
|
|
2015-03-22 [cb1ca4d] Tom Lane: Allow foreign tables to participate in inherita..
|
2015-06-30 21:00:12 +02:00
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Allow foreign tables to participate in inheritance (Shigeru Hanada,
|
|
|
|
Etsuro Fujita)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
To let this work naturally, foreign tables are now allowed to have
|
|
|
|
check constraints marked as not valid, and to set storage
|
2017-10-09 03:44:17 +02:00
|
|
|
and <type>OID</type> characteristics, even though these operations are
|
2015-12-15 22:42:18 +01:00
|
|
|
effectively no-ops for a foreign table.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-01 [e7cb7ee] Robert..: Allow FDWs and custom scan providers to replace..
|
|
|
|
2015-05-10 [1a8a4e5] Tom Lane: Code review for foreign/custom join pushdown pa..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow foreign data wrappers and custom scans to implement join
|
|
|
|
pushdown (KaiGai Kohei)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2016-01-03 21:33:12 +01:00
|
|
|
<title><link linkend="event-triggers">Event Triggers</link></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-11 [b488c58] Alvaro..: Allow on-the-fly capture of DDL event details
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Whenever a <literal>ddl_command_end</literal> event trigger is installed,
|
|
|
|
capture details of <acronym>DDL</acronym> activity for it to inspect
|
2015-12-15 22:42:18 +01:00
|
|
|
(Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This information is available through a set-returning function <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands()</function></link>,
|
2015-12-15 22:42:18 +01:00
|
|
|
or by inspection of C data structures if that function doesn't
|
|
|
|
provide enough detail.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-08 [618c943] Simon ..: Event Trigger for table_rewrite
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow event triggers on table rewrites caused by <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-altertable"><command>ALTER TABLE</command></link> (Dimitri
|
2015-06-12 05:04:46 +02:00
|
|
|
Fontaine)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-23 [296f3a6] Alvaro..: Support more commands in event triggers
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add event trigger support for database-level <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-comment"><command>COMMENT</command></link>, <link
|
|
|
|
linkend="sql-security-label"><command>SECURITY LABEL</command></link>,
|
|
|
|
and <link linkend="sql-grant"><command>GRANT</command></link>/<link
|
|
|
|
linkend="sql-revoke"><command>REVOKE</command></link> (Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-30 [72dd233] Alvaro..: pg_event_trigger_dropped_objects: Add name/args..
|
|
|
|
2015-04-06 [e9a077c] Alvaro..: pg_event_trigger_dropped_objects: add is_temp c..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add columns to the output of <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pg-event-trigger-sql-drop-functions"><function>pg_event_trigger_dropped_objects</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows simpler processing of delete operations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Data Types</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-09 [57b1085] Peter ..: Allow empty content in xml type
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow the <link linkend="datatype-xml"><type>xml</type></link> data type
|
2015-12-15 22:42:18 +01:00
|
|
|
to accept empty or all-whitespace content values (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This is required by the <acronym>SQL</acronym>/<acronym>XML</acronym>
|
2015-06-11 06:08:55 +02:00
|
|
|
specification.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-21 [6f04368] Peter ..: Allow input format xxxx-xxxx-xxxx for macaddr ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="datatype-macaddr"><type>macaddr</type></link> input
|
|
|
|
using the format <literal>xxxx-xxxx-xxxx</literal> (Herwin Weststrate)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-18 [417f924] Bruce ..: interval: tighten precision specification
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Disallow non-SQL-standard syntax for <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="datatype-interval-input"><type>interval</type></link> with
|
2015-12-15 22:42:18 +01:00
|
|
|
both precision and field specifications (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Per the standard, such type specifications should be written as,
|
2017-10-09 03:44:17 +02:00
|
|
|
for example, <literal>INTERVAL MINUTE TO SECOND(2)</literal>.
|
|
|
|
<productname>PostgreSQL</productname> formerly allowed this to be written as
|
|
|
|
<literal>INTERVAL(2) MINUTE TO SECOND</literal>, but it must now be
|
2015-12-15 22:42:18 +01:00
|
|
|
written in the standard way.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-01 [89840d7] Tom Lane: Provide real selectivity estimators for inet/ci..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add selectivity estimators for <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="datatype-inet"><type>inet</type></link>/<link
|
|
|
|
linkend="datatype-cidr"><type>cidr</type></link> operators and improve
|
2015-06-12 05:04:46 +02:00
|
|
|
estimators for text search functions (Emre Hasegeli, Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-11-12 01:19:14 +01:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-05-09 [0c90f67] Andrew..: Add new OID alias type regrole
|
|
|
|
2015-05-09 [cb9fa80] Andrew..: Add new OID alias type regnamespace
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Add data
|
2017-10-09 03:44:17 +02:00
|
|
|
types <link linkend="datatype-oid-table"><type>regrole</type></link>
|
|
|
|
and <link linkend="datatype-oid-table"><type>regnamespace</type></link>
|
|
|
|
to simplify entering and pretty-printing the <type>OID</type> of a role
|
2015-12-15 22:42:18 +01:00
|
|
|
or namespace (Kyotaro Horiguchi)
|
2015-11-12 01:19:14 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
2017-10-09 03:44:17 +02:00
|
|
|
<title><link linkend="datatype-json"><acronym>JSON</acronym></link></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
|
|
|
|
2015-05-31 [37def42] Andrew..: Rename jsonb_replace to jsonb_set and allow it ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <type>jsonb</type> functions <link
|
|
|
|
linkend="functions-json-processing-table"><function>jsonb_set()</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-json-processing-table"><function>jsonb_pretty()</function></link>
|
2015-06-14 03:00:30 +02:00
|
|
|
(Dmitry Dolgov, Andrew Dunstan, Petr Jelínek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-12 [7e354ab] Andrew..: Add several generator functions for jsonb that ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <type>jsonb</type> generator functions <link
|
|
|
|
linkend="functions-json-creation-table"><function>to_jsonb()</function></link>,
|
2015-06-12 05:04:46 +02:00
|
|
|
<link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-json-creation-table"><function>jsonb_object()</function></link>,
|
2015-06-12 05:04:46 +02:00
|
|
|
<link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-json-creation-table"><function>jsonb_build_object()</function></link>,
|
2015-06-12 05:04:46 +02:00
|
|
|
<link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-json-creation-table"><function>jsonb_build_array()</function></link>,
|
2015-06-12 05:04:46 +02:00
|
|
|
<link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-aggregate-table"><function>jsonb_agg()</function></link>,
|
2015-06-12 05:04:46 +02:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-aggregate-table"><function>jsonb_object_agg()</function></link>
|
2015-12-15 22:42:18 +01:00
|
|
|
(Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Equivalent functions already existed for type <type>json</type>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-03 [b67f1ce] Tom Lane: Reduce json <=> jsonb casts from explicit-only..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Reduce casting requirements to/from <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="datatype-json"><type>json</type></link> and <link
|
|
|
|
linkend="datatype-json"><type>jsonb</type></link> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-06-11 [908e234] Andrew..: Rename jsonb - text[] operator to #- to avoid a..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <type>text</type>, <type>text</type> array, and <type>integer</type>
|
|
|
|
values to be <link linkend="functions-jsonb-op-table">subtracted</link>
|
|
|
|
from <type>jsonb</type> documents (Dmitry Dolgov, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <type>jsonb</type> <link
|
|
|
|
linkend="functions-jsonb-op-table"><literal>||</literal></link> operator
|
2015-06-12 05:04:46 +02:00
|
|
|
(Dmitry Dolgov, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-12 [237a882] Andrew..: Add json_strip_nulls and jsonb_strip_nulls fun..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-json-processing-table"><function>json_strip_nulls()</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-json-processing-table"><function>jsonb_strip_nulls()</function></link>
|
2015-12-15 22:42:18 +01:00
|
|
|
functions to remove JSON null values from documents
|
2015-06-12 05:04:46 +02:00
|
|
|
(Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Functions</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-11 [1871c89] Fujii ..: Add generate_series(numeric, numeric).
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="functions-srf"><function>generate_series()</function></link>
|
|
|
|
for <type>numeric</type> values (Plato Malugin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [bac2739] Tom Lane: Support arrays as input to array_agg() and ARRA..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-aggregate-table"><function>array_agg()</function></link> and
|
|
|
|
<function>ARRAY()</function> to take arrays as inputs (Ali Akbar, Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-18 [13dbc7a] Alvaro..: array_offset() and array_offsets()
|
|
|
|
2015-03-30 [97690ea] Alvaro..: Change array_offset to return subscripts, not o..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add functions <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="array-functions-table"><function>array_position()</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="array-functions-table"><function>array_positions()</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
to return subscripts of array values (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-15 [4520ba6] Heikki..: Add point <-> polygon distance operator.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add a <type>point</type>-to-<type>polygon</type> distance operator
|
|
|
|
<link linkend="functions-geometry-op-table"><-></link>
|
2016-01-03 21:33:12 +01:00
|
|
|
(Alexander Korotkov)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-27 [8167a38] Jeff D..: Allow multibyte characters as escape in SIMILA..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Allow multibyte characters as escapes in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-similarto-regexp"><literal>SIMILAR TO</literal></link>
|
|
|
|
and <link linkend="functions-string-sql"><literal>SUBSTRING</literal></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Jeff Davis)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, only a single-byte character was allowed as an escape.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-09 [e80252d] Tom Lane: Add width_bucket(anyelement, anyarray).
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add a <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-math-func-table"><function>width_bucket()</function></link>
|
2015-06-29 21:38:46 +02:00
|
|
|
variant that supports any sortable data type and non-uniform bucket
|
|
|
|
widths (Petr Jelínek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-08-03 18:29:10 +02:00
|
|
|
2015-06-28 [cb2acb1] Heikki..: Add missing_ok option to the SQL functions for..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add an optional <replaceable>missing_ok</replaceable> argument to <link
|
|
|
|
linkend="functions-admin-genfile-table"><function>pg_read_file()</function></link>
|
2015-08-03 18:29:10 +02:00
|
|
|
and related functions (Michael Paquier, Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2015-03-10 [865f14a] Robert..: Allow named parameters to be specified using =>..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="sql-syntax-calling-funcs"><literal>=></literal></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
to specify named parameters in function calls (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Previously only <literal>:=</literal> could be used. This requires removing
|
|
|
|
the possibility for <literal>=></literal> to be a user-defined operator.
|
|
|
|
Creation of user-defined <literal>=></literal> operators has been issuing
|
2015-09-11 03:22:21 +02:00
|
|
|
warnings since PostgreSQL 9.0.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-25 [06bf0dd] Tom Lane: Upgrade src/port/rint.c to be POSIX-compliant.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <acronym>POSIX</acronym>-compliant rounding for platforms that use
|
2015-09-11 03:22:21 +02:00
|
|
|
PostgreSQL-supplied rounding functions (Pedro Gimeno Fortea)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>System Information Functions and Views</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-23 [d7ee82e] Alvaro..: Add SQL-callable pg_get_object_address
|
|
|
|
2014-12-30 [a676201] Alvaro..: Add pg_identify_object_as_address
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add function <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-info-object-table"><function>pg_get_object_address()</function></link>
|
|
|
|
to return <type>OID</type>s that uniquely
|
2015-08-07 04:33:15 +02:00
|
|
|
identify an object, and function <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-info-object-table"><function>pg_identify_object_as_address()</function></link>
|
|
|
|
to return object information based on <type>OID</type>s (Álvaro
|
2015-06-12 05:04:46 +02:00
|
|
|
Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-19 [bf03889] Stephe..: GetUserId() changes to has_privs_of_role()
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Loosen security checks for viewing queries in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname></link>,
|
2015-06-29 21:38:46 +02:00
|
|
|
executing <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-admin-signal-table"><function>pg_cancel_backend()</function></link>,
|
2015-06-29 21:38:46 +02:00
|
|
|
and executing <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="functions-admin-signal-table"><function>pg_terminate_backend()</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-12-15 22:42:18 +01:00
|
|
|
Previously, only the specific role owning the target session could
|
|
|
|
perform these operations; now membership in that role is sufficient.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-19 [2fb7a75] Tom Lane: Add pg_stat_get_snapshot_timestamp() to show s..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_get_snapshot_timestamp()</function></link>
|
2015-09-11 03:22:21 +02:00
|
|
|
to output the time stamp of the statistics snapshot (Matt Kelly)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
This represents the last time the snapshot file was written to
|
2015-06-11 16:58:38 +02:00
|
|
|
the file system.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [36ad1a8] Bruce ..: Implement mxid_age() to compute multi-xid age
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="vacuum-for-multixact-wraparound"><function>mxid_age()</function></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
to compute multi-xid age (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Aggregates</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-28 [6c40f83] Tom Lane: Add min and max aggregates for inet/cidr data t..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <function>min()</function>/<function>max()</function> aggregates
|
|
|
|
for <link linkend="datatype-inet"><type>inet</type></link>/<link
|
|
|
|
linkend="datatype-cidr"><type>cidr</type></link> data types (Haribabu
|
2015-06-12 05:04:46 +02:00
|
|
|
Kommi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-20 [8122e14] Andres..: Add, optional, support for 128bit integers.
|
|
|
|
2015-03-20 [959277a] Andres..: Use 128-bit math to accelerate some aggregation..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Use 128-bit integers, where supported, as accumulators for some
|
|
|
|
aggregate functions (Andreas Karlsson)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server-Side Languages</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-03 [8b6010b] Tom Lane: Improve support for composite types in PL/Python.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Improve support for composite types in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="plpython"><application>PL/Python</application></link> (Ed Behn, Ronan
|
2015-06-12 05:04:46 +02:00
|
|
|
Dunklau)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This allows <application>PL/Python</application> functions to return arrays
|
2015-06-11 06:08:55 +02:00
|
|
|
of composite types.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [1ce7a57] Peter ..: PL/Python: Avoid lossiness in float conversion
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Reduce lossiness of <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="plpython"><application>PL/Python</application></link> floating-point value
|
2015-06-11 06:08:55 +02:00
|
|
|
conversions (Marko Kreen)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-26 [cac7658] Peter ..: Add transforms feature
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow specification of conversion routines between <acronym>SQL</acronym>
|
2015-06-29 21:38:46 +02:00
|
|
|
data types and data types of procedural languages (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This change adds new commands <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="sql-createtransform"><command>CREATE</command></link>/<link
|
|
|
|
linkend="sql-droptransform"><command>DROP TRANSFORM</command></link>.
|
2015-06-29 21:38:46 +02:00
|
|
|
This also adds optional transformations between the <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="hstore"><application>hstore</application></link> and <link
|
|
|
|
linkend="ltree"><application>ltree</application></link> types to/from <link
|
|
|
|
linkend="plperl"><application>PL/Perl</application></link> and <link
|
|
|
|
linkend="plpython"><application>PL/Python</application></link>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-14 [1dc5ebc] Tom Lane: Support "expanded" objects, particularly arrays..
|
|
|
|
2015-02-16 [e983c4d] Tom Lane: Rationalize the APIs of array element/slice acc..
|
|
|
|
2015-02-18 [56a79a8] Tom Lane: Split array_push into separate array_append and..
|
|
|
|
2015-02-16 [9e3ad1a] Tom Lane: Use fast path in plpgsql's RETURN/RETURN NEXT i..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <link linkend="plpgsql"><application>PL/pgSQL</application></link> array
|
2015-06-12 05:04:46 +02:00
|
|
|
performance (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-25 [a4847fc] Tom Lane: Add an ASSERT statement in plpgsql.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add an <link linkend="plpgsql-statements-assert"><command>ASSERT</command></link>
|
|
|
|
statement in <application>PL/pgSQL</application> (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [bb1b8f6] Tom Lane: De-reserve most statement-introducing keywords ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow more <link linkend="plpgsql"><application>PL/pgSQL</application></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
keywords to be used as identifiers (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Client Applications</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-11 [83aca89] Peter ..: Move pg_archivecleanup from contrib/ to src/bin/
|
|
|
|
2015-04-19 [00882d9] Peter ..: Move pg_test_fsync from contrib/ to src/bin/
|
|
|
|
2015-04-20 [528c2e4] Peter ..: Move pg_test_timing from contrib/ to src/bin/
|
|
|
|
2015-04-21 [b0a738f] Peter ..: Move pg_xlogdump from contrib/ to src/bin/
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Move <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pgarchivecleanup"><application>pg_archivecleanup</application></link>,
|
|
|
|
<link linkend="pgtestfsync"><application>pg_test_fsync</application></link>,
|
|
|
|
<link linkend="pgtesttiming"><application>pg_test_timing</application></link>,
|
|
|
|
and <link linkend="pgwaldump"><application>pg_xlogdump</application></link>
|
|
|
|
from <filename>contrib</filename> to <filename>src/bin</filename> (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
2015-11-12 01:19:14 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This should result in these programs being installed by default in
|
|
|
|
most installations.
|
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
2015-06-29 21:38:46 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-23 [61081e7] Heikki..: Add pg_rewind, for re-synchronizing a master se..
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="app-pgrewind"><application>pg_rewind</application></link>,
|
2015-06-29 21:38:46 +02:00
|
|
|
which allows re-synchronizing a master server after failback
|
|
|
|
(Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-06 [d9f38c7] Andres..: Add support for managing physical replication s..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="app-pgreceivewal"><application>pg_receivexlog</application></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
to manage physical replication slots (Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This is controlled via new <option>--create-slot</option> and
|
|
|
|
<option>--drop-slot</option> options.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-18 [c4f99d2] Fujii ..: Add ––synchronous option to pg_receivexlog, for..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-11-12 01:19:14 +01:00
|
|
|
Allow <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="app-pgreceivewal"><application>pg_receivexlog</application></link>
|
|
|
|
to synchronously flush <acronym>WAL</acronym> to storage using new
|
|
|
|
<option>--synchronous</option> option (Furuya Osamu, Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Without this, <acronym>WAL</acronym> files are fsync'ed only on close.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-23 [a179232] Alvaro..: vacuumdb: enable parallel mode
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Allow <link linkend="app-vacuumdb"><application>vacuumdb</application></link> to
|
2017-10-09 03:44:17 +02:00
|
|
|
vacuum in parallel using new <option>--jobs</option> option (Dilip Kumar)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-12-15 22:42:18 +01:00
|
|
|
2015-11-12 [5094da9] Alvaro..: vacuumdb: don't prompt for passwords over and ..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
In <link linkend="app-vacuumdb"><application>vacuumdb</application></link>, do not
|
2015-12-15 22:42:18 +01:00
|
|
|
prompt for the same password repeatedly when multiple connections
|
|
|
|
are necessary (Haribabu Kommi, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2015-05-15 [458a077] Fujii ..: Support ––verbose option in reindexdb.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <option>--verbose</option> option to <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="app-reindexdb"><application>reindexdb</application></link> (Sawada
|
2015-06-12 05:04:46 +02:00
|
|
|
Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [72d422a] Andrew..: Map basebackup tablespaces using a tablespace_..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <link linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
|
|
use a tablespace mapping file when using <application>tar</application> format,
|
2015-06-29 21:38:46 +02:00
|
|
|
to support symbolic links and file paths of 100+ characters in length
|
2017-10-09 03:44:17 +02:00
|
|
|
on <systemitem class="osname">MS Windows</systemitem> (Amit Kapila)
|
2015-06-29 21:38:46 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-19 [728f152] Andres..: Add rmgr callback to name xlog record types for..
|
|
|
|
2014-09-19 [bdd5726] Andres..: Add the capability to display summary statistic..
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="pgwaldump"><application>pg_xlogdump</application></link> option
|
|
|
|
<option>--stats</option> to display summary statistics (Abhijit Menon-Sen)
|
2015-06-11 16:51:18 +02:00
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
2017-10-20 03:16:39 +02:00
|
|
|
<title><xref linkend="app-psql"></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-31 [9d9991c] Bruce ..: psql: add asciidoc output format
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <application>psql</application> to produce AsciiDoc output (Szymon Guz)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-10 [5b214c5] Fujii ..: Add new ECHO mode 'errors' that displays only ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add an <literal>errors</literal> mode that displays only failed commands
|
|
|
|
to <application>psql</application>'s <varname>ECHO</varname> variable
|
2015-06-11 06:08:55 +02:00
|
|
|
(Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This behavior can also be selected with <application>psql</application>'s
|
|
|
|
<option>-b</option> option.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-11-03 17:49:21 +01:00
|
|
|
Provide separate column, header, and border linestyle control
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>psql</application>'s unicode linestyle (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-11-03 17:49:21 +01:00
|
|
|
Single or double lines are supported; the default is
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>single</literal>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-02 [51bb795] Andres..: Add psql PROMPT variable showing which line of ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add new option <literal>%l</literal> in <application>psql</application>'s <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="app-psql-variables"><envar>PROMPT</envar></link> variables
|
2015-11-12 01:19:14 +01:00
|
|
|
to display the current multiline statement line number
|
2015-06-11 06:08:55 +02:00
|
|
|
(Sawada Masahiko)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-28 [7655f4c] Andrew..: Add a pager_min_lines setting to psql
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <literal>\pset</literal> option <link
|
2017-10-20 03:16:39 +02:00
|
|
|
linkend="app-psql-meta-commands"><varname>pager_min_lines</varname></link>
|
2015-06-29 21:38:46 +02:00
|
|
|
to control pager invocation (Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-21 [4077fb4] Andrew..: Fix an error in psql that overcounted output l..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <application>psql</application> line counting used when deciding
|
2015-06-11 06:08:55 +02:00
|
|
|
to invoke the pager (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-12-15 22:42:18 +01:00
|
|
|
2015-12-03 [07338cb] Tom Lane: Clean up some psql issues around handling of t..
|
|
|
|
2015-12-08 [e90371d] Tom Lane: Make failure to open psql log-file fatal.
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<application>psql</application> now fails if the file specified by
|
|
|
|
an <option>--output</option> or <option>--log-file</option> switch cannot be
|
2016-05-06 22:20:56 +02:00
|
|
|
written (Tom Lane, Daniel Vérité)
|
2015-12-15 22:42:18 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, it effectively ignored the switch in such cases.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-07-12 [bd40951] Andres..: Minimal psql tab completion support for SET se..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <application>psql</application> tab completion when setting the
|
2015-06-29 21:38:46 +02:00
|
|
|
<xref linkend="guc-search-path"> variable (Jeff Janes)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Currently only the first schema can be tab-completed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-23 [631e7f6] Heikki..: Improve tab-completion of DROP and ALTER ENABLE..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <application>psql</application>'s tab completion for triggers and rules
|
2015-06-11 06:08:55 +02:00
|
|
|
(Andreas Karlsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect5>
|
2017-10-20 03:16:39 +02:00
|
|
|
<title><link linkend="app-psql-meta-commands">Backslash Commands</link></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [07c8651] Andres..: Add new psql help topics, accessible to both..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <application>psql</application> <command>\?</command> help sections
|
|
|
|
<literal>variables</literal> and <literal>options</literal> (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>\? variables</literal> shows <application>psql</application>'s special
|
|
|
|
variables and <literal>\? options</literal> shows the command-line options.
|
|
|
|
<command>\? commands</command> shows the meta-commands, which is the
|
2015-12-15 22:42:18 +01:00
|
|
|
traditional output and remains the default. These help displays
|
|
|
|
can also be obtained with the command-line
|
2017-10-09 03:44:17 +02:00
|
|
|
option <literal>--help=<replaceable>section</replaceable></literal>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-14 [ee80f04] Alvaro..: psql: Show tablespace size in \db+
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Show tablespace size in <application>psql</application>'s <literal>\db+</literal>
|
2015-06-11 06:08:55 +02:00
|
|
|
(Fabrízio de Royes Mello)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-09 [a6f3c1f] Magnus..: Show owner of types in psql \dT+
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Show data type owners in <application>psql</application>'s <literal>\dT+</literal>
|
2015-06-11 06:08:55 +02:00
|
|
|
(Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-04 [f6f654f] Fujii ..: Allow \watch to display query execution time if..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <application>psql</application>'s <command>\watch</command> to output
|
|
|
|
<command>\timing</command> information (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Also prevent <option>--echo-hidden</option> from echoing
|
|
|
|
<command>\watch</command> queries, since that is generally unwanted.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-22 [eca2b9b] Andrew..: Rework echo_hidden for \sf and \ef from commit ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>psql</application>'s <literal>\sf</literal> and <literal>\ef</literal>
|
|
|
|
commands honor <envar>ECHO_HIDDEN</envar> (Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-12 [e15c4ab] Fujii ..: Add tab-completion for \unset and valid setting..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <application>psql</application> tab completion for <command>\set</command>,
|
|
|
|
<command>\unset</command>, and <literal>:variable</literal> names (Pavel
|
2015-06-11 06:08:55 +02:00
|
|
|
Stehule)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-10 [095d401] Robert..: Tab complete second argument to \c with role n..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow tab completion of role names
|
2017-10-09 03:44:17 +02:00
|
|
|
in <application>psql</application> <literal>\c</literal> commands (Ian Barwick)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect5>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2017-10-20 03:16:39 +02:00
|
|
|
<title><xref linkend="app-pgdump"></title>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-17 [be1cc8f] Simon ..: Add pg_dump ––snapshot option
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <application>pg_dump</application> to share a snapshot taken by another
|
|
|
|
session using <option>--snapshot</option> (Simon Riggs, Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The remote snapshot must have been exported by
|
2017-10-09 03:44:17 +02:00
|
|
|
<function>pg_export_snapshot()</function> or logical replication slot
|
2015-11-12 01:19:14 +01:00
|
|
|
creation. This can be used to share a consistent snapshot
|
2017-10-09 03:44:17 +02:00
|
|
|
across multiple <application>pg_dump</application> processes.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-12-15 22:42:18 +01:00
|
|
|
2015-11-21 [5f5e68b] Tom Lane: Adopt the GNU convention for handling tar-arch..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Support table sizes exceeding 8GB in tar archive format (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The POSIX standard for tar format does not allow elements of a tar
|
|
|
|
archive to exceed 8GB, but most modern implementations of tar
|
|
|
|
support an extension that does allow it. Use the extension format
|
|
|
|
when necessary, rather than failing.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-07-07 [7700597] Tom Lane: In pg_dump, show server and pg_dump versions w..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Make <application>pg_dump</application> always print the server and
|
|
|
|
<application>pg_dump</application> versions (Jing Wang)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, version information was only printed in
|
2017-10-09 03:44:17 +02:00
|
|
|
<option>--verbose</option> mode.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-08-03 18:29:10 +02:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-06-04 [232cd63] Fujii ..: Remove -i/-ignore-version option from pg_dump..
|
|
|
|
-->
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Remove the long-ignored <option>-i</option>/<option>--ignore-version</option>
|
|
|
|
option from <application>pg_dump</application>, <application>pg_dumpall</application>,
|
|
|
|
and <application>pg_restore</application> (Fujii Masao)
|
2015-08-03 18:29:10 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="app-pg-ctl"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O opti..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Support multiple <application>pg_ctl</application> <option>-o</option> options,
|
2015-12-15 22:42:18 +01:00
|
|
|
concatenating their values (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-17 [c0e4520] Magnus..: Add option to pg_ctl to choose event source for..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow control of <application>pg_ctl</application>'s event source logging
|
|
|
|
on <systemitem class="osname">MS Windows</systemitem> (MauMau)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This only controls <application>pg_ctl</application>, not the server, which
|
|
|
|
has separate settings in <filename>postgresql.conf</filename>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-12-15 22:42:18 +01:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-11-08 [bdb42ba] Noah M..: Don't connect() to a wildcard address in test_..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
If the server's listen address is set to a wildcard value
|
2017-10-09 03:44:17 +02:00
|
|
|
(<literal>0.0.0.0</literal> in IPv4 or <literal>::</literal> in IPv6), connect via
|
2015-12-15 22:42:18 +01:00
|
|
|
the loopback address rather than trying to use the wildcard address
|
|
|
|
literally (Kondo Yuta)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This fix primarily affects Windows, since on other platforms
|
2017-10-09 03:44:17 +02:00
|
|
|
<application>pg_ctl</application> will prefer to use a Unix-domain socket.
|
2015-12-15 22:42:18 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="pgupgrade"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-14 [9fa8b0e] Peter ..: Move pg_upgrade from contrib/ to src/bin/
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Move <application>pg_upgrade</application> from <filename>contrib</filename> to
|
|
|
|
<filename>src/bin</filename> (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
2015-06-26 20:20:29 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
In connection with this change, the functionality previously
|
2017-10-09 03:44:17 +02:00
|
|
|
provided by the <application>pg_upgrade_support</application> module has been
|
2015-06-26 20:20:29 +02:00
|
|
|
moved into the core server.
|
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O optio..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Support multiple <application>pg_upgrade</application>
|
|
|
|
<option>-o</option>/<option>-O</option> options,
|
2015-12-15 22:42:18 +01:00
|
|
|
concatenating their values (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-10 [33755e8] Heikki..: Change the way encoding and locale checks are d..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Improve database collation comparisons in
|
2017-10-09 03:44:17 +02:00
|
|
|
<application>pg_upgrade</application> (Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-25 [2209b39] Bruce ..: pg_upgrade: remove support for 8.3 old clusters
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-14 03:07:24 +02:00
|
|
|
Remove support for upgrading from 8.3 clusters (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
2015-06-29 21:38:46 +02:00
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="pgbench"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-13 [81134af] Peter ..: Move pgbench from contrib/ to src/bin/
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Move pgbench from <filename>contrib</filename> to <filename>src/bin</filename>
|
2015-06-29 21:38:46 +02:00
|
|
|
(Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-10-04 04:27:02 +02:00
|
|
|
2015-09-30 [3c4c5ac] Tatsuo..: Fix incorrect tps number calculation in "exclu..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Fix calculation of TPS number <quote>excluding connections
|
2017-10-09 03:44:17 +02:00
|
|
|
establishing</quote> (Tatsuo Ishii, Fabien Coelho)
|
2015-10-04 04:27:02 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The overhead for connection establishment was miscalculated whenever
|
|
|
|
the number of pgbench threads was less than the number of client
|
|
|
|
connections. Although this is clearly a bug, we won't back-patch it
|
|
|
|
into pre-9.5 branches since it makes TPS numbers not comparable to
|
|
|
|
previous results.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-10-13 [98aed6c] Heikki..: Add ––latency-limit option to pgbench.
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
|
|
|
Allow counting of pgbench transactions that take over a specified
|
|
|
|
amount of time (Fabien Coelho)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This is controlled by a new <option>--latency-limit</option> option.
|
2015-06-29 21:38:46 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-30 [ed802e7] Robert..: pgbench: Allow \setrandom to generate Gaussian..
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
|
|
|
Allow pgbench to generate Gaussian/exponential distributions
|
2017-10-09 03:44:17 +02:00
|
|
|
using <command>\setrandom</command> (Kondo Mitsumasa, Fabien Coelho)
|
2015-06-29 21:38:46 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-02 [878fdcb] Robert..: pgbench: Add a real expression syntax to \set
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <application>pgbench</application>'s <command>\set</command> command to handle
|
2015-12-15 22:42:18 +01:00
|
|
|
arithmetic expressions containing more than one operator, and add
|
2017-10-09 03:44:17 +02:00
|
|
|
<literal>%</literal> (modulo) to the set of operators it supports
|
2015-12-15 22:42:18 +01:00
|
|
|
(Robert Haas, Fabien Coelho)
|
2015-06-29 21:38:46 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Source Code</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-20 [2c03216] Heikki..: Revamp the WAL record format.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Simplify <link linkend="wal"><acronym>WAL</acronym></link> record format
|
2015-06-12 05:04:46 +02:00
|
|
|
(Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-11 17:11:43 +02:00
|
|
|
This allows external tools to more easily track what blocks
|
|
|
|
are modified.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-11-12 01:19:14 +01:00
|
|
|
2015-03-15 [4f1b890] Andres..: Merge the various forms of transaction commit &..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Improve the representation of transaction commit and abort WAL
|
|
|
|
records (Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-09-25 [b64d92f] Andres..: Add a basic atomic ops API abstracting away pla..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add atomic memory operations <acronym>API</acronym> (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-07 [0b03e59] Robert..: Introduce custom path and scan providers.
|
|
|
|
2014-11-20 [a34fa8e] Tom Lane: Initial code review for CustomScan patch.
|
|
|
|
2014-11-21 [c2ea228] Tom Lane: Simplify API for initially hooking custom-path ..
|
|
|
|
2014-11-21 [4477704] Tom Lane: Rearrange CustomScan API.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow custom path and scan methods (KaiGai Kohei, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows extensions greater control over the optimizer and
|
|
|
|
executor.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [afb9249] Tom Lane: Add support for doing late row locking in FDWs.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow foreign data wrappers to do post-filter locking (Etsuro
|
|
|
|
Fujita)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-13 04:16:08 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-08-07 03:08:08 +02:00
|
|
|
2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI..
|
|
|
|
2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Foreign tables can now take part in <command>INSERT ... ON CONFLICT
|
2017-10-09 03:44:17 +02:00
|
|
|
DO NOTHING</command> queries (Peter Geoghegan, Heikki Linnakangas,
|
2015-08-07 03:08:08 +02:00
|
|
|
Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Foreign data wrappers must be modified to handle this.
|
2017-10-09 03:44:17 +02:00
|
|
|
<command>INSERT ... ON CONFLICT DO UPDATE</command> is not supported on
|
2015-08-07 03:08:08 +02:00
|
|
|
foreign tables.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
2015-06-30 21:00:12 +02:00
|
|
|
2014-12-18 [4a14f13] Tom Lane: Improve hash_create's API for selecting simple-..
|
|
|
|
-->
|
2015-06-13 04:16:08 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Improve <function>hash_create()</function>'s API for selecting
|
2015-06-29 21:38:46 +02:00
|
|
|
simple-binary-key hash functions (Teodor Sigaev, Tom Lane)
|
2015-06-13 04:16:08 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-30 [924bcf4] Robert..: Create an infrastructure for parallel computati..
|
|
|
|
2014-10-31 [2bd9e41] Robert..: Support frontend-backend protocol communication..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Improve parallel execution infrastructure (Robert Haas, Amit
|
|
|
|
Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-28 [a6d488c] Andres..: Remove Alpha and Tru64 support.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Remove <productname>Alpha</productname> (<acronym>CPU</acronym>) and <systemitem
|
|
|
|
class="osname">Tru64</systemitem> (OS) ports (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-06 [4893ccd] Robert..: Remove swpb-based spinlock implementation for A..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Remove swap-byte-based spinlock implementation for
|
2017-10-09 03:44:17 +02:00
|
|
|
<acronym>ARM</acronym>v5 and earlier <acronym>CPU</acronym>s (Robert Haas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
<acronym>ARM</acronym>v5's weak memory ordering made this locking
|
2015-06-11 06:08:55 +02:00
|
|
|
implementation unsafe. Spinlock support is still possible on
|
|
|
|
newer gcc implementations with atomics support.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-24 [23a7835] Peter ..: Error when creating names too long for tar for..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Generate an error when excessively long (100+ character) file
|
|
|
|
paths are written to tar files (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Tar does not support such overly-long paths.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-19 [0b28ea7] Tom Lane: Avoid collation dependence in indexes of syste..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-09-11 03:22:21 +02:00
|
|
|
Change index operator class for columns <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="catalog-pg-seclabel"><structname>pg_seclabel</structname></link>.<structname>provider</structname>
|
2015-06-12 05:04:46 +02:00
|
|
|
and <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="catalog-pg-shseclabel"><structname>pg_shseclabel</structname></link>.<structname>provider</structname>
|
|
|
|
to be <literal>text_pattern_ops</literal> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This avoids possible problems with these indexes when different
|
|
|
|
databases of a cluster have different default collations.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-30 21:00:12 +02:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-09-09 [0709b7e] Robert..: Change the spinlock primitives to function as c..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Change the spinlock primitives to function as compiler barriers
|
|
|
|
(Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>MS Windows</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-08 [519b075] Simon ..: Use GetSystemTimeAsFileTime directly in win32
|
|
|
|
2014-12-08 [8001fe6] Simon ..: Windows: use GetSystemTimePreciseAsFileTime if ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-09-11 03:22:21 +02:00
|
|
|
Allow higher-precision time stamp resolution on <systemitem
|
2017-10-09 03:44:17 +02:00
|
|
|
class="osname">Windows 8</systemitem>, <systemitem class="osname">Windows
|
|
|
|
Server 2012</systemitem>, and later Windows systems (Craig Ringer)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-18 [f9dead5] Alvaro..: Install shared libraries to bin/ in Windows un..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Install shared libraries to <filename>bin</filename> in <systemitem
|
|
|
|
class="osname">MS Windows</systemitem> (Peter Eisentraut, Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-16 [22d0053] Alvaro..: MSVC: install src/test/modules together with c..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Install <filename>src/test/modules</filename> together with
|
|
|
|
<filename>contrib</filename> on <productname>MSVC</productname> builds (Michael
|
2015-06-11 06:08:55 +02:00
|
|
|
Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-12 [8d9a0e8] Magnus..: Support ––with-extra-version equivalent functi..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="install-procedure">configure</link>'s
|
|
|
|
<option>--with-extra-version</option> option to be honored by the
|
|
|
|
<productname>MSVC</productname> build (Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-14 [91f03ba] Noah M..: MSVC: Recognize PGFILEDESC in contrib and conv..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Pass <envar>PGFILEDESC</envar> into <productname>MSVC</productname> contrib builds
|
2015-06-11 06:08:55 +02:00
|
|
|
(Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-14 [c4a448e] Noah M..: MSVC: Apply icons to all binaries having them ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add icons to all <productname>MSVC</productname>-built binaries and version
|
|
|
|
information to all <systemitem class="osname">MS Windows</systemitem>
|
2015-06-11 17:11:43 +02:00
|
|
|
binaries (Noah Misch)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
MinGW already had such icons.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [311da16] Andres..: Add support for optional_argument to our own ge..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Add optional-argument support to the internal
|
2017-10-09 03:44:17 +02:00
|
|
|
<function>getopt_long()</function> implementation (Michael Paquier,
|
2015-06-11 06:08:55 +02:00
|
|
|
Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
This is used by the <productname>MSVC</productname> build.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Additional Modules</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-27 [717f709] Andrew..: Add stats for min, max, mean, stddev times to p..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add statistics for minimum, maximum,
|
|
|
|
mean, and standard deviation times to <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pgstatstatements-columns"><application>pg_stat_statements</application></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Mitsumasa Kondo, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-01 [32984d8] Heikki..: Add functions for dealing with PGP armor heade..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <link linkend="pgcrypto"><application>pgcrypto</application></link> function
|
|
|
|
<function>pgp_armor_headers()</function> to extract <productname>PGP</productname>
|
2015-06-11 06:08:55 +02:00
|
|
|
armor headers (Marko Tiikkaja, Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-30 [97c40ce] Tom Lane: Allow empty replacement strings in contrib/unac..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow empty replacement strings in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="unaccent"><application>unaccent</application></link> (Mohammad Alhashash)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is useful in languages where diacritic signs are represented
|
|
|
|
as separate characters.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-30 [1b24887] Tom Lane: Allow multi-character source strings in contrib..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-09-11 03:22:21 +02:00
|
|
|
Allow multicharacter source strings in <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="unaccent"><application>unaccent</application></link> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This could be useful in languages where diacritic signs are
|
|
|
|
represented as separate characters. It also allows more complex
|
|
|
|
unaccent dictionaries.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [9689290] Simon ..: TABLESAMPLE system_rows(limit)
|
|
|
|
2015-05-15 [149f6f1] Simon ..: TABLESAMPLE system_time(limit)
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Add <filename>contrib</filename> modules <link
|
|
|
|
linkend="tsm-system-rows"><application>tsm_system_rows</application></link> and
|
|
|
|
<link linkend="tsm-system-time"><application>tsm_system_time</application></link>
|
2015-06-14 03:00:30 +02:00
|
|
|
to allow additional table sampling methods (Petr Jelínek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-21 [3a82bc6] Heikki..: Add pageinspect functions for inspecting GIN in..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-20 03:16:39 +02:00
|
|
|
Add <link linkend="gin"><acronym>GIN</acronym></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
index inspection functions to <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pageinspect"><application>pageinspect</application></link> (Heikki
|
2015-06-12 05:04:46 +02:00
|
|
|
Linnakangas, Peter Geoghegan, Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 17:13:49 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-22 [f577919] Andres..: Add pinning_backends column to the pg_buffercac..
|
|
|
|
-->
|
2015-06-11 17:13:49 +02:00
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add information about buffer pins to <link
|
2017-10-09 03:44:17 +02:00
|
|
|
linkend="pgbuffercache"><application>pg_buffercache</application></link> display
|
2015-06-12 05:04:46 +02:00
|
|
|
(Andres Freund)
|
2015-06-11 17:13:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-13 [5850b20] Andres..: Add pgstattuple_approx() to the pgstattuple ext..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Allow <link linkend="pgstattuple"><application>pgstattuple</application></link>
|
2015-06-12 05:04:46 +02:00
|
|
|
to report approximate answers with less overhead using
|
2017-10-09 03:44:17 +02:00
|
|
|
<function>pgstattuple_approx()</function> (Abhijit Menon-Sen)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-29 [22dfd11] Alvaro..: Move test modules from contrib to src/test/modu..
|
|
|
|
2014-12-01 [df761e3] Alvaro..: Move security_label test
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2017-10-09 03:44:17 +02:00
|
|
|
Move <application>dummy_seclabel</application>, <application>test_shm_mq</application>,
|
|
|
|
<application>test_parser</application>, and <application>worker_spi</application>
|
|
|
|
from <filename>contrib</filename> to <filename>src/test/modules</filename>
|
2015-06-11 06:08:55 +02:00
|
|
|
(Álvaro Herrera)
|
|
|
|
</para>
|
2015-06-29 21:38:46 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
These modules are only meant for server testing, so they do not need
|
2017-10-09 03:44:17 +02:00
|
|
|
to be built or installed when packaging <productname>PostgreSQL</productname>.
|
2015-06-29 21:38:46 +02:00
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
</sect1>
|