8985 lines
286 KiB
Plaintext
8985 lines
286 KiB
Plaintext
<!-- doc/src/sgml/release-9.5.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<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>
|
|
However, if you use BRIN indexes, see the first changelog entry below.
|
|
</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>
|
|
|
|
<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>
|
|
|
|
<listitem>
|
|
<para>
|
|
Sync our copy of the timezone library with IANA release tzcode2017c
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes various issues; the only one likely to be user-visible
|
|
is that the default DST rules for a POSIX-style zone name, if
|
|
no <filename>posixrules</filename> file exists in the timezone data
|
|
directory, now match current US law rather than what it was a dozen
|
|
years ago.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application>
|
|
release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
|
|
Sudan, Tonga, and Turks & Caicos Islands, plus historical
|
|
corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland,
|
|
Namibia, and Pago Pago.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-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
|
|
in <structname>information_schema</structname>.<structname>table_privileges</structname>
|
|
view (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
All other relevant <structname>information_schema</structname> views include
|
|
foreign tables, but this one ignored them.
|
|
</para>
|
|
|
|
<para>
|
|
Since this view definition is installed by <application>initdb</application>,
|
|
merely upgrading will not fix the problem. If you need to fix this
|
|
in an existing installation, you can, as a superuser, do this
|
|
in <application>psql</application>:
|
|
<programlisting>
|
|
SET search_path TO information_schema;
|
|
CREATE OR REPLACE VIEW table_privileges AS
|
|
SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,
|
|
CAST(grantee.rolname AS sql_identifier) AS grantee,
|
|
CAST(current_database() AS sql_identifier) AS table_catalog,
|
|
CAST(nc.nspname AS sql_identifier) AS table_schema,
|
|
CAST(c.relname AS sql_identifier) AS table_name,
|
|
CAST(c.prtype AS character_data) AS privilege_type,
|
|
CAST(
|
|
CASE WHEN
|
|
-- object owner always has grant options
|
|
pg_has_role(grantee.oid, c.relowner, 'USAGE')
|
|
OR c.grantable
|
|
THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
|
|
CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
|
|
|
|
FROM (
|
|
SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class
|
|
) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),
|
|
pg_namespace nc,
|
|
pg_authid u_grantor,
|
|
(
|
|
SELECT oid, rolname FROM pg_authid
|
|
UNION ALL
|
|
SELECT 0::oid, 'PUBLIC'
|
|
) AS grantee (oid, rolname)
|
|
|
|
WHERE c.relnamespace = nc.oid
|
|
AND c.relkind IN ('r', 'v', 'f')
|
|
AND c.grantee = grantee.oid
|
|
AND c.grantor = u_grantor.oid
|
|
AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
|
|
AND (pg_has_role(u_grantor.oid, 'USAGE')
|
|
OR pg_has_role(grantee.oid, 'USAGE')
|
|
OR grantee.rolname = 'PUBLIC');
|
|
</programlisting>
|
|
This must be repeated in each database to be fixed,
|
|
including <literal>template0</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Clean up handling of a fatal exit (e.g., due to receipt
|
|
of <systemitem>SIGTERM</systemitem>) that occurs while trying to execute
|
|
a <command>ROLLBACK</command> of a failed transaction (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This situation could result in an assertion failure. In production
|
|
builds, the exit would still occur, but it would log an unexpected
|
|
message about <quote>cannot drop active portal</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove assertion that could trigger during a fatal exit (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Correctly identify columns that are of a range type or domain type over
|
|
a composite type or domain type being searched for (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Certain <command>ALTER</command> commands that change the definition of a
|
|
composite type or domain type are supposed to fail if there are any
|
|
stored values of that type in the database, because they lack the
|
|
infrastructure needed to update or check such values. Previously,
|
|
these checks could miss relevant values that are wrapped inside range
|
|
types or sub-domains, possibly allowing the database to become
|
|
inconsistent.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash in <application>pg_restore</application> when using parallel mode and
|
|
using a list file to select a subset of items to restore
|
|
(Fabrízio de Royes Mello)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <application>ecpg</application>'s parser to allow <literal>RETURNING</literal>
|
|
clauses without attached C variables (Michael Meskes)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <application>ecpg</application> programs to contain SQL constructs
|
|
that use <literal>RETURNING</literal> internally (for example, inside a CTE)
|
|
rather than using it to define values to be returned to the client.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve selection of compiler flags for PL/Perl on Windows (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fix avoids possible crashes of PL/Perl due to inconsistent
|
|
assumptions about the width of <type>time_t</type> values.
|
|
A side-effect that may be visible to extension developers is
|
|
that <literal>_USE_32BIT_TIME_T</literal> is no longer defined globally
|
|
in <productname>PostgreSQL</productname> Windows builds. This is not expected
|
|
to cause problems, because type <type>time_t</type> is not used
|
|
in any <productname>PostgreSQL</productname> API definitions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <literal>make check</literal> to behave correctly when invoked via a
|
|
non-GNU make program (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<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>
|
|
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,
|
|
see <xref linkend="release-9-5-7">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Further restrict visibility
|
|
of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to
|
|
protect passwords stored as user mapping options
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
The fix for CVE-2017-7486 was incorrect: it allowed a user
|
|
to see the options in her own user mapping, even if she did not
|
|
have <literal>USAGE</literal> permission on the associated foreign server.
|
|
Such options might include a password that had been provided by the
|
|
server owner rather than the user herself.
|
|
Since <structname>information_schema.user_mapping_options</structname> does not
|
|
show the options in such cases, <structname>pg_user_mappings</structname>
|
|
should not either.
|
|
(CVE-2017-7547)
|
|
</para>
|
|
|
|
<para>
|
|
By itself, this patch will only fix the behavior in newly initdb'd
|
|
databases. If you wish to apply this change in an existing database,
|
|
you will need to do the following:
|
|
</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>
|
|
Restart the postmaster after adding <literal>allow_system_table_mods
|
|
= true</literal> to <filename>postgresql.conf</filename>. (In versions
|
|
supporting <command>ALTER SYSTEM</command>, you can use that to make the
|
|
configuration change, but you'll still need a restart.)
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
In <emphasis>each</emphasis> database of the cluster,
|
|
run the following commands as superuser:
|
|
<programlisting>
|
|
SET search_path = pg_catalog;
|
|
CREATE OR REPLACE VIEW pg_user_mappings AS
|
|
SELECT
|
|
U.oid AS umid,
|
|
S.oid AS srvid,
|
|
S.srvname AS srvname,
|
|
U.umuser AS umuser,
|
|
CASE WHEN U.umuser = 0 THEN
|
|
'public'
|
|
ELSE
|
|
A.rolname
|
|
END AS usename,
|
|
CASE WHEN (U.umuser <> 0 AND A.rolname = current_user
|
|
AND (pg_has_role(S.srvowner, 'USAGE')
|
|
OR has_server_privilege(S.oid, 'USAGE')))
|
|
OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))
|
|
OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
|
|
THEN U.umoptions
|
|
ELSE NULL END AS umoptions
|
|
FROM pg_user_mapping U
|
|
LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
|
|
pg_foreign_server S ON (U.umserver = S.oid);
|
|
</programlisting>
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
Do not forget to include the <literal>template0</literal>
|
|
and <literal>template1</literal> databases, or the vulnerability will still
|
|
exist in databases you create later. To fix <literal>template0</literal>,
|
|
you'll need to temporarily make it accept connections.
|
|
In <productname>PostgreSQL</productname> 9.5 and later, you can use
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
|
|
</programlisting>
|
|
and then after fixing <literal>template0</literal>, undo that with
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
|
|
</programlisting>
|
|
In prior versions, instead use
|
|
<programlisting>
|
|
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
|
|
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
|
|
</programlisting>
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
Finally, remove the <literal>allow_system_table_mods</literal> configuration
|
|
setting, and again restart the postmaster.
|
|
</para>
|
|
</step>
|
|
</procedure>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow empty passwords in all password-based authentication methods
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
<application>libpq</application> ignores empty password specifications, and does
|
|
not transmit them to the server. So, if a user's password has been
|
|
set to the empty string, it's impossible to log in with that password
|
|
via <application>psql</application> or other <application>libpq</application>-based
|
|
clients. An administrator might therefore believe that setting the
|
|
password to empty is equivalent to disabling password login.
|
|
However, with a modified or non-<application>libpq</application>-based client,
|
|
logging in could be possible, depending on which authentication
|
|
method is configured. In particular the most common
|
|
method, <literal>md5</literal>, accepted empty passwords.
|
|
Change the server to reject empty passwords in all cases.
|
|
(CVE-2017-7546)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <function>lo_put()</function> check for <literal>UPDATE</literal> privilege on
|
|
the target large object (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
<function>lo_put()</function> should surely require the same permissions
|
|
as <function>lowrite()</function>, but the check was missing, allowing any
|
|
user to change the data in a large object.
|
|
(CVE-2017-7548)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Correct the documentation about the process for upgrading standby
|
|
servers with <application>pg_upgrade</application> (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
The previous documentation instructed users to start/stop the primary
|
|
server after running <application>pg_upgrade</application> but before syncing
|
|
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
|
|
promoted just after it processes an <literal>XLOG_SWITCH</literal> WAL
|
|
record (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>walsender</application> to exit promptly when client requests
|
|
shutdown (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <systemitem>SIGHUP</systemitem> and <systemitem>SIGUSR1</systemitem> handling in
|
|
walsender processes (Petr Jelinek, Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent walsender-triggered panics during shutdown checkpoints
|
|
(Andres Freund, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix unnecessarily slow restarts of <application>walreceiver</application>
|
|
processes due to race condition in postmaster (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix leakage of small subtransactions spilled to disk during logical
|
|
decoding (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This resulted in temporary files consuming excessive disk space.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce the work needed to build snapshots during creation of
|
|
logical-decoding slots (Andres Freund, Petr Jelinek)
|
|
</para>
|
|
|
|
<para>
|
|
The previous algorithm was infeasibly expensive on a server with a
|
|
lot of open transactions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix race condition that could indefinitely delay creation of
|
|
logical-decoding slots (Andres Freund, Petr Jelinek)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce overhead in processing syscache invalidation events (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly helpful for logical decoding, which triggers
|
|
frequent cache invalidation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix cases where an <command>INSERT</command> or <command>UPDATE</command> assigns
|
|
to more than one element of a column that is of domain-over-array
|
|
type (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow window functions to be used in sub-<literal>SELECT</literal>s that
|
|
are within the arguments of an aggregate function (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Move autogenerated array types out of the way during
|
|
<command>ALTER ... RENAME</command> (Vik Fearing)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, we would rename a conflicting autogenerated array type
|
|
out of the way during <command>CREATE</command>; this fix extends that
|
|
behavior to renaming operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dangling pointer in <command>ALTER TABLE</command> when there is a
|
|
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>
|
|
Ensure that <command>ALTER USER ... SET</command> accepts all the syntax
|
|
variants that <command>ALTER ROLE ... SET</command> does (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Properly update dependency info when changing a datatype I/O
|
|
function's argument or return type from <type>opaque</type> to the
|
|
correct type (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
<command>CREATE TYPE</command> updates I/O functions declared in this
|
|
long-obsolete style, but it forgot to record a dependency on the
|
|
type, allowing a subsequent <command>DROP TYPE</command> to leave broken
|
|
function definitions behind.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce memory usage when <command>ANALYZE</command> processes
|
|
a <type>tsvector</type> column (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix unnecessary precision loss and sloppy rounding when multiplying
|
|
or dividing <type>money</type> values by integers or floats (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten checks for whitespace in functions that parse identifiers,
|
|
such as <function>regprocedurein()</function> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Depending on the prevailing locale, these functions could
|
|
misinterpret fragments of multibyte characters as whitespace.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use relevant <literal>#define</literal> symbols from Perl while
|
|
compiling <application>PL/Perl</application> (Ashutosh Sharma, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids portability problems, typically manifesting as
|
|
a <quote>handshake</quote> mismatch during library load, when working with
|
|
recent Perl versions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>libpq</application>, reset GSS/SASL and SSPI authentication
|
|
state properly after a failed connection attempt (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Failure to do this meant that when falling back from SSL to non-SSL
|
|
connections, a GSS/SASL failure in the SSL attempt would always cause
|
|
the non-SSL attempt to fail. SSPI did not fail, but it leaked memory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>psql</application>, fix failure when <command>COPY FROM STDIN</command>
|
|
is ended with a keyboard EOF signal and then another <command>COPY
|
|
FROM STDIN</command> is attempted (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This misbehavior was observed on BSD-derived platforms (including
|
|
macOS), but not on most others.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> and <application>pg_restore</application> to
|
|
emit <command>REFRESH MATERIALIZED VIEW</command> commands last (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents errors during dump/restore when a materialized view
|
|
refers to tables owned by a different user.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>pg_dump</application>/<application>pg_restore</application>'s
|
|
reporting of error conditions originating in <application>zlib</application>
|
|
(Vladimir Kunschikov, Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> with the <option>--clean</option> option to
|
|
drop event triggers as expected (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
It also now correctly assigns ownership of event triggers; before,
|
|
they were restored as being owned by the superuser running the
|
|
restore script.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> to not emit invalid SQL for an empty
|
|
operator class (Daniel Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> output to stdout on Windows (Kuntal Ghosh)
|
|
</para>
|
|
|
|
<para>
|
|
A compressed plain-text dump written to stdout would contain corrupt
|
|
data due to failure to put the file descriptor into binary mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>pg_get_ruledef()</function> to print correct output for
|
|
the <literal>ON SELECT</literal> rule of a view whose columns have been
|
|
renamed (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In some corner cases, <application>pg_dump</application> relies
|
|
on <function>pg_get_ruledef()</function> to dump views, so that this error
|
|
could result in dump/reload failures.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of outer joins with empty constraints, such as the result
|
|
of a <literal>NATURAL LEFT JOIN</literal> with no common columns (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of function expressions in the <literal>FROM</literal> clause in
|
|
cases where the expression does not deparse into something that looks
|
|
like a function call (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_basebackup</application> output to stdout on Windows
|
|
(Haribabu Kommi)
|
|
</para>
|
|
|
|
<para>
|
|
A backup written to stdout would contain corrupt data due to failure
|
|
to put the file descriptor into binary mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_rewind</application> to correctly handle files exceeding 2GB
|
|
(Kuntal Ghosh, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Ordinarily such files won't appear in <productname>PostgreSQL</productname> data
|
|
directories, but they could be present in some cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</application> to ensure that the ending WAL record
|
|
does not have <xref linkend="guc-wal-level"> = <literal>minimum</literal>
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This condition could prevent upgraded standby servers from
|
|
reconnecting.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_xlogdump</application>'s computation of WAL record length
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>postgres_fdw</filename>, re-establish connections to remote
|
|
servers after <command>ALTER SERVER</command> or <command>ALTER USER
|
|
MAPPING</command> commands (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
This ensures that option changes affecting connection parameters will
|
|
be applied promptly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>postgres_fdw</filename>, allow cancellation of remote
|
|
transaction control commands (Robert Haas, Rafia Sabih)
|
|
</para>
|
|
|
|
<para>
|
|
This change allows us to quickly escape a wait for an unresponsive
|
|
remote server in many more cases than previously.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase <literal>MAX_SYSCACHE_CALLBACKS</literal> to provide more room for
|
|
extensions (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Always use <option>-fPIC</option>, not <option>-fpic</option>, when building
|
|
shared libraries with gcc (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This supports larger extension libraries on platforms where it makes
|
|
a difference.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
In MSVC builds, handle the case where the <application>openssl</application>
|
|
library is not within a <filename>VC</filename> subdirectory (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, add proper include path for <application>libxml2</application>
|
|
header files (Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a former need to move things around in standard Windows
|
|
installations of <application>libxml2</application>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, recognize a Tcl library that is
|
|
named <filename>tcl86.lib</filename> (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, honor <literal>PROVE_FLAGS</literal> settings
|
|
on <filename>vcregress.pl</filename>'s command line (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-7">
|
|
<title>Release 9.5.7</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-05-11</para>
|
|
</formalpara>
|
|
|
|
<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>
|
|
However, if you use foreign data servers that make use of user
|
|
passwords for authentication, see the first changelog entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are using third-party replication tools that depend
|
|
on <quote>logical decoding</quote>, see the fourth changelog entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.5.6,
|
|
see <xref linkend="release-9-5-6">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Restrict visibility
|
|
of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to
|
|
protect passwords stored as user mapping options
|
|
(Michael Paquier, Feike Steenbergen)
|
|
</para>
|
|
|
|
<para>
|
|
The previous coding allowed the owner of a foreign server object,
|
|
or anyone he has granted server <literal>USAGE</literal> permission to,
|
|
to see the options for all user mappings associated with that server.
|
|
This might well include passwords for other users.
|
|
Adjust the view definition to match the behavior of
|
|
<structname>information_schema.user_mapping_options</structname>, namely that
|
|
these options are visible to the user being mapped, or if the mapping
|
|
is for <literal>PUBLIC</literal> and the current user is the server
|
|
owner, or if the current user is a superuser.
|
|
(CVE-2017-7486)
|
|
</para>
|
|
|
|
<para>
|
|
By itself, this patch will only fix the behavior in newly initdb'd
|
|
databases. If you wish to apply this change in an existing database,
|
|
follow the corrected procedure shown in the changelog entry for
|
|
CVE-2017-7547, in <xref linkend="release-9-5-8">.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent exposure of statistical information via leaky operators
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Some selectivity estimation functions in the planner will apply
|
|
user-defined operators to values obtained
|
|
from <structname>pg_statistic</structname>, such as most common values and
|
|
histogram entries. This occurs before table permissions are checked,
|
|
so a nefarious user could exploit the behavior to obtain these values
|
|
for table columns he does not have permission to read. To fix,
|
|
fall back to a default estimate if the operator's implementation
|
|
function is not certified leak-proof and the calling user does not have
|
|
permission to read the table column whose statistics are needed.
|
|
At least one of these criteria is satisfied in most cases in practice.
|
|
(CVE-2017-7484)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Restore <application>libpq</application>'s recognition of
|
|
the <envar>PGREQUIRESSL</envar> environment variable (Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
Processing of this environment variable was unintentionally dropped
|
|
in <productname>PostgreSQL</productname> 9.3, but its documentation remained.
|
|
This creates a security hazard, since users might be relying on the
|
|
environment variable to force SSL-encrypted connections, but that
|
|
would no longer be guaranteed. Restore handling of the variable,
|
|
but give it lower priority than <envar>PGSSLMODE</envar>, to avoid
|
|
breaking configurations that work correctly with post-9.3 code.
|
|
(CVE-2017-7485)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possibly-invalid initial snapshot during logical decoding
|
|
(Petr Jelinek, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The initial snapshot created for a logical decoding replication slot
|
|
was potentially incorrect. This could cause third-party tools that
|
|
use logical decoding to copy incomplete/inconsistent initial data.
|
|
This was more likely to happen if the source server was busy at the
|
|
time of slot creation, or if another logical slot already existed.
|
|
</para>
|
|
|
|
<para>
|
|
If you are using a replication tool that depends on logical decoding,
|
|
and it should have copied a nonempty data set at the start of
|
|
replication, it is advisable to recreate the replica after
|
|
installing this update, or to verify its contents against the source
|
|
server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible corruption of <quote>init forks</quote> of unlogged indexes
|
|
(Robert Haas, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in an unlogged index being set to an invalid state
|
|
after a crash and restart. Such a problem would persist until the
|
|
index was dropped and rebuilt.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect reconstruction of <structname>pg_subtrans</structname> entries
|
|
when a standby server replays a prepared but uncommitted two-phase
|
|
transaction (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In most cases this turned out to have no visible ill effects, but in
|
|
corner cases it could result in circular references
|
|
in <structname>pg_subtrans</structname>, potentially causing infinite loops
|
|
in queries that examine rows modified by the two-phase transaction.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possible crash in <application>walsender</application> due to failure
|
|
to initialize a string buffer (Stas Kelvich, Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible crash when rescanning a nearest-neighbor index-only scan
|
|
on a GiST index (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix postmaster's handling of <function>fork()</function> failure for a
|
|
background worker process (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the postmaster updated portions of its state as though
|
|
the process had been launched successfully, resulting in subsequent
|
|
confusion.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
|
|
Branch: REL9_5_STABLE [7be3678a8] 2017-04-24 07:53:05 +0100
|
|
-->
|
|
<para>
|
|
Fix crash or wrong answers when a <literal>GROUPING SETS</literal> column's
|
|
data type is hashable but not sortable (Pavan Deolasee)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid applying <quote>physical targetlist</quote> optimization to custom
|
|
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>
|
|
Use the correct sub-expression when applying a <literal>FOR ALL</literal>
|
|
row-level-security policy (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases the <literal>WITH CHECK</literal> restriction would be applied
|
|
when the <literal>USING</literal> restriction is more appropriate.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure parsing of queries in extension scripts sees the results of
|
|
immediately-preceding DDL (Julien Rouhaud, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Due to lack of a cache flush step between commands in an extension
|
|
script file, non-utility queries might not see the effects of an
|
|
immediately preceding catalog change, such as <command>ALTER TABLE
|
|
... RENAME</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
|
|
COLUMN TYPE</command> rebuilds an existing index (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
The command failed if the calling user did not currently have
|
|
<literal>CREATE</literal> privilege for the tablespace containing the index.
|
|
That behavior seems unhelpful, so skip the check, allowing the
|
|
index to be rebuilt where it is.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</command> to not recurse
|
|
to child tables when the constraint is marked <literal>NO INHERIT</literal>
|
|
(Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
This fix prevents unwanted <quote>constraint does not exist</quote> failures
|
|
when no matching constraint is present in the child tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid dangling pointer in <command>COPY ... TO</command> when row-level
|
|
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>
|
|
Avoid accessing an already-closed relcache entry in <command>CLUSTER</command>
|
|
and <command>VACUUM FULL</command> (Tom Lane)
|
|
</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>
|
|
Fix <command>VACUUM</command> to account properly for pages that could not
|
|
be scanned due to conflicting page pins (Andrew Gierth)
|
|
</para>
|
|
|
|
<para>
|
|
This tended to lead to underestimation of the number of tuples in
|
|
the table. In the worst case of a small heavily-contended
|
|
table, <command>VACUUM</command> could incorrectly report that the table
|
|
contained no tuples, leading to very bad planning choices.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that bulk-tuple-transfer loops within a hash join are
|
|
interruptible by query cancel requests (Tom Lane, Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix integer-overflow problems in <type>interval</type> comparison (Kyotaro
|
|
Horiguchi, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The comparison operators for type <type>interval</type> could yield wrong
|
|
answers for intervals larger than about 296000 years. Indexes on
|
|
columns containing such large values should be reindexed, since they
|
|
may be corrupt.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>cursor_to_xml()</function> to produce valid output
|
|
with <replaceable>tableforest</replaceable> = false
|
|
(Thomas Munro, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it failed to produce a wrapping <literal><table></literal>
|
|
element.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix roundoff problems in <function>float8_timestamptz()</function>
|
|
and <function>make_interval()</function> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These functions truncated, rather than rounded, when converting a
|
|
floating-point value to integer microseconds; that could cause
|
|
unexpectedly off-by-one results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>pg_get_object_address()</function> to handle members of operator
|
|
families correctly (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of <structname>pg_timezone_names</structname> view
|
|
(Tom Lane, David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce memory management overhead for contexts containing many large
|
|
blocks (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix sloppy handling of corner-case errors from <function>lseek()</function>
|
|
and <function>close()</function> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Neither of these system calls are likely to fail in typical situations,
|
|
but if they did, <filename>fd.c</filename> could get quite confused.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect check for whether postmaster is running as a Windows
|
|
service (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in attempting to write to the event log when that
|
|
isn't accessible, so that no logging happens at all.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application> to support <command>COMMIT PREPARED</command>
|
|
and <command>ROLLBACK PREPARED</command> (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix a double-free error when processing dollar-quoted string literals
|
|
in <application>ecpg</application> (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</application>, fix incorrect schema and owner marking for
|
|
comments and security labels of some types of database objects
|
|
(Giuseppe Broccolo, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In simple cases this caused no ill effects; but for example, a
|
|
schema-selective restore might omit comments it should include, because
|
|
they were not marked as belonging to the schema of their associated
|
|
object.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid emitting an invalid list file in <literal>pg_restore -l</literal>
|
|
when SQL object names contain newlines (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Replace newlines by spaces, which is sufficient to make the output
|
|
valid for <literal>pg_restore -L</literal>'s purposes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</application> to transfer comments and security labels
|
|
attached to <quote>large objects</quote> (blobs) (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, blobs were correctly transferred to the new database, but
|
|
any comments or security labels attached to them were lost.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve error handling
|
|
in <filename>contrib/adminpack</filename>'s <function>pg_file_write()</function>
|
|
function (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Notably, it failed to detect errors reported
|
|
by <function>fclose()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/dblink</filename>, avoid leaking the previous unnamed
|
|
connection when establishing a new unnamed connection (Joe Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/pg_trgm</filename>'s extraction of trigrams from regular
|
|
expressions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases it would produce a broken data structure that could never
|
|
match anything, leading to GIN or GiST indexscans that use a trigram
|
|
index not finding any matches to the regular expression.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
In <filename>contrib/postgres_fdw</filename>,
|
|
transmit query cancellation requests to the remote server
|
|
(Michael Paquier, Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, a local query cancellation request did not cause an
|
|
already-sent remote query to terminate early. This is a back-patch
|
|
of work originally done for 9.6.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support Tcl 8.6 in MSVC builds (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Sync our copy of the timezone library with IANA release tzcode2017b
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a bug affecting some DST transitions in January 2038.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application> release 2017b
|
|
for DST law changes in Chile, Haiti, and Mongolia, plus historical
|
|
corrections for Ecuador, Kazakhstan, Liberia, and Spain.
|
|
Switch to numeric abbreviations for numerous time zones in South
|
|
America, the Pacific and Indian oceans, and some Asian and Middle
|
|
Eastern countries.
|
|
</para>
|
|
|
|
<para>
|
|
The IANA time zone database previously provided textual abbreviations
|
|
for all time zones, sometimes making up abbreviations that have little
|
|
or no currency among the local population. They are in process of
|
|
reversing that policy in favor of using numeric UTC offsets in zones
|
|
where there is no evidence of real-world use of an English
|
|
abbreviation. At least for the time being, <productname>PostgreSQL</productname>
|
|
will continue to accept such removed abbreviations for timestamp input.
|
|
But they will not be shown in the <structname>pg_timezone_names</structname>
|
|
view nor used for output.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use correct daylight-savings rules for POSIX-style time zone names
|
|
in MSVC builds (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
The Microsoft MSVC build scripts neglected to install
|
|
the <filename>posixrules</filename> file in the timezone directory tree.
|
|
This resulted in the timezone code falling back to its built-in
|
|
rule about what DST behavior to assume for a POSIX-style time zone
|
|
name. For historical reasons that still corresponds to the DST rules
|
|
the USA was using before 2007 (i.e., change on first Sunday in April
|
|
and last Sunday in October). With this fix, a POSIX-style zone name
|
|
will use the current and historical DST transition dates of
|
|
the <literal>US/Eastern</literal> zone. If you don't want that, remove
|
|
the <filename>posixrules</filename> file, or replace it with a copy of some
|
|
other zone file (see <xref linkend="datatype-timezones">). Note that
|
|
due to caching, you may need to restart the server to get such changes
|
|
to take effect.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-6">
|
|
<title>Release 9.5.6</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-02-09</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.5.5.
|
|
For information about new features in the 9.5 major release, see
|
|
<xref linkend="release-9-5">.
|
|
</para>
|
|
|
|
<sect2>
|
|
<title>Migration to Version 9.5.6</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.5.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if your installation has been affected by the bug described in
|
|
the first changelog entry below, then after updating you may need
|
|
to take action to repair corrupted indexes.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.5.5,
|
|
see <xref linkend="release-9-5-5">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix a race condition that could cause indexes built
|
|
with <command>CREATE INDEX CONCURRENTLY</command> to be corrupt
|
|
(Pavan Deolasee, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If <command>CREATE INDEX CONCURRENTLY</command> was used to build an index
|
|
that depends on a column not previously indexed, then rows
|
|
updated by transactions that ran concurrently with
|
|
the <command>CREATE INDEX</command> command could have received incorrect
|
|
index entries. If you suspect this may have happened, the most
|
|
reliable solution is to rebuild affected indexes after installing
|
|
this update.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that the special snapshot used for catalog scans is not
|
|
invalidated by premature data pruning (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Backends failed to account for this snapshot when advertising their
|
|
oldest xmin, potentially allowing concurrent vacuuming operations to
|
|
remove data that was still needed. This led to transient failures
|
|
along the lines of <quote>cache lookup failed for relation 1255</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh)
|
|
</para>
|
|
|
|
<para>
|
|
The WAL record emitted for a BRIN <quote>revmap</quote> page when moving an
|
|
index tuple to a different page was incorrect. Replay would make the
|
|
related portion of the index useless, forcing it to be recomputed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Unconditionally WAL-log creation of the <quote>init fork</quote> for an
|
|
unlogged table (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, this was skipped when <xref linkend="guc-wal-level">
|
|
= <literal>minimal</literal>, but actually it's necessary even in that case
|
|
to ensure that the unlogged table is properly reset to empty after a
|
|
crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: REL9_5_STABLE [c0db1ec26] 2016-11-17 13:31:30 -0300
|
|
Branch: REL9_4_STABLE [30e3cb307] 2016-11-17 13:31:30 -0300
|
|
-->
|
|
<para>
|
|
Reduce interlocking on standby servers during the replay of btree
|
|
index vacuuming operations (Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
This change avoids substantial replication delays that sometimes
|
|
occurred while replaying such operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
If the stats collector dies during hot standby, restart it (Takayuki
|
|
Tsunakawa)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that hot standby feedback works correctly when it's enabled at
|
|
standby server start (Ants Aasma, Craig Ringer)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Check for interrupts while hot standby is waiting for a conflicting
|
|
query (Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid constantly respawning the autovacuum launcher in a corner case
|
|
(Amit Khandekar)
|
|
</para>
|
|
|
|
<para>
|
|
This fix avoids problems when autovacuum is nominally off and there
|
|
are some tables that require freezing, but all such tables are
|
|
already being processed by autovacuum workers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix check for when an extension member object can be dropped (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Extension upgrade scripts should be able to drop member objects,
|
|
but this was disallowed for serial-column sequences, and possibly
|
|
other cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make sure <command>ALTER TABLE</command> preserves index tablespace
|
|
assignments when rebuilding indexes (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, non-default settings
|
|
of <xref linkend="guc-default-tablespace"> could result in broken
|
|
indexes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect updating of trigger function properties when changing a
|
|
foreign-key constraint's deferrability properties with <command>ALTER
|
|
TABLE ... ALTER CONSTRAINT</command> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This led to odd failures during subsequent exercise of the foreign
|
|
key, as the triggers were fired at the wrong times.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent dropping a foreign-key constraint if there are pending
|
|
trigger events for the referenced relation (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids <quote>could not find trigger <replaceable>NNN</replaceable></quote>
|
|
or <quote>relation <replaceable>NNN</replaceable> has no triggers</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ALTER TABLE ... SET DATA TYPE ... USING</command> when child
|
|
table has different column ordering than the parent
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
Failure to adjust the column numbering in the <literal>USING</literal>
|
|
expression led to errors,
|
|
typically <quote>attribute <replaceable>N</replaceable> has wrong type</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix processing of OID column when a table with OIDs is associated to
|
|
a parent with OIDs via <command>ALTER TABLE ... INHERIT</command> (Amit
|
|
Langote)
|
|
</para>
|
|
|
|
<para>
|
|
The OID column should be treated the same as regular user columns in
|
|
this case, but it wasn't, leading to odd behavior in later
|
|
inheritance changes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>CREATE OR REPLACE VIEW</command> to update the view query
|
|
before attempting to apply the new view options (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the command would fail if the new options were
|
|
inconsistent with the old view definition.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Report correct object identity during <command>ALTER TEXT SEARCH
|
|
CONFIGURATION</command> (Artur Zakirov)
|
|
</para>
|
|
|
|
<para>
|
|
The wrong catalog OID was reported to extensions such as logical
|
|
decoding.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix commit timestamp mechanism to not fail when queried about
|
|
the special XIDs <literal>FrozenTransactionId</literal>
|
|
and <literal>BootstrapTransactionId</literal> (Craig Ringer)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
|
Branch: REL9_5_STABLE [bed2a0b06] 2016-12-13 19:14:42 -0600
|
|
Branch: REL9_4_STABLE [4b9d466c1] 2016-12-13 19:05:12 -0600
|
|
Branch: REL9_3_STABLE [5d80171ad] 2016-12-13 19:05:35 -0600
|
|
Branch: REL9_2_STABLE [60314e28e] 2016-12-13 19:08:09 -0600
|
|
-->
|
|
<para>
|
|
Check for serializability conflicts before reporting
|
|
constraint-violation failures (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
When using serializable transaction isolation, it is desirable
|
|
that any error due to concurrent transactions should manifest
|
|
as a serialization failure, thereby cueing the application that
|
|
a retry might succeed. Unfortunately, this does not reliably
|
|
happen for duplicate-key failures caused by concurrent insertions.
|
|
This change ensures that such an error will be reported as a
|
|
serialization error if the application explicitly checked for
|
|
the presence of a conflicting key (and did not find it) earlier
|
|
in the transaction.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect use of view reloptions as regular table reloptions (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The symptom was spurious <quote>ON CONFLICT is not supported on table
|
|
... used as a catalog table</quote> errors when the target
|
|
of <command>INSERT ... ON CONFLICT</command> is a view with cascade option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect <quote>target lists can have at most <replaceable>N</replaceable>
|
|
entries</quote> complaint when using <literal>ON CONFLICT</literal> with
|
|
wide tables (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent multicolumn expansion of <replaceable>foo</replaceable><literal>.*</literal> in
|
|
an <command>UPDATE</command> source expression (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This led to <quote>UPDATE target count mismatch --- internal
|
|
error</quote>. Now the syntax is understood as a whole-row variable,
|
|
as it would be in other contexts.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that column typmods are determined accurately for
|
|
multi-row <literal>VALUES</literal> constructs (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes problems occurring when the first value in a column has a
|
|
determinable typmod (e.g., length for a <type>varchar</type> value) but
|
|
later values don't share the same limit.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Throw error for an unfinished Unicode surrogate pair at the end of a
|
|
Unicode string (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Normally, a Unicode surrogate leading character must be followed by a
|
|
Unicode surrogate trailing character, but the check for this was
|
|
missed if the leading character was the last character in a Unicode
|
|
string literal (<literal>U&'...'</literal>) or Unicode identifier
|
|
(<literal>U&"..."</literal>).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that a purely negative text search query, such
|
|
as <literal>!foo</literal>, matches empty <type>tsvector</type>s (Tom Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
Such matches were found by GIN index searches, but not by sequential
|
|
scans or GiST index searches.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent crash when <function>ts_rewrite()</function> replaces a non-top-level
|
|
subtree with an empty query (Artur Zakirov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix performance problems in <function>ts_rewrite()</function> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>ts_rewrite()</function>'s handling of nested NOT operators
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve speed of user-defined aggregates that
|
|
use <function>array_append()</function> as transition function (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>array_fill()</function> to handle empty arrays properly (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible crash in <function>array_position()</function>
|
|
or <function>array_positions()</function> when processing arrays of records
|
|
(Junseok Yang)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</function>
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
The overrun occurred only if the input consisted entirely of single
|
|
quotes and/or backslashes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent multiple calls of <function>pg_start_backup()</function>
|
|
and <function>pg_stop_backup()</function> from running concurrently (Michael
|
|
Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids an assertion failure, and possibly worse things, if
|
|
someone tries to run these functions in parallel.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disable transform that attempted to remove no-op <literal>AT TIME
|
|
ZONE</literal> conversions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This resulted in wrong answers when the simplified expression was
|
|
used in an index condition.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid discarding <type>interval</type>-to-<type>interval</type> casts
|
|
that aren't really no-ops (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases, a cast that should result in zeroing out
|
|
low-order <type>interval</type> fields was mistakenly deemed to be a
|
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
|
MONTH</type> to <type>INTERVAL YEAR</type> failed to clear the months field.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix bugs in transmitting GUC parameter values to parallel workers
|
|
(Michael Paquier, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that cached plans are invalidated by changes in foreign-table
|
|
options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> to dump user-defined casts and transforms
|
|
that use built-in functions (Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_restore</application> with <option>--create --if-exists</option>
|
|
to behave more sanely if an archive contains
|
|
unrecognized <command>DROP</command> commands (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This doesn't fix any live bug, but it may improve the behavior in
|
|
future if <application>pg_restore</application> is used with an archive
|
|
generated by a later <application>pg_dump</application> version.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_basebackup</application>'s rate limiting in the presence of
|
|
slow I/O (Antonin Houska)
|
|
</para>
|
|
|
|
<para>
|
|
If disk I/O was transiently much slower than the specified rate
|
|
limit, the calculation overflowed, effectively disabling the rate
|
|
limit for the rest of the run.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_basebackup</application>'s handling of
|
|
symlinked <filename>pg_stat_tmp</filename> and <filename>pg_replslot</filename>
|
|
subdirectories (Magnus Hagander, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible <application>pg_basebackup</application> failure on standby
|
|
server when including WAL files (Amit Kapila, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible mishandling of expanded arrays in domain check
|
|
constraints and <literal>CASE</literal> execution (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
It was possible for a PL/pgSQL function invoked in these contexts to
|
|
modify or even delete an array value that needs to be preserved for
|
|
additional operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix nested uses of PL/pgSQL functions in contexts such as domain
|
|
check constraints evaluated during assignment to a PL/pgSQL variable
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that the Python exception objects we create for PL/Python are
|
|
properly reference-counted (Rafa de la Torre, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids failures if the objects are used after a Python garbage
|
|
collection cycle has occurred.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix PL/Tcl to support triggers on tables that have <literal>.tupno</literal>
|
|
as a column name (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This matches the (previously undocumented) behavior of
|
|
PL/Tcl's <command>spi_exec</command> and <command>spi_execp</command> commands,
|
|
namely that a magic <literal>.tupno</literal> column is inserted only if
|
|
there isn't a real column named that.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow DOS-style line endings in <filename>~/.pgpass</filename> files,
|
|
even on Unix (Vik Fearing)
|
|
</para>
|
|
|
|
<para>
|
|
This change simplifies use of the same password file across Unix and
|
|
Windows machines.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix one-byte buffer overrun if <application>ecpg</application> is given a file
|
|
name that ends with a dot (Takayuki Tsunakawa)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</application>'s tab completion for <command>ALTER DEFAULT
|
|
PRIVILEGES</command> (Gilles Darold, Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>psql</application>, treat an empty or all-blank setting of
|
|
the <envar>PAGER</envar> environment variable as meaning <quote>no
|
|
pager</quote> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such a setting caused output intended for the pager to
|
|
vanish entirely.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <filename>contrib/dblink</filename>'s reporting of
|
|
low-level <application>libpq</application> errors, such as out-of-memory
|
|
(Joe Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Teach <filename>contrib/dblink</filename> to ignore irrelevant server options
|
|
when it uses a <filename>contrib/postgres_fdw</filename> foreign server as
|
|
the source of connection options (Corey Huinker)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, if the foreign server object had options that were not
|
|
also <application>libpq</application> connection options, an error occurred.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix portability problems in <filename>contrib/pageinspect</filename>'s
|
|
functions for GIN indexes (Peter Eisentraut, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, ensure that environment variable changes are propagated
|
|
to DLLs built with debug options (Christian Ullrich)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Sync our copy of the timezone library with IANA release tzcode2016j
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes various issues, most notably that timezone data
|
|
installation failed if the target directory didn't support hard
|
|
links.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application> release 2016j
|
|
for DST law changes in northern Cyprus (adding a new zone
|
|
Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
|
|
and Antarctica/Casey.
|
|
Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
|
|
Switch to preferring numeric zone abbreviations for Tonga.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-5">
|
|
<title>Release 9.5.5</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-10-27</para>
|
|
</formalpara>
|
|
|
|
<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
|
|
producing errors like <quote>could not read block <replaceable>XXX</replaceable>:
|
|
read only 0 of 8192 bytes</quote>. Checksum failures in the
|
|
visibility map are also possible, if checksumming is enabled.
|
|
</para>
|
|
|
|
<para>
|
|
Procedures for determining whether there is a problem and repairing it
|
|
if so are discussed at
|
|
<ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></ulink>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
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>
|
|
The typical symptom was <quote>unexpected GIN leaf action</quote> errors
|
|
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>
|
|
Fix <command>SELECT FOR UPDATE/SHARE</command> to correctly lock tuples that
|
|
have been updated by a subsequently-aborted transaction
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
In 9.5 and later, the <command>SELECT</command> would sometimes fail to
|
|
return such tuples at all. A failure has not been proven to occur in
|
|
earlier releases, but might be possible with concurrent updates.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
of <command>INSERT ... ON CONFLICT</command> (Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
In the race condition where two transactions try to insert conflicting
|
|
tuples at about the same time, the loser would fail with
|
|
an <quote>attempted to delete invisible tuple</quote> error if its
|
|
insertion included any TOAST'ed fields.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Don't throw serialization errors for self-conflicting insertions
|
|
in <command>INSERT ... ON CONFLICT</command> (Thomas Munro, Peter Geoghegan)
|
|
</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>
|
|
Fix query-lifespan memory leak in a bulk <command>UPDATE</command> on a table
|
|
with a <literal>PRIMARY KEY</literal> or <literal>REPLICA IDENTITY</literal> index
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>COPY</command> with a column name list from a table that has
|
|
row-level security enabled (Adam Brightwell)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>EXPLAIN</command> to emit valid XML when
|
|
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the XML output-format option produced syntactically invalid
|
|
tags such as <literal><I/O-Read-Time></literal>. That is now
|
|
rendered as <literal><I-O-Read-Time></literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
in <command>EXPLAIN</command> (Maksim Milyutin)
|
|
</para>
|
|
|
|
<para>
|
|
Certain option combinations resulted in printing zero values for times
|
|
that actually aren't ever measured in that combination. Our general
|
|
policy in <command>EXPLAIN</command> is not to print such fields at all, so
|
|
do that consistently in all cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix statistics update for <command>TRUNCATE</command> in a prepared
|
|
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>
|
|
Fix timeout length when <command>VACUUM</command> is waiting for exclusive
|
|
table lock so that it can truncate the table (Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
The timeout was meant to be 50 milliseconds, but it was actually only
|
|
50 microseconds, causing <command>VACUUM</command> to give up on truncation
|
|
much more easily than intended. Set it to the intended value.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix bugs in merging inherited <literal>CHECK</literal> constraints while
|
|
creating or altering a table (Tom Lane, Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
Allow identical <literal>CHECK</literal> constraints to be added to a parent
|
|
and child table in either order. Prevent merging of a valid
|
|
constraint from the parent table with a <literal>NOT VALID</literal>
|
|
constraint on the child. Likewise, prevent merging of a <literal>NO
|
|
INHERIT</literal> child constraint with an inherited constraint.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Show a sensible value
|
|
in <structname>pg_settings</structname>.<structfield>unit</structfield>
|
|
for <varname>min_wal_size</varname> and <varname>max_wal_size</varname> (Tom Lane)
|
|
</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
|
|
by <function>numeric_in()</function> and <function>numeric_recv()</function>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
We allow numeric values up to the limit of the storage format (more
|
|
than <literal>1e100000</literal>), so it seems fairly pointless
|
|
that <function>numeric_in()</function> rejected scientific-notation exponents
|
|
above 1000. Likewise, it was silly for <function>numeric_recv()</function> to
|
|
reject more than 1000 digits in an input value.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid very-low-probability data corruption due to testing tuple
|
|
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
|
|
Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
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>
|
|
|
|
<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
|
|
would need to be rebuilt using <command>REINDEX</command>. However, the
|
|
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>
|
|
Disallow starting a standalone backend with <literal>standby_mode</literal>
|
|
turned on (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This can't do anything useful, since there will be no WAL receiver
|
|
process to fetch more WAL data; and it could result in misbehavior
|
|
in code that wasn't designed with this situation in mind.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
prevent <command>VACUUM</command> from removing dead tuples.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Round shared-memory allocation request to a multiple of the actual
|
|
huge page size when attempting to use huge pages on Linux (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids possible failures during <function>munmap()</function> on systems
|
|
with atypical default huge page sizes. Except in crash-recovery
|
|
cases, there were no ill effects other than a log message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
derived from <function>random()</function> but <function>srandom()</function> had not
|
|
yet been called. While relatively harmless, this was not the intended
|
|
behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Windows sometimes returns <literal>ERROR_ACCESS_DENIED</literal> rather
|
|
than <literal>ERROR_ALREADY_EXISTS</literal> when there is an existing
|
|
segment. This led to postmaster startup failure due to believing that
|
|
the former was an unrecoverable error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <application>PL/pgSQL</application> to not misbehave with parameters and
|
|
local variables of type <type>int2vector</type> or <type>oidvector</type>
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Don't try to share SSL contexts across multiple connections
|
|
in <application>libpq</application> (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This led to assorted corner-case bugs, particularly when trying to use
|
|
different SSL parameters for different connections.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid corner-case memory leak in <application>libpq</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The reported problem involved leaking an error report
|
|
during <function>PQreset()</function>, but there might be related cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Make <application>ecpg</application>'s <option>--help</option> and <option>--version</option>
|
|
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>
|
|
Fix <application>pgbench</application>'s calculation of average latency
|
|
(Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
The calculation was incorrect when there were <literal>\sleep</literal>
|
|
commands in the script, or when the test duration was specified in
|
|
number of transactions rather than total time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</application>, check library loadability in name order
|
|
(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>
|
|
In <application>pg_dump</application>, never dump range constructor functions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight led to <application>pg_upgrade</application> failures with
|
|
extensions containing range types, due to duplicate creation of the
|
|
constructor functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
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)
|
|
</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>
|
|
Make <application>pg_receivexlog</application> work correctly
|
|
with <option>--synchronous</option> without slots (Gabriele Bartolini)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow specifying both <option>--source-server</option>
|
|
and <option>--source-target</option> options to <application>pg_rewind</application>
|
|
(Michael Banck)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_rewind</application> turn off <varname>synchronous_commit</varname>
|
|
in its session on the source server (Michael Banck, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <application>pg_rewind</application> to work even when the source
|
|
server is using synchronous replication that is not working for some
|
|
reason.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_xlogdump</application>, retry opening new WAL segments when
|
|
using <option>--follow</option> option (Magnus Hagander)
|
|
</para>
|
|
|
|
<para>
|
|
This allows for a possible delay in the server's creation of the next
|
|
segment.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <application>pg_xlogdump</application> to cope with a WAL file that begins
|
|
with a continuation record spanning more than one page (Pavan
|
|
Deolasee)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <filename>contrib/pg_buffercache</filename> to work
|
|
when <varname>shared_buffers</varname> exceeds 256GB (KaiGai Kohei)
|
|
</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>
|
|
Fix <filename>contrib/intarray/bench/bench.pl</filename> to print the results
|
|
of the <command>EXPLAIN</command> it does when given the <option>-e</option> option
|
|
(Daniel Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
When <productname>PostgreSQL</productname> has been configured
|
|
with <option>--enable-tap-tests</option>, <quote>make install</quote> will now
|
|
install the Perl support files for TAP testing where PGXS can find
|
|
them. This allows non-core extensions to
|
|
use <literal>$(prove_check)</literal> without extra tests.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
In MSVC builds, include <application>pg_recvlogical</application> in a
|
|
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
|
|
their time zone database, as they did in <application>tzdata</application>
|
|
release 2016f and seem likely to do again in the future. The
|
|
consequences were not limited to not recognizing the individual
|
|
abbreviation; any mismatch caused
|
|
the <structname>pg_timezone_abbrevs</structname> view to fail altogether.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application> release 2016h
|
|
for DST law changes in Palestine and Turkey, plus historical
|
|
corrections for Turkey and some regions of Russia.
|
|
Switch to numeric abbreviations for some time zones in Antarctica,
|
|
the former Soviet Union, and Sri Lanka.
|
|
</para>
|
|
|
|
<para>
|
|
The IANA time zone database previously provided textual abbreviations
|
|
for all time zones, sometimes making up abbreviations that have little
|
|
or no currency among the local population. They are in process of
|
|
reversing that policy in favor of using numeric UTC offsets in zones
|
|
where there is no evidence of real-world use of an English
|
|
abbreviation. At least for the time being, <productname>PostgreSQL</productname>
|
|
will continue to accept such removed abbreviations for timestamp input.
|
|
But they will not be shown in the <structname>pg_timezone_names</structname>
|
|
view nor used for output.
|
|
</para>
|
|
|
|
<para>
|
|
In this update, <literal>AMT</literal> is no longer shown as being in use to
|
|
mean Armenia Time. Therefore, we have changed the <literal>Default</literal>
|
|
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-4">
|
|
<title>Release 9.5.4</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-08-11</para>
|
|
</formalpara>
|
|
|
|
<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>
|
|
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
|
|
nested <literal>CASE</literal>-<literal>WHEN</literal> expressions (Heikki
|
|
Linnakangas, Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A <literal>CASE</literal> expression appearing within the test value
|
|
subexpression of another <literal>CASE</literal> could become confused about
|
|
whether its own test value was null or not. Also, inlining of a SQL
|
|
function implementing the equality operator used by
|
|
a <literal>CASE</literal> expression could result in passing the wrong test
|
|
value to functions called within a <literal>CASE</literal> expression in the
|
|
SQL function's body. If the test values were of different data
|
|
types, a crash might result; moreover such situations could be abused
|
|
to allow disclosure of portions of server memory. (CVE-2016-5423)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Numerous places in <application>vacuumdb</application> and other client programs
|
|
could become confused by database and role names containing double
|
|
quotes or backslashes. Tighten up quoting rules to make that safe.
|
|
Also, ensure that when a conninfo string is used as a database name
|
|
parameter to these programs, it is correctly treated as such throughout.
|
|
</para>
|
|
|
|
<para>
|
|
Fix handling of paired double quotes
|
|
in <application>psql</application>'s <command>\connect</command>
|
|
and <command>\password</command> commands to match the documentation.
|
|
</para>
|
|
|
|
<para>
|
|
Introduce a new <option>-reuse-previous</option> option
|
|
in <application>psql</application>'s <command>\connect</command> command to allow
|
|
explicit control of whether to re-use connection parameters from a
|
|
previous connection. (Without this, the choice is based on whether
|
|
the database name looks like a conninfo string, as before.) This
|
|
allows secure handling of database names containing special
|
|
characters in <application>pg_dumpall</application> scripts.
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dumpall</application> now refuses to deal with database and role
|
|
names containing carriage returns or newlines, as it seems impractical
|
|
to quote those characters safely on Windows. In future we may reject
|
|
such names on the server side, but that step has not been taken yet.
|
|
</para>
|
|
|
|
<para>
|
|
These are considered security fixes because crafted object names
|
|
containing special characters could have been used to execute
|
|
commands with superuser privileges the next time a superuser
|
|
executes <application>pg_dumpall</application> or other routine maintenance
|
|
operations. (CVE-2016-5424)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
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>
|
|
Fix corner-case misbehaviors for <literal>IS NULL</literal>/<literal>IS NOT
|
|
NULL</literal> applied to nested composite values (Andrew Gierth, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The SQL standard specifies that <literal>IS NULL</literal> should return
|
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
|
NULL</literal> yields TRUE), but this is not meant to apply recursively
|
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</literal> yields FALSE).
|
|
The core executor got this right, but certain planner optimizations
|
|
treated the test as recursive (thus producing TRUE in both cases),
|
|
and <filename>contrib/postgres_fdw</filename> could produce remote queries
|
|
that misbehaved similarly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <quote>unrecognized node type</quote> error for <command>INSERT ... ON
|
|
CONFLICT</command> within a recursive CTE (a <literal>WITH</literal> item) (Peter
|
|
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>
|
|
Fix <command>INSERT ... ON CONFLICT</command> to successfully match index
|
|
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
|
|
the target table of an <literal>INSERT ... ON CONFLICT</literal> command,
|
|
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>
|
|
Fix <command>INSERT ... ON CONFLICT</command> to not fail if the target
|
|
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>
|
|
Make the <type>inet</type> and <type>cidr</type> data types properly reject
|
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Prevent crash in <function>close_ps()</function>
|
|
(the <type>point</type> <literal>##</literal> <type>lseg</type> operator)
|
|
for NaN input coordinates (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Make it return NULL instead of crashing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Avoid possible crash in <function>pg_get_expr()</function> when inconsistent
|
|
values are passed to it (Michael Paquier, Thomas Munro)
|
|
</para>
|
|
</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>
|
|
Fix several one-byte buffer over-reads in <function>to_number()</function>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
In several cases the <function>to_number()</function> function would read one
|
|
more character than it should from the input string. There is a
|
|
small chance of a crash, if the input happens to be adjacent to the
|
|
end of memory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
MATERIALIZED VIEW</literal> or <literal>CREATE TABLE AS</literal>
|
|
when <literal>WITH NO DATA</literal> is specified (Michael Paquier,
|
|
Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids some unnecessary failure conditions, for example if a
|
|
stable function invoked by the materialized view depends on a table
|
|
that doesn't exist yet.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
through <function>heap_update()</function> (Masahiko Sawada, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
|
but did not WAL-log that action, thus risking data integrity problems
|
|
if the page were spilled to disk and then a database crash occurred
|
|
before the tuple update could be completed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Avoid unnecessary <quote>could not serialize access</quote> errors when
|
|
acquiring <literal>FOR KEY SHARE</literal> row locks in serializable mode
|
|
(Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Make sure <quote>expanded</quote> datums returned by a plan node are
|
|
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
|
|
core <productname>PostgreSQL</productname> is concerned, only array values
|
|
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>
|
|
Avoid crash in <literal>postgres -C</literal> when the specified variable
|
|
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>
|
|
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>
|
|
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>
|
|
Avoid consuming a transaction ID during <command>VACUUM</command>
|
|
(Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases in <command>VACUUM</command> unnecessarily caused an XID to be
|
|
assigned to the current transaction. Normally this is negligible,
|
|
but if one is up against the XID wraparound limit, consuming more
|
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: 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
|
|
like <quote>MultiXactId <replaceable>NNN</replaceable> has not been created
|
|
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>
|
|
When a manual <command>ANALYZE</command> specifies a column list, don't
|
|
reset the table's <literal>changes_since_analyze</literal> counter
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If we're only analyzing some columns, we should not prevent routine
|
|
auto-analyze from happening for the other columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <command>ANALYZE</command>'s overestimation of <literal>n_distinct</literal>
|
|
for a unique or nearly-unique column with many null entries (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The nulls could get counted as though they were themselves distinct
|
|
values, leading to serious planner misestimates in some types of
|
|
queries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
This mistake prevented <command>VACUUM</command> from completing in some
|
|
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>
|
|
Fix building of large (bigger than <varname>shared_buffers</varname>)
|
|
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>
|
|
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)
|
|
</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>
|
|
Fix <quote>PANIC: failed to add BRIN tuple</quote> error when attempting
|
|
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>
|
|
Fix PL/pgSQL's handling of the <literal>INTO</literal> clause
|
|
within <command>IMPORT FOREIGN SCHEMA</command> commands (Tom Lane)
|
|
</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>
|
|
Fix <filename>contrib/btree_gin</filename> to handle the smallest
|
|
possible <type>bigint</type> value correctly (Peter Eisentraut)
|
|
</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
|
|
that <function>PQserverVersion()</function> returns the correct value for
|
|
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>
|
|
Fix <application>ecpg</application>'s code for <literal>unsigned long long</literal>
|
|
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>
|
|
In <application>pg_dump</application> with both <option>-c</option> and <option>-C</option>
|
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</literal>
|
|
command (David Johnston, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Improve handling of <systemitem>SIGTERM</systemitem>/control-C in
|
|
parallel <application>pg_dump</application> and <application>pg_restore</application> (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Make sure that the worker processes will exit promptly, and also arrange
|
|
to send query-cancel requests to the connected backends, in case they
|
|
are doing something long-running such as a <command>CREATE INDEX</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix error reporting in parallel <application>pg_dump</application>
|
|
and <application>pg_restore</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, errors reported by <application>pg_dump</application>
|
|
or <application>pg_restore</application> worker processes might never make it to
|
|
the user's console, because the messages went through the master
|
|
process, and there were various deadlock scenarios that would prevent
|
|
the master process from passing on the messages. Instead, just print
|
|
everything to <literal>stderr</literal>. In some cases this will result in
|
|
duplicate messages (for instance, if all the workers report a server
|
|
shutdown), but that seems better than no message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Ensure that parallel <application>pg_dump</application>
|
|
or <application>pg_restore</application> on Windows will shut down properly
|
|
after an error (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, it would report the error, but then just sit until
|
|
manually stopped by the user.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Make parallel <application>pg_dump</application> fail cleanly when run against a
|
|
standby server (Magnus Hagander)
|
|
</para>
|
|
|
|
<para>
|
|
This usage is not supported
|
|
unless <option>--no-synchronized-snapshots</option> is specified, but the
|
|
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>
|
|
Make <application>pg_dump</application> behave better when built without zlib
|
|
support (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
It didn't work right for parallel dumps, and emitted some rather
|
|
pointless warnings in other cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Make <application>pg_basebackup</application> accept <literal>-Z 0</literal> as
|
|
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>
|
|
Be more predictable about reporting <quote>statement timeout</quote>
|
|
versus <quote>lock timeout</quote> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
On heavily loaded machines, the regression tests sometimes failed due
|
|
to reporting <quote>lock timeout</quote> even though the statement timeout
|
|
should have occurred first.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
IANA's <application>tzcode</application> release 2016c (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is needed to cope with anticipated future changes in the time
|
|
zone data files. It also fixes some corner-case bugs in coping with
|
|
unusual time zones.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Update time zone data files to <application>tzdata</application> release 2016f
|
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
|
corrections for Azerbaijan, Belarus, and Morocco.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-3">
|
|
<title>Release 9.5.3</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-05-12</para>
|
|
</formalpara>
|
|
|
|
<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>
|
|
<!--
|
|
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
|
|
afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This change prevents problems when there are multiple connections
|
|
using OpenSSL within a single process and not all the code involved
|
|
follows the same rules for when to clear the error queue.
|
|
Failures have been reported specifically when a client application
|
|
uses SSL connections in <application>libpq</application> concurrently with
|
|
SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
|
|
It's possible for similar problems to arise within the server as well,
|
|
if an extension module establishes an outgoing SSL connection.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <quote>failed to build any <replaceable>N</replaceable>-way joins</quote>
|
|
planner error with a full join enclosed in the right-hand side of a
|
|
left join (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
as <literal>X.X = Y.Y = Z.Z</literal>, it was possible for the planner to omit
|
|
some of the tests needed to enforce that all the variables are actually
|
|
equal, leading to join rows being output that didn't satisfy
|
|
the <literal>WHERE</literal> clauses. For various reasons, erroneous plans
|
|
were seldom selected in practice, so that this bug has gone undetected
|
|
for a long time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
An example is that <literal>SELECT (ARRAY[])::text[]</literal> gave an error,
|
|
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
|
|
high <varname>maintenance_work_mem</varname>.
|
|
</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>
|
|
Fix possible misbehavior of <literal>TH</literal>, <literal>th</literal>,
|
|
and <literal>Y,YYY</literal> format codes in <function>to_timestamp()</function>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These could advance off the end of the input string, causing subsequent
|
|
format codes to read garbage.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix dumping of rules and views in which the <replaceable>array</replaceable>
|
|
argument of a <literal><replaceable>value</replaceable> <replaceable>operator</replaceable>
|
|
ANY (<replaceable>array</replaceable>)</literal> construct is a sub-SELECT
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Disallow newlines in <command>ALTER SYSTEM</command> parameter values
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The configuration-file parser doesn't support embedded newlines in
|
|
string literals, so we mustn't allow them in values to be inserted
|
|
by <command>ALTER SYSTEM</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</command> to
|
|
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>
|
|
Avoid possible misbehavior after failing to remove a tablespace symlink
|
|
(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>
|
|
Make <application>pg_regress</application> use a startup timeout from the
|
|
<envar>PGCTLTIMEOUT</envar> environment variable, if that's set (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is for consistency with a behavior recently added
|
|
to <application>pg_ctl</application>; it eases automated testing on slow machines.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <application>pg_upgrade</application> to correctly restore extension
|
|
membership for operator families containing only one operator class
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In such a case, the operator family was restored into the new database,
|
|
but it was no longer marked as part of the extension. This had no
|
|
immediate ill effects, but would cause later <application>pg_dump</application>
|
|
runs to emit output that would cause (harmless) errors on restore.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Fix <application>pg_upgrade</application> to not fail when new-cluster TOAST rules
|
|
differ from old (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_upgrade</application> had special-case code to handle the
|
|
situation where the new <productname>PostgreSQL</productname> version thinks that
|
|
a table should have a TOAST table while the old version did not. That
|
|
code was broken, so remove it, and instead do nothing in such cases;
|
|
there seems no reason to believe that we can't get along fine without
|
|
a TOAST table if that was okay according to the old version's rules.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
<option>--disable-spinlocks</option> (Tom Lane)
|
|
</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>
|
|
Rename internal function <function>strtoi()</function>
|
|
to <function>strtoint()</function> to avoid conflict with a NetBSD library
|
|
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>
|
|
Fix reporting of errors from <function>bind()</function>
|
|
and <function>listen()</function> system calls on Windows (Tom Lane)
|
|
</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>
|
|
Reduce verbosity of compiler output when building with Microsoft Visual
|
|
Studio (Christian Ullrich)
|
|
</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>
|
|
Fix <function>putenv()</function> to work properly with Visual Studio 2013
|
|
(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>
|
|
Avoid possibly-unsafe use of Windows' <function>FormatMessage()</function>
|
|
function (Christian Ullrich)
|
|
</para>
|
|
|
|
<para>
|
|
Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</literal> flag where
|
|
appropriate. No live bug is known to exist here, but it seems like a
|
|
good idea to be careful.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Update time zone data files to <application>tzdata</application> release 2016d
|
|
for DST law changes in Russia and Venezuela. There are new zone
|
|
names <literal>Europe/Kirov</literal> and <literal>Asia/Tomsk</literal> to reflect
|
|
the fact that these regions now have different time zone histories from
|
|
adjacent regions.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-2">
|
|
<title>Release 9.5.2</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-03-31</para>
|
|
</formalpara>
|
|
|
|
<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>
|
|
However, you may need to <command>REINDEX</command> some indexes after applying
|
|
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>
|
|
Disable abbreviated keys for string sorting in non-<literal>C</literal>
|
|
locales (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> 9.5 introduced logic for speeding up
|
|
comparisons of string data types by using the standard C library
|
|
function <function>strxfrm()</function> as a substitute
|
|
for <function>strcoll()</function>. It now emerges that most versions of
|
|
glibc (Linux's implementation of the C library) have buggy
|
|
implementations of <function>strxfrm()</function> that, in some locales,
|
|
can produce string comparison results that do not
|
|
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>.)
|
|
</para>
|
|
|
|
<para>
|
|
Unfortunately, this problem affects not only sorting but also entry
|
|
ordering in B-tree indexes, which means that B-tree indexes
|
|
on <type>text</type>, <type>varchar</type>, or <type>char</type> columns may now
|
|
be corrupt if they sort according to an affected locale and were
|
|
built or modified under <productname>PostgreSQL</productname> 9.5.0 or 9.5.1.
|
|
Users should <command>REINDEX</command> indexes that might be affected.
|
|
</para>
|
|
|
|
<para>
|
|
It is not possible at this time to give an exhaustive list of
|
|
known-affected locales. <literal>C</literal> locale is known safe, and
|
|
there is no evidence of trouble in English-based locales such
|
|
as <literal>en_US</literal>, but some other popular locales such
|
|
as <literal>de_DE</literal> are affected in most glibc versions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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
|
|
new <filename>contrib/pageinspect</filename> functions (Andreas Seltenreich)
|
|
</para>
|
|
|
|
<para>
|
|
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
|
|
crash the server or disclose a few bytes of server memory. Add the
|
|
missing permissions checks to prevent misuse.
|
|
(CVE-2016-3065)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Fix incorrect handling of indexed <literal>ROW()</literal> comparisons
|
|
(Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
Flaws in a minor optimization introduced in 9.5 caused incorrect
|
|
results if the <literal>ROW()</literal> comparison matches the index ordering
|
|
partially but not exactly (for example, differing column order, or the
|
|
index contains both <literal>ASC</literal> and <literal>DESC</literal> columns).
|
|
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
|
|
indexed <literal>ROW()</literal> comparisons (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An index search using a row comparison such as <literal>ROW(a, b) >
|
|
ROW('x', 'y')</literal> would stop upon reaching a NULL entry in
|
|
the <structfield>b</structfield> column, ignoring the fact that there might be
|
|
non-NULL <structfield>b</structfield> values associated with later values
|
|
of <structfield>a</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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
|
|
adequate <function>fsync()</function> calls before and after (Michael Paquier,
|
|
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
|
|
that does <command>SELECT FOR UPDATE/SHARE</command> and contains some
|
|
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
|
|
deciding that the updated row no longer passes the <literal>WHERE</literal>
|
|
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>
|
|
Fix bug in <function>json_to_record()</function> when a field of its input
|
|
object contains a sub-object with a field name matching one of the
|
|
requested output column names (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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
|
|
of <function>jsonb_object()</function> when called with empty arrays
|
|
(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>
|
|
Fix misbehavior in <function>jsonb_set()</function> when converting a path
|
|
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
|
|
by <function>to_char()</function>'s <literal>OF</literal> format code
|
|
(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
|
|
<command>INSERT ... ON CONFLICT</command> (Peter Geoghegan)
|
|
</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
|
|
response to <varname>recovery_min_apply_delay</varname> even while replaying
|
|
the initial portion of WAL needed to make their database state valid.
|
|
Since the standby is useless until it's reached a consistent database
|
|
state, this was deemed unhelpful.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Correctly handle cases where <literal>pg_subtrans</literal> is close to XID
|
|
wraparound during server startup (Jeff Janes)
|
|
</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
|
|
identity is <literal>FULL</literal>, <command>UPDATE</command>s that change a
|
|
primary key within a transaction large enough to be spooled to disk,
|
|
incorrect reports of <quote>subxact logged without previous toplevel
|
|
record</quote>, and incorrect reporting of a transaction's commit time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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
|
|
view has a <literal>WHERE</literal> clause containing a correlated subquery
|
|
(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>
|
|
Fix corner-case crash due to trying to free <function>localeconv()</function>
|
|
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>
|
|
Fix parsing of affix files for <literal>ispell</literal> dictionaries
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The code could go wrong if the affix file contained any characters
|
|
whose byte length changes during case-folding, for
|
|
example <literal>I</literal> in Turkish UTF8 locales.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Avoid use of <function>sscanf()</function> to parse <literal>ispell</literal>
|
|
dictionary files (Artur Zakirov)
|
|
</para>
|
|
|
|
<para>
|
|
This dodges a portability problem on FreeBSD-derived platforms
|
|
(including macOS).
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Fix <application>psql</application>'s tab completion logic to handle multibyte
|
|
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>
|
|
Fix <application>psql</application>'s tab completion for
|
|
<literal>SECURITY LABEL</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Pressing TAB after <literal>SECURITY LABEL</literal> might cause a crash
|
|
or offering of inappropriate keywords.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Make <application>pg_ctl</application> accept a wait timeout from the
|
|
<envar>PGCTLTIMEOUT</envar> environment variable, if none is specified on
|
|
the command line (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This eases testing of slower buildfarm members by allowing them
|
|
to globally specify a longer-than-normal timeout for postmaster
|
|
startup and shutdown.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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
|
|
in <application>pg_ctl</application> (Manuel Mathar)
|
|
</para>
|
|
|
|
<para>
|
|
The previous set of minor releases attempted to
|
|
fix <application>pg_ctl</application> to properly determine whether to send log
|
|
messages to Window's Event Log, but got the test backwards.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Fix <application>pgbench</application> to correctly handle the combination
|
|
of <literal>-C</literal> and <literal>-M prepared</literal> options (Tom Lane)
|
|
</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>
|
|
In <application>pg_upgrade</application>, skip creating a deletion script when
|
|
the new data directory is inside the old data directory (Bruce
|
|
Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Blind application of the script in such cases would result in loss of
|
|
the new data directory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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
|
|
by <filename>contrib/pgstattuple</filename>'s <function>pgstatindex()</function>
|
|
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>
|
|
Remove dependency on <literal>psed</literal> in MSVC builds, since it's no
|
|
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>
|
|
Update time zone data files to <application>tzdata</application> release 2016c
|
|
for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
|
|
(Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
|
|
historical corrections for Lithuania, Moldova, and Russia
|
|
(Kaliningrad, Samara, Volgograd).
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5-1">
|
|
<title>Release 9.5.1</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-02-11</para>
|
|
</formalpara>
|
|
|
|
<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>
|
|
|
|
<!--
|
|
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>
|
|
|
|
<!--
|
|
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>
|
|
|
|
<!--
|
|
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>
|
|
Avoid pushdown of <literal>HAVING</literal> clauses when grouping sets are
|
|
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>
|
|
Fix deparsing of <literal>ON CONFLICT</literal> arbiter <literal>WHERE</literal>
|
|
clauses (Peter Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Make <literal>%h</literal> and <literal>%r</literal> escapes
|
|
in <varname>log_line_prefix</varname> work for messages emitted due
|
|
to <varname>log_connections</varname> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <literal>%h</literal>/<literal>%r</literal> started to work just after a
|
|
new session had emitted the <quote>connection received</quote> log message;
|
|
now they work for that message too.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: 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>
|
|
Fix <application>psql</application>'s <literal>\det</literal> command to interpret its
|
|
pattern argument the same way as other <literal>\d</literal> commands with
|
|
potentially schema-qualified patterns do (Reece Hart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: 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>
|
|
In <application>pg_ctl</application> on Windows, check service status to decide
|
|
where to send output, rather than checking if standard output is a
|
|
terminal (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [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>
|
|
Fix assorted corner-case bugs in <application>pg_dump</application>'s processing
|
|
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
|
|
in <application>pg_dump</application> (Elvis Pranskevichus)
|
|
</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>
|
|
Make <application>pg_dump</application> mark a view's triggers as needing to be
|
|
processed after its rule, to prevent possible failure during
|
|
parallel <application>pg_restore</application> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: 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>
|
|
Install guards in <application>pgbench</application> against corner-case overflow
|
|
conditions during evaluation of script-specified division or modulo
|
|
operators (Fabien Coelho, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [4aecd22d3] 2016-01-05 17:25:12 -0300
|
|
Branch: REL9_5_STABLE [7ef311eb4] 2016-01-05 17:25:12 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Suppress useless warning message when <application>pg_receivexlog</application>
|
|
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>
|
|
Avoid dump/reload problems when using both <application>plpython2</application>
|
|
and <application>plpython3</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In principle, both versions of <application>PL/Python</application> can be used in
|
|
the same database, though not in the same session (because the two
|
|
versions of <application>libpython</application> cannot safely be used concurrently).
|
|
However, <application>pg_restore</application> and <application>pg_upgrade</application> both
|
|
do things that can fall foul of the same-session restriction. Work
|
|
around that by changing the timing of the check.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Fix <application>PL/Python</application> regression tests to pass with Python 3.5
|
|
(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>
|
|
Prevent certain <application>PL/Java</application> parameters from being set by
|
|
non-superusers (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This change mitigates a <application>PL/Java</application> security bug
|
|
(CVE-2016-0766), which was fixed in <application>PL/Java</application> by marking
|
|
these parameters as superuser-only. To fix the security hazard for
|
|
sites that update <productname>PostgreSQL</productname> more frequently
|
|
than <application>PL/Java</application>, make the core code aware of them also.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: 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
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: REL9_4_STABLE [33b26426e] 2016-02-08 11:10:14 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application>-supplied header files to not contain comments
|
|
continued from a preprocessor directive line onto the next line
|
|
(Michael Meskes)
|
|
</para>
|
|
|
|
<para>
|
|
Such a comment is rejected by <application>ecpg</application>. It's not yet clear
|
|
whether <application>ecpg</application> itself should be changed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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>
|
|
Fix <function>hstore_to_json_loose()</function>'s test for whether
|
|
an <type>hstore</type> value can be converted to a JSON number (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this function could be fooled by non-alphanumeric trailing
|
|
characters, leading to emitting syntactically-invalid JSON.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: 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>
|
|
In <filename>contrib/postgres_fdw</filename>, fix bugs triggered by use
|
|
of <literal>tableoid</literal> in data-modifying commands (Etsuro Fujita,
|
|
Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a396144ac] 2016-01-22 11:53:06 -0500
|
|
Branch: REL9_5_STABLE [47acf3add] 2016-01-22 11:53:06 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix ill-advised restriction of <literal>NAMEDATALEN</literal> to be less
|
|
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>
|
|
Ensure that <filename>dynloader.h</filename> is included in the installed
|
|
header files in MSVC builds (Bruce Momjian, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [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>
|
|
Update time zone data files to <application>tzdata</application> release 2016a for
|
|
DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
|
|
Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-5">
|
|
<title>Release 9.5</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-01-07</para>
|
|
</formalpara>
|
|
|
|
<sect2>
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
Major enhancements in <productname>PostgreSQL</productname> 9.5 include:
|
|
</para>
|
|
|
|
<!-- This list duplicates items below, but without authors or details-->
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-on-conflict"><command>INSERT</command></link>s
|
|
that would generate constraint conflicts to be turned into
|
|
<command>UPDATE</command>s or ignored
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
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>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="ddl-rowsecurity">row-level security control</link>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Create mechanisms for tracking
|
|
the <link linkend="replication-origins">progress of replication</link>,
|
|
including methods for identifying the origin of individual changes
|
|
during logical replication
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="brin">Block Range Indexes</link> (<acronym>BRIN</acronym>)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Substantial performance improvements for sorting
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Substantial performance improvements for multi-CPU machines
|
|
</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-03-11 [c6b3c93] Tom Lane: Make operator precedence follow the SQL standar..
|
|
-->
|
|
<para>
|
|
Adjust <link linkend="sql-precedence">operator precedence</link>
|
|
to match the <acronym>SQL</acronym> standard (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The precedence of <literal><=</literal>, <literal>>=</literal>
|
|
and <literal><></literal> has been reduced to match that of
|
|
<literal><</literal>, <literal>></literal>
|
|
and <literal>=</literal>. The precedence of <literal>IS</literal> tests
|
|
(e.g., <replaceable>x</replaceable> <literal>IS NULL</literal>) has been reduced to be
|
|
just below these six comparison operators.
|
|
Also, multi-keyword operators beginning with <literal>NOT</literal> now have
|
|
the precedence of their base operator (for example, <literal>NOT
|
|
BETWEEN</literal> now has the same precedence as <literal>BETWEEN</literal>) whereas
|
|
before they had inconsistent precedence, behaving like <literal>NOT</literal>
|
|
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.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-31 [0badb06] Bruce ..: pg_ctl: change default shutdown mode from 'sma..
|
|
-->
|
|
<para>
|
|
Change <xref linkend="app-pg-ctl">'s default shutdown mode from
|
|
<literal>smart</literal> to <literal>fast</literal> (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This means the default behavior will be to forcibly cancel existing
|
|
database sessions, not simply wait for them to exit.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-04 [1345cc6] Tom Lane: Use standard casting mechanism to convert type..
|
|
-->
|
|
<para>
|
|
Use assignment cast behavior for data type conversions
|
|
in <application>PL/pgSQL</application> assignments, rather than converting to and
|
|
from text (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This change causes conversions of Booleans to strings to
|
|
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
|
|
an integer variable will now assign 4 rather than failing. If no
|
|
assignment-grade cast is defined for the particular source and
|
|
destination types, <application>PL/pgSQL</application> will fall back to its old
|
|
I/O conversion behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-28 [11a020e] Andres..: Allow escaping of option values for options pas..
|
|
-->
|
|
<para>
|
|
Allow characters in <link linkend="libpq-connect-options">server
|
|
command-line options</link> to be escaped with a backslash (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Formerly, spaces in the options string always separated options, so
|
|
there was no way to include a space in an option value. Including
|
|
a backslash in an option value now requires writing <literal>\\</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-08 [9a08841] Stephe..: Change default for include_realm to 1
|
|
-->
|
|
<para>
|
|
Change the default value of the GSSAPI <link
|
|
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)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Replace configuration parameter <varname>checkpoint_segments</varname>
|
|
with <xref linkend="guc-min-wal-size">
|
|
and <xref linkend="guc-max-wal-size"> (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
If you previously adjusted <varname>checkpoint_segments</varname>, the
|
|
following formula will give you an approximately equivalent setting:
|
|
<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
|
|
to be, so adjusting it might no longer be necessary.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
|
|
-->
|
|
<para>
|
|
Control the Linux <acronym>OOM</acronym> killer via new environment
|
|
variables <link
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</envar></link>
|
|
and <link
|
|
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>
|
|
(Gurjeet Singh)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-10-20 [b06f1f2] Robert..: Put back ssl_renegotiation_limit parameter, bu..
|
|
2015-07-28 [6087d95] Andres..: Remove ssl renegotiation support.
|
|
-->
|
|
<para>
|
|
Decommission server configuration
|
|
parameter <varname>ssl_renegotiation_limit</varname>, which was deprecated
|
|
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
|
|
therefore removed support for it from <productname>PostgreSQL</productname>.
|
|
The <varname>ssl_renegotiation_limit</varname> parameter still exists, but
|
|
cannot be set to anything but zero (disabled). It's not documented
|
|
anymore, either.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-05 [525a489] Tom Lane: Remove the last vestige of server-side autocomm..
|
|
-->
|
|
<para>
|
|
Remove server configuration parameter <varname>autocommit</varname>, which
|
|
was already deprecated and non-operational (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-06 [bb8582a] Peter ..: Remove rolcatupdate
|
|
-->
|
|
<para>
|
|
Remove the <link linkend="catalog-pg-authid"><structname>pg_authid</structname></link>
|
|
catalog's <structfield>rolcatupdate</structfield> field, as it had no usefulness
|
|
(Adam Brightwell)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-12-13 [28c3667] Magnus..: Consistently set all fields in pg_stat_replica..
|
|
-->
|
|
<para>
|
|
The <link
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_replication</structname></link>
|
|
system view's <structfield>sent</structfield> field is now NULL, not zero, when
|
|
it has no valid value (Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-07-17 [89ddd29] Andrew..: Support JSON negative array subscripts everywh..
|
|
-->
|
|
<para>
|
|
Allow <type>json</type> and <type>jsonb</type> array extraction operators to
|
|
accept negative subscripts, which count from the end of JSON arrays
|
|
(Peter Geoghegan, Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, these operators returned <literal>NULL</literal> for negative
|
|
subscripts.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 9.5 and the previous major
|
|
release.
|
|
</para>
|
|
|
|
<sect3>
|
|
<title>Server</title>
|
|
|
|
<sect4>
|
|
<title>Indexes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
-->
|
|
<para>
|
|
Add <link linkend="brin">Block Range Indexes</link> (<acronym>BRIN</acronym>)
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
<acronym>BRIN</acronym> indexes store only summary data (such as minimum
|
|
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.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-15 [35fcb1b] Heikki..: Allow GiST distance function to return merely ..
|
|
-->
|
|
<para>
|
|
Allow queries to perform accurate distance filtering of
|
|
bounding-box-indexed objects (polygons, circles) using <link
|
|
linkend="gist">GiST</link> indexes (Alexander Korotkov, Heikki
|
|
Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
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.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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 ..
|
|
-->
|
|
<para>
|
|
Allow <link linkend="gist">GiST</link> indexes to perform index-only
|
|
scans (Anastasia Lubennikova, Heikki Linnakangas, Andreas Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Add GUC and storage parameter to set the maximum size of GIN pending list.
|
|
-->
|
|
<para>
|
|
Add configuration parameter <xref linkend="guc-gin-pending-list-limit">
|
|
to control the size of <acronym>GIN</acronym> pending lists (Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
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
|
|
appropriate values for <varname>work_mem</varname> are often much too large
|
|
for this purpose.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-10 [84aa8ba] Bruce ..: Issue a warning during the creation of hash in..
|
|
-->
|
|
<para>
|
|
Issue a warning during the creation of <link
|
|
linkend="indexes-types">hash</link> indexes because they are not
|
|
crash-safe (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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 ..
|
|
-->
|
|
<para>
|
|
Improve the speed of sorting of <type>varchar</type>, <type>text</type>,
|
|
and <type>numeric</type> fields via <quote>abbreviated</quote> keys
|
|
(Peter Geoghegan, Andrew Gierth, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-07 [5ea86e6] Robert..: Use the sortsupport infrastructure in more cas..
|
|
-->
|
|
<para>
|
|
Extend the infrastructure that allows sorting to be performed by
|
|
inlined, non-<acronym>SQL</acronym>-callable comparison functions to
|
|
cover <command>CREATE INDEX</command>, <command>REINDEX</command>, and
|
|
<command>CLUSTER</command> (Peter Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Improve performance of hash joins (Tomas Vondra, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-25 [5d7962c] Robert..: Change locking regimen around buffer replacement.
|
|
2014-12-25 [d72731a] Andres..: Lockless StrategyGetBuffer clock sweep hot path.
|
|
-->
|
|
<para>
|
|
Improve concurrency of shared buffer replacement
|
|
(Robert Haas, Amit Kapila, Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-25 [2ed5b87f] Kevin ..: Reduce pinning and buffer content locking for b..
|
|
-->
|
|
<para>
|
|
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>
|
|
Make per-backend tracking of buffer pins more memory-efficient
|
|
(Andres Freund)
|
|
</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
|
|
systems with multiple <acronym>CPU</acronym> sockets.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-15 [f15821e] Tom Lane: Allow join removal in some cases involving a le..
|
|
-->
|
|
<para>
|
|
Allow the optimizer to remove unnecessary references to left-joined
|
|
subqueries (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-27 [d222585] Tom Lane: Allow pushdown of WHERE quals into subqueries w..
|
|
-->
|
|
<para>
|
|
Allow pushdown of query restrictions into subqueries with <link
|
|
linkend="tutorial-window">window functions</link>, where appropriate
|
|
(David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-27 [dcbf594] Stephe..: Improve qual pushdown for RLS and SB views
|
|
-->
|
|
<para>
|
|
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)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
appears in <literal>WHERE</literal> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-09-23 [cfb2024] Tom Lane: Make ANALYZE compute basic statistics even for..
|
|
-->
|
|
<para>
|
|
Make <command>ANALYZE</command> compute basic statistics (null fraction and
|
|
average column width) even for columns whose data type lacks an
|
|
equality function (Oleksandr Shulgin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
|
|
-->
|
|
<para>
|
|
Speed up <acronym>CRC</acronym> (cyclic redundancy check) computations
|
|
and switch to CRC-32C (Abhijit Menon-Sen, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<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..
|
|
-->
|
|
<para>
|
|
Speed up <command>CREATE INDEX</command> by avoiding unnecessary memory
|
|
copies (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-02 [3acc10c9] Robert..: Increase the number of buffer mapping partitio..
|
|
-->
|
|
<para>
|
|
Increase the number of buffer mapping partitions (Amit Kapila,
|
|
Andres Freund, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This improves performance for highly concurrent workloads.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-03 [4ff695b1] Alvaro..: Add log_min_autovacuum_duration per-table option
|
|
-->
|
|
<para>
|
|
Add per-table autovacuum logging control via new
|
|
<varname>log_autovacuum_min_duration</varname> storage parameter
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-29 [51adcaa] Andres..: Add cluster_name GUC which is included in proce..
|
|
-->
|
|
<para>
|
|
Add new configuration parameter <xref linkend="guc-cluster-name">
|
|
(Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This string, typically set in <link
|
|
linkend="config-setting-configuration-file"><filename>postgresql.conf</filename></link>,
|
|
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.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-13 [fe550b2] Tom Lane: Invent PGC_SU_BACKEND and mark log_connections..
|
|
-->
|
|
<para>
|
|
Prevent non-superusers from changing <xref
|
|
linkend="guc-log-disconnections"> on connection startup (Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><acronym>SSL</acronym></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-12 [acd08d7] Heikki..: Support Subject Alternative Names in SSL server..
|
|
-->
|
|
<para>
|
|
Check <link linkend="libpq-ssl"><quote>Subject Alternative
|
|
Names</quote></link> in <acronym>SSL</acronym> server certificates, if present
|
|
(Alexey Klyukin)
|
|
</para>
|
|
|
|
<para>
|
|
When they are present, this replaces checks against the certificate's
|
|
<quote>Common Name</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-12 [9029f4b] Magnus..: Add system view pg_stat_ssl
|
|
-->
|
|
<para>
|
|
Add system view <link
|
|
linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</structname></link> to report
|
|
<acronym>SSL</acronym> connection information (Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL ..
|
|
-->
|
|
<para>
|
|
Add <application>libpq</application> functions to return <acronym>SSL</acronym>
|
|
information in an implementation-independent way (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
While <link linkend="libpq-pqgetssl"><function>PQgetssl()</function></link> can
|
|
still be used to call <productname>OpenSSL</productname> functions, it is now
|
|
considered deprecated because future versions
|
|
of <application>libpq</application> might support other <acronym>SSL</acronym>
|
|
implementations. When possible, use the new
|
|
functions <link
|
|
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.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-09 [8a0d34e4] Peter ..: libpq: Don't overwrite existing OpenSSL thread..
|
|
-->
|
|
<para>
|
|
Make <application>libpq</application> honor any <productname>OpenSSL</productname>
|
|
thread callbacks (Jan Urbanski)
|
|
</para>
|
|
|
|
<para>
|
|
Previously they were overwritten.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Server Settings</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Replace configuration parameter <varname>checkpoint_segments</varname>
|
|
with <xref linkend="guc-min-wal-size">
|
|
and <xref linkend="guc-max-wal-size"> (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This change allows the allocation of a large number of <acronym>WAL</acronym>
|
|
files without keeping them after they are no longer needed.
|
|
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>.
|
|
Also note that standby servers perform restartpoints to try to limit
|
|
their WAL space consumption to <varname>max_wal_size</varname>; previously
|
|
they did not pay any attention to <varname>checkpoint_segments</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
|
|
-->
|
|
<para>
|
|
Control the Linux <acronym>OOM</acronym> killer via new environment
|
|
variables <link
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</envar></link>
|
|
and <link
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</envar></link>
|
|
(Gurjeet Singh)
|
|
</para>
|
|
|
|
<para>
|
|
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.
|
|
The new behavior is available in all builds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-03 [73c986a] Alvaro..: Keep track of transaction commit timestamps
|
|
-->
|
|
<para>
|
|
Allow recording of transaction
|
|
commit time stamps when configuration parameter <xref
|
|
linkend="guc-track-commit-timestamp">
|
|
is enabled (Álvaro Herrera, Petr Jelínek)
|
|
</para>
|
|
|
|
<para>
|
|
Time stamp information can be accessed using functions <link
|
|
linkend="functions-commit-timestamp"><function>pg_xact_commit_timestamp()</function></link>
|
|
and <function>pg_last_committed_xact()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-22 [584e35d] Peter ..: Change local_preload_libraries to PGC_USERSET
|
|
-->
|
|
<para>
|
|
Allow <xref linkend="guc-local-preload-libraries"> to be set
|
|
by <command>ALTER ROLE SET</command> (Peter Eisentraut, Kyotaro Horiguchi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-03 [a75fb9b] Alvaro..: Have autovacuum workers listen to SIGHUP, too
|
|
-->
|
|
<para>
|
|
Allow <link linkend="autovacuum">autovacuum workers</link>
|
|
to respond to configuration parameter changes during a run
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-20 [3bdcf6a] Andres..: Don't allow to disable backend assertions via t..
|
|
-->
|
|
<para>
|
|
Make configuration parameter <xref linkend="guc-debug-assertions">
|
|
read-only (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This means that assertions can no longer be turned
|
|
off if they were enabled at compile time, allowing for more
|
|
efficient code optimization. This change also removes the <link
|
|
linkend="app-postgres-options">postgres</link> <option>-A</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-18 [7feaccc] Peter ..: Allow setting effective_io_concurrency even on..
|
|
-->
|
|
<para>
|
|
Allow setting <xref linkend="guc-effective-io-concurrency"> on
|
|
systems where it has no effect (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Add system view <link
|
|
linkend="view-pg-file-settings"><structname>pg_file_settings</structname></link>
|
|
to show the contents of the server's configuration files
|
|
(Sawada Masahiko)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-14 [a486e35] Peter ..: Add pg_settings.pending_restart column
|
|
-->
|
|
<para>
|
|
Add <structname>pending_restart</structname> to the system view <link
|
|
linkend="view-pg-settings"><structname>pg_settings</structname></link> to
|
|
indicate a change has been made but will not take effect until a
|
|
database restart (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-02 [bd3b7a9] Fujii ..: Support ALTER SYSTEM RESET command.
|
|
-->
|
|
<para>
|
|
Allow <link linkend="sql-altersystem"><command>ALTER SYSTEM</command></link>
|
|
values to be reset with <command>ALTER SYSTEM RESET</command> (Vik
|
|
Fearing)
|
|
</para>
|
|
|
|
<para>
|
|
This command removes the specified setting
|
|
from <filename>postgresql.auto.conf</filename>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Replication and Recovery</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-29 [5aa2350] Andres..: Introduce replication progress tracking infrast..
|
|
-->
|
|
<para>
|
|
Create mechanisms for tracking
|
|
the <link linkend="replication-origins">progress of replication</link>,
|
|
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-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>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Add <link linkend="recovery-config"><filename>recovery.conf</filename></link>
|
|
parameter <link
|
|
linkend="recovery-target-action"><varname>recovery_target_action</varname></link>
|
|
to control post-recovery activity (Petr Jelínek)
|
|
</para>
|
|
|
|
<para>
|
|
This replaces the old parameter <varname>pause_at_recovery_target</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-15 [ffd3774] Heikki..: Add archive_mode='always' option.
|
|
-->
|
|
<para>
|
|
Add new <xref linkend="guc-archive-mode"> value
|
|
<literal>always</literal> to allow standbys to always archive received
|
|
<acronym>WAL</acronym> files (Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-02-23 [5d2b45e] Fujii ..: Add GUC to control the time to wait before retr..
|
|
-->
|
|
<para>
|
|
Add configuration
|
|
parameter <xref linkend="guc-wal-retrieve-retry-interval"> to
|
|
control <acronym>WAL</acronym> read retry after failure
|
|
(Alexey Vasiliev, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly helpful for warm standbys.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-11 [57aa5b2] Fujii ..: Add GUC to enable compression of full page imag..
|
|
-->
|
|
<para>
|
|
Allow compression of full-page images stored in <acronym>WAL</acronym>
|
|
(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-05-08 [de76884] Heikki..: At promotion, archive last segment from old tim..
|
|
-->
|
|
<para>
|
|
Archive <acronym>WAL</acronym> files with suffix <literal>.partial</literal>
|
|
during standby promotion (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-13 [4ad2a54] Fujii ..: Add GUC to enable logging of replication comman..
|
|
-->
|
|
<para>
|
|
Add configuration parameter <xref
|
|
linkend="guc-log-replication-commands">
|
|
to log replication commands (Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
By default, replication commands, e.g. <link
|
|
linkend="protocol-replication"><literal>IDENTIFY_SYSTEM</literal></link>,
|
|
are not logged, even when <xref linkend="guc-log-statement"> is set
|
|
to <literal>all</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
|
|
-->
|
|
<para>
|
|
Report the processes holding replication slots in <link
|
|
linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname></link>
|
|
(Craig Ringer)
|
|
</para>
|
|
|
|
<para>
|
|
The new output column is <structname>active_pid</structname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-25 [b3fc672] Heikki..: Allow using connection URI in primary_conninfo.
|
|
-->
|
|
<para>
|
|
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>
|
|
(Alexander Shulgin)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Queries</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
Allow <link linkend="sql-on-conflict"><command>INSERT</command></link>s
|
|
that would generate constraint conflicts to be turned into
|
|
<command>UPDATE</command>s or ignored (Peter Geoghegan, Heikki
|
|
Linnakangas, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</command>.
|
|
This is the Postgres implementation of the popular
|
|
<command>UPSERT</command> command.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-16 [f3d3118] Andres..: Support GROUPING SETS, CUBE and ROLLUP.
|
|
-->
|
|
<para>
|
|
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>
|
|
(Andrew Gierth, Atri Sharma)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-18 [8f889b1] Tom Lane: Implement UPDATE tab SET (col1,col2,...) = (SEL..
|
|
-->
|
|
<para>
|
|
Allow setting multiple target columns in
|
|
an <link linkend="sql-update"><command>UPDATE</command></link> from the result of
|
|
a single sub-SELECT (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished using the syntax <command>UPDATE tab SET
|
|
(col1, col2, ...) = (SELECT ...)</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-07 [df630b0] Alvaro..: Implement SKIP LOCKED for row-level locks
|
|
-->
|
|
<para>
|
|
Add <link linkend="sql-select"><command>SELECT</command></link> option
|
|
<literal>SKIP LOCKED</literal> to skip locked rows (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This does not throw an error for locked rows like
|
|
<literal>NOWAIT</literal> does.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-15 [f6d208d] Simon ..: TABLESAMPLE, SQL Standard and extensible
|
|
-->
|
|
<para>
|
|
Add <link linkend="sql-select"><command>SELECT</command></link> option
|
|
<literal>TABLESAMPLE</literal> to return a subset of a table (Petr
|
|
Jelínek)
|
|
</para>
|
|
|
|
<para>
|
|
This feature supports the SQL-standard table sampling methods.
|
|
In addition, there are provisions
|
|
for <link linkend="tablesample-method">user-defined
|
|
table sampling methods</link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-11 [e529cd4] Robert..: Suggest to the user the column they may have m..
|
|
-->
|
|
<para>
|
|
Suggest possible matches for mistyped column names (Peter
|
|
Geoghegan, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-01-16 [20af53d] Tom Lane: Show sort ordering options in EXPLAIN output.
|
|
-->
|
|
<para>
|
|
Add more details about sort ordering in <link
|
|
linkend="sql-explain"><command>EXPLAIN</command></link> output (Marius Timmer,
|
|
Lukas Kreft, Arne Scheffer)
|
|
</para>
|
|
|
|
<para>
|
|
Details include <literal>COLLATE</literal>, <literal>DESC</literal>,
|
|
<literal>USING</literal>, and <literal>NULLS FIRST</literal><literal>/LAST</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-18 [35192f0] Alvaro..: Have VACUUM log number of skipped pages due to ..
|
|
-->
|
|
<para>
|
|
Make <link linkend="sql-vacuum"><command>VACUUM</command></link> log the
|
|
number of pages skipped due to pins (Jim Nasby)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-02-20 [d42358e] Alvaro..: Have TRUNCATE update pgstat tuple counters
|
|
-->
|
|
<para>
|
|
Make <link linkend="sql-truncate"><command>TRUNCATE</command></link> properly
|
|
update the <literal>pg_stat</literal>* tuple counters (Alexander Shulgin)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="sql-reindex"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-09 [fe263d1] Simon ..: REINDEX SCHEMA
|
|
-->
|
|
<para>
|
|
Allow <command>REINDEX</command> to reindex an entire schema using the
|
|
<literal>SCHEMA</literal> option (Sawada Masahiko)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-15 [ecd222e] Fujii ..: Support VERBOSE option in REINDEX command.
|
|
-->
|
|
<para>
|
|
Add <literal>VERBOSE</literal> option to <command>REINDEX</command> (Sawada
|
|
Masahiko)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-09 [ae4e688] Simon ..: Silence REINDEX
|
|
-->
|
|
<para>
|
|
Prevent <command>REINDEX DATABASE</command> and <command>SCHEMA</command>
|
|
from outputting object names, unless <literal>VERBOSE</literal> is used
|
|
(Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-09 [17d436d] Fujii ..: Remove obsolete FORCE option from REINDEX.
|
|
-->
|
|
<para>
|
|
Remove obsolete <literal>FORCE</literal> option from <command>REINDEX</command>
|
|
(Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Object Manipulation</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-19 [491c029] Stephe..: Row-Level Security Policies (RLS)
|
|
-->
|
|
<para>
|
|
Add <link linkend="ddl-rowsecurity">row-level security control</link>
|
|
(Craig Ringer, KaiGai Kohei, Adam Brightwell, Dean Rasheed,
|
|
Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
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
|
|
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
|
|
ROW SECURITY</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-22 [f41872d] Alvaro..: Implement ALTER TABLE .. SET LOGGED / UNLOGGED
|
|
-->
|
|
<para>
|
|
Allow changing of the <acronym>WAL</acronym>
|
|
logging status of a table after creation with <link
|
|
linkend="sql-altertable"><command>ALTER TABLE ... SET LOGGED /
|
|
UNLOGGED</command></link> (Fabrízio de Royes Mello)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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 ..
|
|
-->
|
|
<para>
|
|
Add <literal>IF NOT EXISTS</literal> clause to <link
|
|
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
|
|
MATERIALIZED VIEW</command></link> (Fabrízio de Royes Mello)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-24 [1d8198b] Bruce ..: Add support for ALTER TABLE IF EXISTS ... RENAM..
|
|
-->
|
|
<para>
|
|
Add support for <literal>IF EXISTS</literal> to <link
|
|
linkend="sql-altertable"><command>ALTER TABLE ... RENAME
|
|
CONSTRAINT</command></link> (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-09 [31eae60] Alvaro..: Allow CURRENT/SESSION_USER to be used in certai..
|
|
-->
|
|
<para>
|
|
Allow some DDL commands to accept <literal>CURRENT_USER</literal>
|
|
or <literal>SESSION_USER</literal>, meaning the current user or session
|
|
user, in place of a specific user name (Kyotaro Horiguchi,
|
|
Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This feature is now supported in
|
|
<xref linkend="sql-alteruser">, <xref linkend="sql-altergroup">,
|
|
<xref linkend="sql-alterrole">, <xref linkend="sql-grant">,
|
|
and <command>ALTER <replaceable>object</replaceable> OWNER TO</command> commands.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-23 [7eca575] Alvaro..: get_object_address: separate domain constraints..
|
|
-->
|
|
<para>
|
|
Support comments on <link linkend="sql-createdomain">domain
|
|
constraints</link> (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-05 [0ef0396] Simon ..: Reduce lock levels of some trigger DDL and add ..
|
|
-->
|
|
<para>
|
|
Reduce lock levels of some create and alter trigger and foreign
|
|
key commands (Simon Riggs, Andreas Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-11 [fa26424] Stephe..: Allow LOCK TABLE .. ROW EXCLUSIVE MODE with IN..
|
|
-->
|
|
<para>
|
|
Allow <link linkend="sql-lock"><command>LOCK TABLE ... ROW EXCLUSIVE
|
|
MODE</command></link> for those with <command>INSERT</command> privileges on the
|
|
target table (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this command required <command>UPDATE</command>, <command>DELETE</command>,
|
|
or <command>TRUNCATE</command> privileges.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-23 [e5f455f] Tom Lane: Apply table and domain CHECK constraints in nam.
|
|
-->
|
|
<para>
|
|
Apply table and domain <literal>CHECK</literal> constraints in order by name
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The previous ordering was indeterminate.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Allow <link
|
|
linkend="sql-createdatabase"><command>CREATE</command></link>/<link
|
|
linkend="sql-alterdatabase"><command>ALTER DATABASE</command></link>
|
|
to manipulate <structname>datistemplate</structname> and
|
|
<structname>datallowconn</structname> (Vik Fearing)
|
|
</para>
|
|
|
|
<para>
|
|
This allows these per-database settings to be
|
|
changed without manually modifying the <link
|
|
linkend="catalog-pg-database"><structname>pg_database</structname></link>
|
|
system catalog.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="ddl-foreign-data">Foreign Tables</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-10 [59efda3] Tom Lane: Implement IMPORT FOREIGN SCHEMA.
|
|
-->
|
|
<para>
|
|
Add support for <xref linkend="sql-importforeignschema">
|
|
(Ronan Dunklau, Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This command allows automatic creation of local foreign tables
|
|
that match the structure of existing tables on a remote server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-17 [fc2ac1f] Tom Lane: Allow CHECK constraints to be placed on foreign..
|
|
-->
|
|
<para>
|
|
Allow <literal>CHECK</literal> constraints to be placed on foreign tables
|
|
(Shigeru Hanada, Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
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
|
|
exclusion</link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-22 [cb1ca4d] Tom Lane: Allow foreign tables to participate in inherita..
|
|
-->
|
|
<para>
|
|
Allow foreign tables to participate in inheritance (Shigeru Hanada,
|
|
Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
To let this work naturally, foreign tables are now allowed to have
|
|
check constraints marked as not valid, and to set storage
|
|
and <type>OID</type> characteristics, even though these operations are
|
|
effectively no-ops for a foreign table.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Allow foreign data wrappers and custom scans to implement join
|
|
pushdown (KaiGai Kohei)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><link linkend="event-triggers">Event Triggers</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-11 [b488c58] Alvaro..: Allow on-the-fly capture of DDL event details
|
|
-->
|
|
<para>
|
|
Whenever a <literal>ddl_command_end</literal> event trigger is installed,
|
|
capture details of <acronym>DDL</acronym> activity for it to inspect
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This information is available through a set-returning function <link
|
|
linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands()</function></link>,
|
|
or by inspection of C data structures if that function doesn't
|
|
provide enough detail.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-08 [618c943] Simon ..: Event Trigger for table_rewrite
|
|
-->
|
|
<para>
|
|
Allow event triggers on table rewrites caused by <link
|
|
linkend="sql-altertable"><command>ALTER TABLE</command></link> (Dimitri
|
|
Fontaine)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-02-23 [296f3a6] Alvaro..: Support more commands in event triggers
|
|
-->
|
|
<para>
|
|
Add event trigger support for database-level <link
|
|
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)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Add columns to the output of <link
|
|
linkend="pg-event-trigger-sql-drop-functions"><function>pg_event_trigger_dropped_objects</function></link>
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This allows simpler processing of delete operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-09 [57b1085] Peter ..: Allow empty content in xml type
|
|
-->
|
|
<para>
|
|
Allow the <link linkend="datatype-xml"><type>xml</type></link> data type
|
|
to accept empty or all-whitespace content values (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This is required by the <acronym>SQL</acronym>/<acronym>XML</acronym>
|
|
specification.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-21 [6f04368] Peter ..: Allow input format xxxx-xxxx-xxxx for macaddr ..
|
|
-->
|
|
<para>
|
|
Allow <link linkend="datatype-macaddr"><type>macaddr</type></link> input
|
|
using the format <literal>xxxx-xxxx-xxxx</literal> (Herwin Weststrate)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-18 [417f924] Bruce ..: interval: tighten precision specification
|
|
-->
|
|
<para>
|
|
Disallow non-SQL-standard syntax for <link
|
|
linkend="datatype-interval-input"><type>interval</type></link> with
|
|
both precision and field specifications (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Per the standard, such type specifications should be written as,
|
|
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
|
|
written in the standard way.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-01 [89840d7] Tom Lane: Provide real selectivity estimators for inet/ci..
|
|
-->
|
|
<para>
|
|
Add selectivity estimators for <link
|
|
linkend="datatype-inet"><type>inet</type></link>/<link
|
|
linkend="datatype-cidr"><type>cidr</type></link> operators and improve
|
|
estimators for text search functions (Emre Hasegeli, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<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
|
|
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
|
|
or namespace (Kyotaro Horiguchi)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="datatype-json"><acronym>JSON</acronym></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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 ..
|
|
-->
|
|
<para>
|
|
Add <type>jsonb</type> functions <link
|
|
linkend="functions-json-processing-table"><function>jsonb_set()</function></link>
|
|
and <link
|
|
linkend="functions-json-processing-table"><function>jsonb_pretty()</function></link>
|
|
(Dmitry Dolgov, Andrew Dunstan, Petr Jelínek)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-12 [7e354ab] Andrew..: Add several generator functions for jsonb that ..
|
|
-->
|
|
<para>
|
|
Add <type>jsonb</type> generator functions <link
|
|
linkend="functions-json-creation-table"><function>to_jsonb()</function></link>,
|
|
<link
|
|
linkend="functions-json-creation-table"><function>jsonb_object()</function></link>,
|
|
<link
|
|
linkend="functions-json-creation-table"><function>jsonb_build_object()</function></link>,
|
|
<link
|
|
linkend="functions-json-creation-table"><function>jsonb_build_array()</function></link>,
|
|
<link
|
|
linkend="functions-aggregate-table"><function>jsonb_agg()</function></link>,
|
|
and <link
|
|
linkend="functions-aggregate-table"><function>jsonb_object_agg()</function></link>
|
|
(Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
Equivalent functions already existed for type <type>json</type>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-03 [b67f1ce] Tom Lane: Reduce json <=> jsonb casts from explicit-only..
|
|
-->
|
|
<para>
|
|
Reduce casting requirements to/from <link
|
|
linkend="datatype-json"><type>json</type></link> and <link
|
|
linkend="datatype-json"><type>jsonb</type></link> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-06-11 [908e234] Andrew..: Rename jsonb - text[] operator to #- to avoid a..
|
|
-->
|
|
<para>
|
|
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)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
|
|
-->
|
|
<para>
|
|
Add <type>jsonb</type> <link
|
|
linkend="functions-jsonb-op-table"><literal>||</literal></link> operator
|
|
(Dmitry Dolgov, Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-12 [237a882] Andrew..: Add json_strip_nulls and jsonb_strip_nulls fun..
|
|
-->
|
|
<para>
|
|
Add <link
|
|
linkend="functions-json-processing-table"><function>json_strip_nulls()</function></link>
|
|
and <link
|
|
linkend="functions-json-processing-table"><function>jsonb_strip_nulls()</function></link>
|
|
functions to remove JSON null values from documents
|
|
(Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-11 [1871c89] Fujii ..: Add generate_series(numeric, numeric).
|
|
-->
|
|
<para>
|
|
Add <link linkend="functions-srf"><function>generate_series()</function></link>
|
|
for <type>numeric</type> values (Plato Malugin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-25 [bac2739] Tom Lane: Support arrays as input to array_agg() and ARRA..
|
|
-->
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-aggregate-table"><function>array_agg()</function></link> and
|
|
<function>ARRAY()</function> to take arrays as inputs (Ali Akbar, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-18 [13dbc7a] Alvaro..: array_offset() and array_offsets()
|
|
2015-03-30 [97690ea] Alvaro..: Change array_offset to return subscripts, not o..
|
|
-->
|
|
<para>
|
|
Add functions <link
|
|
linkend="array-functions-table"><function>array_position()</function></link>
|
|
and <link
|
|
linkend="array-functions-table"><function>array_positions()</function></link>
|
|
to return subscripts of array values (Pavel Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-15 [4520ba6] Heikki..: Add point <-> polygon distance operator.
|
|
-->
|
|
<para>
|
|
Add a <type>point</type>-to-<type>polygon</type> distance operator
|
|
<link linkend="functions-geometry-op-table"><-></link>
|
|
(Alexander Korotkov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-27 [8167a38] Jeff D..: Allow multibyte characters as escape in SIMILA..
|
|
-->
|
|
<para>
|
|
Allow multibyte characters as escapes in <link
|
|
linkend="functions-similarto-regexp"><literal>SIMILAR TO</literal></link>
|
|
and <link linkend="functions-string-sql"><literal>SUBSTRING</literal></link>
|
|
(Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only a single-byte character was allowed as an escape.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-09 [e80252d] Tom Lane: Add width_bucket(anyelement, anyarray).
|
|
-->
|
|
<para>
|
|
Add a <link
|
|
linkend="functions-math-func-table"><function>width_bucket()</function></link>
|
|
variant that supports any sortable data type and non-uniform bucket
|
|
widths (Petr Jelínek)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-06-28 [cb2acb1] Heikki..: Add missing_ok option to the SQL functions for..
|
|
-->
|
|
<para>
|
|
Add an optional <replaceable>missing_ok</replaceable> argument to <link
|
|
linkend="functions-admin-genfile-table"><function>pg_read_file()</function></link>
|
|
and related functions (Michael Paquier, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-10 [865f14a] Robert..: Allow named parameters to be specified using =>..
|
|
-->
|
|
<para>
|
|
Allow <link linkend="sql-syntax-calling-funcs"><literal>=></literal></link>
|
|
to specify named parameters in function calls (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
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
|
|
warnings since PostgreSQL 9.0.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-25 [06bf0dd] Tom Lane: Upgrade src/port/rint.c to be POSIX-compliant.
|
|
-->
|
|
<para>
|
|
Add <acronym>POSIX</acronym>-compliant rounding for platforms that use
|
|
PostgreSQL-supplied rounding functions (Pedro Gimeno Fortea)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title>System Information Functions and Views</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-23 [d7ee82e] Alvaro..: Add SQL-callable pg_get_object_address
|
|
2014-12-30 [a676201] Alvaro..: Add pg_identify_object_as_address
|
|
-->
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-object-table"><function>pg_get_object_address()</function></link>
|
|
to return <type>OID</type>s that uniquely
|
|
identify an object, and function <link
|
|
linkend="functions-info-object-table"><function>pg_identify_object_as_address()</function></link>
|
|
to return object information based on <type>OID</type>s (Álvaro
|
|
Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-19 [bf03889] Stephe..: GetUserId() changes to has_privs_of_role()
|
|
-->
|
|
<para>
|
|
Loosen security checks for viewing queries in <link
|
|
linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname></link>,
|
|
executing <link
|
|
linkend="functions-admin-signal-table"><function>pg_cancel_backend()</function></link>,
|
|
and executing <link
|
|
linkend="functions-admin-signal-table"><function>pg_terminate_backend()</function></link>
|
|
(Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only the specific role owning the target session could
|
|
perform these operations; now membership in that role is sufficient.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-02-19 [2fb7a75] Tom Lane: Add pg_stat_get_snapshot_timestamp() to show s..
|
|
-->
|
|
<para>
|
|
Add <link
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_get_snapshot_timestamp()</function></link>
|
|
to output the time stamp of the statistics snapshot (Matt Kelly)
|
|
</para>
|
|
|
|
<para>
|
|
This represents the last time the snapshot file was written to
|
|
the file system.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-10 [36ad1a8] Bruce ..: Implement mxid_age() to compute multi-xid age
|
|
-->
|
|
<para>
|
|
Add <link
|
|
linkend="vacuum-for-multixact-wraparound"><function>mxid_age()</function></link>
|
|
to compute multi-xid age (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Aggregates</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-28 [6c40f83] Tom Lane: Add min and max aggregates for inet/cidr data t..
|
|
-->
|
|
<para>
|
|
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
|
|
Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-20 [8122e14] Andres..: Add, optional, support for 128bit integers.
|
|
2015-03-20 [959277a] Andres..: Use 128-bit math to accelerate some aggregation..
|
|
-->
|
|
<para>
|
|
Use 128-bit integers, where supported, as accumulators for some
|
|
aggregate functions (Andreas Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Server-Side Languages</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-03 [8b6010b] Tom Lane: Improve support for composite types in PL/Python.
|
|
-->
|
|
<para>
|
|
Improve support for composite types in <link
|
|
linkend="plpython"><application>PL/Python</application></link> (Ed Behn, Ronan
|
|
Dunklau)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <application>PL/Python</application> functions to return arrays
|
|
of composite types.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-11 [1ce7a57] Peter ..: PL/Python: Avoid lossiness in float conversion
|
|
-->
|
|
<para>
|
|
Reduce lossiness of <link
|
|
linkend="plpython"><application>PL/Python</application></link> floating-point value
|
|
conversions (Marko Kreen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-26 [cac7658] Peter ..: Add transforms feature
|
|
-->
|
|
<para>
|
|
Allow specification of conversion routines between <acronym>SQL</acronym>
|
|
data types and data types of procedural languages (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This change adds new commands <link
|
|
linkend="sql-createtransform"><command>CREATE</command></link>/<link
|
|
linkend="sql-droptransform"><command>DROP TRANSFORM</command></link>.
|
|
This also adds optional transformations between the <link
|
|
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>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Improve <link linkend="plpgsql"><application>PL/pgSQL</application></link> array
|
|
performance (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-25 [a4847fc] Tom Lane: Add an ASSERT statement in plpgsql.
|
|
-->
|
|
<para>
|
|
Add an <link linkend="plpgsql-statements-assert"><command>ASSERT</command></link>
|
|
statement in <application>PL/pgSQL</application> (Pavel Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-25 [bb1b8f6] Tom Lane: De-reserve most statement-introducing keywords ..
|
|
-->
|
|
<para>
|
|
Allow more <link linkend="plpgsql"><application>PL/pgSQL</application></link>
|
|
keywords to be used as identifiers (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
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/
|
|
-->
|
|
<para>
|
|
Move <link
|
|
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)
|
|
</para>
|
|
|
|
<para>
|
|
This should result in these programs being installed by default in
|
|
most installations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-23 [61081e7] Heikki..: Add pg_rewind, for re-synchronizing a master se..
|
|
-->
|
|
<para>
|
|
Add <link linkend="app-pgrewind"><application>pg_rewind</application></link>,
|
|
which allows re-synchronizing a master server after failback
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-06 [d9f38c7] Andres..: Add support for managing physical replication s..
|
|
-->
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pgreceivewal"><application>pg_receivexlog</application></link>
|
|
to manage physical replication slots (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled via new <option>--create-slot</option> and
|
|
<option>--drop-slot</option> options.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-18 [c4f99d2] Fujii ..: Add ––synchronous option to pg_receivexlog, for..
|
|
-->
|
|
<para>
|
|
Allow <link
|
|
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)
|
|
</para>
|
|
|
|
<para>
|
|
Without this, <acronym>WAL</acronym> files are fsync'ed only on close.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-01-23 [a179232] Alvaro..: vacuumdb: enable parallel mode
|
|
-->
|
|
<para>
|
|
Allow <link linkend="app-vacuumdb"><application>vacuumdb</application></link> to
|
|
vacuum in parallel using new <option>--jobs</option> option (Dilip Kumar)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-11-12 [5094da9] Alvaro..: vacuumdb: don't prompt for passwords over and ..
|
|
-->
|
|
<para>
|
|
In <link linkend="app-vacuumdb"><application>vacuumdb</application></link>, do not
|
|
prompt for the same password repeatedly when multiple connections
|
|
are necessary (Haribabu Kommi, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-15 [458a077] Fujii ..: Support ––verbose option in reindexdb.
|
|
-->
|
|
<para>
|
|
Add <option>--verbose</option> option to <link
|
|
linkend="app-reindexdb"><application>reindexdb</application></link> (Sawada
|
|
Masahiko)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-12 [72d422a] Andrew..: Map basebackup tablespaces using a tablespace_..
|
|
-->
|
|
<para>
|
|
Make <link linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
use a tablespace mapping file when using <application>tar</application> format,
|
|
to support symbolic links and file paths of 100+ characters in length
|
|
on <systemitem class="osname">MS Windows</systemitem> (Amit Kapila)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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..
|
|
-->
|
|
<para>
|
|
Add <link linkend="pgwaldump"><application>pg_xlogdump</application></link> option
|
|
<option>--stats</option> to display summary statistics (Abhijit Menon-Sen)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-psql"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-31 [9d9991c] Bruce ..: psql: add asciidoc output format
|
|
-->
|
|
<para>
|
|
Allow <application>psql</application> to produce AsciiDoc output (Szymon Guz)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-10 [5b214c5] Fujii ..: Add new ECHO mode 'errors' that displays only ..
|
|
-->
|
|
<para>
|
|
Add an <literal>errors</literal> mode that displays only failed commands
|
|
to <application>psql</application>'s <varname>ECHO</varname> variable
|
|
(Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
This behavior can also be selected with <application>psql</application>'s
|
|
<option>-b</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql
|
|
-->
|
|
<para>
|
|
Provide separate column, header, and border linestyle control
|
|
in <application>psql</application>'s unicode linestyle (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
Single or double lines are supported; the default is
|
|
<literal>single</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-02 [51bb795] Andres..: Add psql PROMPT variable showing which line of ..
|
|
-->
|
|
<para>
|
|
Add new option <literal>%l</literal> in <application>psql</application>'s <link
|
|
linkend="app-psql-variables"><envar>PROMPT</envar></link> variables
|
|
to display the current multiline statement line number
|
|
(Sawada Masahiko)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-28 [7655f4c] Andrew..: Add a pager_min_lines setting to psql
|
|
-->
|
|
<para>
|
|
Add <literal>\pset</literal> option <link
|
|
linkend="app-psql-meta-commands"><varname>pager_min_lines</varname></link>
|
|
to control pager invocation (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-21 [4077fb4] Andrew..: Fix an error in psql that overcounted output l..
|
|
-->
|
|
<para>
|
|
Improve <application>psql</application> line counting used when deciding
|
|
to invoke the pager (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
<application>psql</application> now fails if the file specified by
|
|
an <option>--output</option> or <option>--log-file</option> switch cannot be
|
|
written (Tom Lane, Daniel Vérité)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, it effectively ignored the switch in such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-12 [bd40951] Andres..: Minimal psql tab completion support for SET se..
|
|
-->
|
|
<para>
|
|
Add <application>psql</application> tab completion when setting the
|
|
<xref linkend="guc-search-path"> variable (Jeff Janes)
|
|
</para>
|
|
|
|
<para>
|
|
Currently only the first schema can be tab-completed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-23 [631e7f6] Heikki..: Improve tab-completion of DROP and ALTER ENABLE..
|
|
-->
|
|
<para>
|
|
Improve <application>psql</application>'s tab completion for triggers and rules
|
|
(Andreas Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect5>
|
|
<title><link linkend="app-psql-meta-commands">Backslash Commands</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-10 [07c8651] Andres..: Add new psql help topics, accessible to both..
|
|
-->
|
|
<para>
|
|
Add <application>psql</application> <command>\?</command> help sections
|
|
<literal>variables</literal> and <literal>options</literal> (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
<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
|
|
traditional output and remains the default. These help displays
|
|
can also be obtained with the command-line
|
|
option <literal>--help=<replaceable>section</replaceable></literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-14 [ee80f04] Alvaro..: psql: Show tablespace size in \db+
|
|
-->
|
|
<para>
|
|
Show tablespace size in <application>psql</application>'s <literal>\db+</literal>
|
|
(Fabrízio de Royes Mello)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-09 [a6f3c1f] Magnus..: Show owner of types in psql \dT+
|
|
-->
|
|
<para>
|
|
Show data type owners in <application>psql</application>'s <literal>\dT+</literal>
|
|
(Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-04 [f6f654f] Fujii ..: Allow \watch to display query execution time if..
|
|
-->
|
|
<para>
|
|
Allow <application>psql</application>'s <command>\watch</command> to output
|
|
<command>\timing</command> information (Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
Also prevent <option>--echo-hidden</option> from echoing
|
|
<command>\watch</command> queries, since that is generally unwanted.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-22 [eca2b9b] Andrew..: Rework echo_hidden for \sf and \ef from commit ..
|
|
-->
|
|
<para>
|
|
Make <application>psql</application>'s <literal>\sf</literal> and <literal>\ef</literal>
|
|
commands honor <envar>ECHO_HIDDEN</envar> (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-12 [e15c4ab] Fujii ..: Add tab-completion for \unset and valid setting..
|
|
-->
|
|
<para>
|
|
Improve <application>psql</application> tab completion for <command>\set</command>,
|
|
<command>\unset</command>, and <literal>:variable</literal> names (Pavel
|
|
Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-10 [095d401] Robert..: Tab complete second argument to \c with role n..
|
|
-->
|
|
<para>
|
|
Allow tab completion of role names
|
|
in <application>psql</application> <literal>\c</literal> commands (Ian Barwick)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect5>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-pgdump"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-17 [be1cc8f] Simon ..: Add pg_dump ––snapshot option
|
|
-->
|
|
<para>
|
|
Allow <application>pg_dump</application> to share a snapshot taken by another
|
|
session using <option>--snapshot</option> (Simon Riggs, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
The remote snapshot must have been exported by
|
|
<function>pg_export_snapshot()</function> or logical replication slot
|
|
creation. This can be used to share a consistent snapshot
|
|
across multiple <application>pg_dump</application> processes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
<!--
|
|
2014-07-07 [7700597] Tom Lane: In pg_dump, show server and pg_dump versions w..
|
|
-->
|
|
<para>
|
|
Make <application>pg_dump</application> always print the server and
|
|
<application>pg_dump</application> versions (Jing Wang)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, version information was only printed in
|
|
<option>--verbose</option> mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-06-04 [232cd63] Fujii ..: Remove -i/-ignore-version option from pg_dump..
|
|
-->
|
|
<para>
|
|
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)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-pg-ctl"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O opti..
|
|
-->
|
|
<para>
|
|
Support multiple <application>pg_ctl</application> <option>-o</option> options,
|
|
concatenating their values (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-17 [c0e4520] Magnus..: Add option to pg_ctl to choose event source for..
|
|
-->
|
|
<para>
|
|
Allow control of <application>pg_ctl</application>'s event source logging
|
|
on <systemitem class="osname">MS Windows</systemitem> (MauMau)
|
|
</para>
|
|
|
|
<para>
|
|
This only controls <application>pg_ctl</application>, not the server, which
|
|
has separate settings in <filename>postgresql.conf</filename>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<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
|
|
(<literal>0.0.0.0</literal> in IPv4 or <literal>::</literal> in IPv6), connect via
|
|
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
|
|
<application>pg_ctl</application> will prefer to use a Unix-domain socket.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="pgupgrade"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-14 [9fa8b0e] Peter ..: Move pg_upgrade from contrib/ to src/bin/
|
|
-->
|
|
<para>
|
|
Move <application>pg_upgrade</application> from <filename>contrib</filename> to
|
|
<filename>src/bin</filename> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
In connection with this change, the functionality previously
|
|
provided by the <application>pg_upgrade_support</application> module has been
|
|
moved into the core server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O optio..
|
|
-->
|
|
<para>
|
|
Support multiple <application>pg_upgrade</application>
|
|
<option>-o</option>/<option>-O</option> options,
|
|
concatenating their values (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-10 [33755e8] Heikki..: Change the way encoding and locale checks are d..
|
|
-->
|
|
<para>
|
|
Improve database collation comparisons in
|
|
<application>pg_upgrade</application> (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-25 [2209b39] Bruce ..: pg_upgrade: remove support for 8.3 old clusters
|
|
-->
|
|
<para>
|
|
Remove support for upgrading from 8.3 clusters (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="pgbench"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-13 [81134af] Peter ..: Move pgbench from contrib/ to src/bin/
|
|
-->
|
|
<para>
|
|
Move pgbench from <filename>contrib</filename> to <filename>src/bin</filename>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-09-30 [3c4c5ac] Tatsuo..: Fix incorrect tps number calculation in "exclu..
|
|
-->
|
|
<para>
|
|
Fix calculation of TPS number <quote>excluding connections
|
|
establishing</quote> (Tatsuo Ishii, Fabien Coelho)
|
|
</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>
|
|
<!--
|
|
2014-10-13 [98aed6c] Heikki..: Add ––latency-limit option to pgbench.
|
|
-->
|
|
<para>
|
|
Allow counting of pgbench transactions that take over a specified
|
|
amount of time (Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by a new <option>--latency-limit</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-30 [ed802e7] Robert..: pgbench: Allow \setrandom to generate Gaussian..
|
|
-->
|
|
<para>
|
|
Allow pgbench to generate Gaussian/exponential distributions
|
|
using <command>\setrandom</command> (Kondo Mitsumasa, Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-02 [878fdcb] Robert..: pgbench: Add a real expression syntax to \set
|
|
-->
|
|
<para>
|
|
Allow <application>pgbench</application>'s <command>\set</command> command to handle
|
|
arithmetic expressions containing more than one operator, and add
|
|
<literal>%</literal> (modulo) to the set of operators it supports
|
|
(Robert Haas, Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-20 [2c03216] Heikki..: Revamp the WAL record format.
|
|
-->
|
|
<para>
|
|
Simplify <link linkend="wal"><acronym>WAL</acronym></link> record format
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This allows external tools to more easily track what blocks
|
|
are modified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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>
|
|
<!--
|
|
2014-09-25 [b64d92f] Andres..: Add a basic atomic ops API abstracting away pla..
|
|
-->
|
|
<para>
|
|
Add atomic memory operations <acronym>API</acronym> (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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.
|
|
-->
|
|
<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-05-12 [afb9249] Tom Lane: Add support for doing late row locking in FDWs.
|
|
-->
|
|
<para>
|
|
Allow foreign data wrappers to do post-filter locking (Etsuro
|
|
Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
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
|
|
DO NOTHING</command> queries (Peter Geoghegan, Heikki Linnakangas,
|
|
Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Foreign data wrappers must be modified to handle this.
|
|
<command>INSERT ... ON CONFLICT DO UPDATE</command> is not supported on
|
|
foreign tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-18 [4a14f13] Tom Lane: Improve hash_create's API for selecting simple-..
|
|
-->
|
|
<para>
|
|
Improve <function>hash_create()</function>'s API for selecting
|
|
simple-binary-key hash functions (Teodor Sigaev, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-30 [924bcf4] Robert..: Create an infrastructure for parallel computati..
|
|
2014-10-31 [2bd9e41] Robert..: Support frontend-backend protocol communication..
|
|
-->
|
|
<para>
|
|
Improve parallel execution infrastructure (Robert Haas, Amit
|
|
Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-28 [a6d488c] Andres..: Remove Alpha and Tru64 support.
|
|
-->
|
|
<para>
|
|
Remove <productname>Alpha</productname> (<acronym>CPU</acronym>) and <systemitem
|
|
class="osname">Tru64</systemitem> (OS) ports (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-06 [4893ccd] Robert..: Remove swpb-based spinlock implementation for A..
|
|
-->
|
|
<para>
|
|
Remove swap-byte-based spinlock implementation for
|
|
<acronym>ARM</acronym>v5 and earlier <acronym>CPU</acronym>s (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
<acronym>ARM</acronym>v5's weak memory ordering made this locking
|
|
implementation unsafe. Spinlock support is still possible on
|
|
newer gcc implementations with atomics support.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-02-24 [23a7835] Peter ..: Error when creating names too long for tar for..
|
|
-->
|
|
<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-05-19 [0b28ea7] Tom Lane: Avoid collation dependence in indexes of syste..
|
|
-->
|
|
<para>
|
|
Change index operator class for columns <link
|
|
linkend="catalog-pg-seclabel"><structname>pg_seclabel</structname></link>.<structname>provider</structname>
|
|
and <link
|
|
linkend="catalog-pg-shseclabel"><structname>pg_shseclabel</structname></link>.<structname>provider</structname>
|
|
to be <literal>text_pattern_ops</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids possible problems with these indexes when different
|
|
databases of a cluster have different default collations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<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>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title>MS Windows</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-12-08 [519b075] Simon ..: Use GetSystemTimeAsFileTime directly in win32
|
|
2014-12-08 [8001fe6] Simon ..: Windows: use GetSystemTimePreciseAsFileTime if ..
|
|
-->
|
|
<para>
|
|
Allow higher-precision time stamp resolution on <systemitem
|
|
class="osname">Windows 8</systemitem>, <systemitem class="osname">Windows
|
|
Server 2012</systemitem>, and later Windows systems (Craig Ringer)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-18 [f9dead5] Alvaro..: Install shared libraries to bin/ in Windows un..
|
|
-->
|
|
<para>
|
|
Install shared libraries to <filename>bin</filename> in <systemitem
|
|
class="osname">MS Windows</systemitem> (Peter Eisentraut, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-04-16 [22d0053] Alvaro..: MSVC: install src/test/modules together with c..
|
|
-->
|
|
<para>
|
|
Install <filename>src/test/modules</filename> together with
|
|
<filename>contrib</filename> on <productname>MSVC</productname> builds (Michael
|
|
Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-12 [8d9a0e8] Magnus..: Support ––with-extra-version equivalent functi..
|
|
-->
|
|
<para>
|
|
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)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-14 [91f03ba] Noah M..: MSVC: Recognize PGFILEDESC in contrib and conv..
|
|
-->
|
|
<para>
|
|
Pass <envar>PGFILEDESC</envar> into <productname>MSVC</productname> contrib builds
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-07-14 [c4a448e] Noah M..: MSVC: Apply icons to all binaries having them ..
|
|
-->
|
|
<para>
|
|
Add icons to all <productname>MSVC</productname>-built binaries and version
|
|
information to all <systemitem class="osname">MS Windows</systemitem>
|
|
binaries (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
MinGW already had such icons.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-09-10 [311da16] Andres..: Add support for optional_argument to our own ge..
|
|
-->
|
|
<para>
|
|
Add optional-argument support to the internal
|
|
<function>getopt_long()</function> implementation (Michael Paquier,
|
|
Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This is used by the <productname>MSVC</productname> build.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-03-27 [717f709] Andrew..: Add stats for min, max, mean, stddev times to p..
|
|
-->
|
|
<para>
|
|
Add statistics for minimum, maximum,
|
|
mean, and standard deviation times to <link
|
|
linkend="pgstatstatements-columns"><application>pg_stat_statements</application></link>
|
|
(Mitsumasa Kondo, Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-10-01 [32984d8] Heikki..: Add functions for dealing with PGP armor heade..
|
|
-->
|
|
<para>
|
|
Add <link linkend="pgcrypto"><application>pgcrypto</application></link> function
|
|
<function>pgp_armor_headers()</function> to extract <productname>PGP</productname>
|
|
armor headers (Marko Tiikkaja, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-30 [97c40ce] Tom Lane: Allow empty replacement strings in contrib/unac..
|
|
-->
|
|
<para>
|
|
Allow empty replacement strings in <link
|
|
linkend="unaccent"><application>unaccent</application></link> (Mohammad Alhashash)
|
|
</para>
|
|
|
|
<para>
|
|
This is useful in languages where diacritic signs are represented
|
|
as separate characters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-06-30 [1b24887] Tom Lane: Allow multi-character source strings in contrib..
|
|
-->
|
|
<para>
|
|
Allow multicharacter source strings in <link
|
|
linkend="unaccent"><application>unaccent</application></link> (Tom Lane)
|
|
</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-05-15 [9689290] Simon ..: TABLESAMPLE system_rows(limit)
|
|
2015-05-15 [149f6f1] Simon ..: TABLESAMPLE system_time(limit)
|
|
-->
|
|
<para>
|
|
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>
|
|
to allow additional table sampling methods (Petr Jelínek)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-21 [3a82bc6] Heikki..: Add pageinspect functions for inspecting GIN in..
|
|
-->
|
|
<para>
|
|
Add <link linkend="gin"><acronym>GIN</acronym></link>
|
|
index inspection functions to <link
|
|
linkend="pageinspect"><application>pageinspect</application></link> (Heikki
|
|
Linnakangas, Peter Geoghegan, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-08-22 [f577919] Andres..: Add pinning_backends column to the pg_buffercac..
|
|
-->
|
|
<para>
|
|
Add information about buffer pins to <link
|
|
linkend="pgbuffercache"><application>pg_buffercache</application></link> display
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2015-05-13 [5850b20] Andres..: Add pgstattuple_approx() to the pgstattuple ext..
|
|
-->
|
|
<para>
|
|
Allow <link linkend="pgstattuple"><application>pgstattuple</application></link>
|
|
to report approximate answers with less overhead using
|
|
<function>pgstattuple_approx()</function> (Abhijit Menon-Sen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2014-11-29 [22dfd11] Alvaro..: Move test modules from contrib to src/test/modu..
|
|
2014-12-01 [df761e3] Alvaro..: Move security_label test
|
|
-->
|
|
<para>
|
|
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>
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
These modules are only meant for server testing, so they do not need
|
|
to be built or installed when packaging <productname>PostgreSQL</productname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|