aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/release-9.5.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/release-9.5.sgml')
-rw-r--r--doc/src/sgml/release-9.5.sgml11192
1 files changed, 0 insertions, 11192 deletions
diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml
deleted file mode 100644
index ccd8eee3e37..00000000000
--- a/doc/src/sgml/release-9.5.sgml
+++ /dev/null
@@ -1,11192 +0,0 @@
-<!-- doc/src/sgml/release-9.5.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-9-5-15">
- <title>Release 9.5.15</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-11-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.5.14.
- 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.15</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.13,
- see <xref linkend="release-9-5-13"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix corner-case failures
- in <function>has_<replaceable>foo</replaceable>_privilege()</function>
- family of functions (Tom Lane)
- </para>
-
- <para>
- Return NULL rather than throwing an error when an invalid object OID
- is provided. Some of these functions got that right already, but not
- all. <function>has_column_privilege()</function> was additionally
- capable of crashing on some platforms.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid O(N^2) slowdown in regular expression match/split functions on
- long strings (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix parsing of standard multi-character operators that are immediately
- followed by a comment or <literal>+</literal> or <literal>-</literal>
- (Andrew Gierth)
- </para>
-
- <para>
- This oversight could lead to parse errors, or to incorrect assignment
- of precedence.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid O(N^3) slowdown in lexer for long strings
- of <literal>+</literal> or <literal>-</literal> characters
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix mis-execution of SubPlans when the outer query is being scanned
- backwards (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command>
- after rewinding the referenced cursor (Tom Lane)
- </para>
-
- <para>
- A cursor that scans multiple relations (particularly an inheritance
- tree) could produce wrong behavior if rewound to an earlier relation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>EvalPlanQual</function> to handle conditionally-executed
- InitPlans properly (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This resulted in hard-to-reproduce crashes or wrong answers in
- concurrent updates, if they contained code such as an uncorrelated
- sub-<literal>SELECT</literal> inside a <literal>CASE</literal>
- construct.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix character-class checks to not fail on Windows for Unicode
- characters above U+FFFF (Tom Lane, Kenji Uno)
- </para>
-
- <para>
- This bug affected full-text-search operations, as well
- as <filename>contrib/ltree</filename>
- and <filename>contrib/pg_trgm</filename>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that sequences owned by a foreign table are processed
- by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut)
- </para>
-
- <para>
- The ownership change should propagate to such sequences as well, but
- this was missed for foreign tables.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that the server will process
- already-received <literal>NOTIFY</literal>
- and <literal>SIGTERM</literal> interrupts before waiting for client
- input (Jeff Janes, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix over-allocation of space for <function>array_out()</function>'s
- result string (Keiichi Hirobe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix memory leak in repeated SP-GiST index scans (Tom Lane)
- </para>
-
- <para>
- This is only known to amount to anything significant in cases where
- an exclusion constraint using SP-GiST receives many new index entries
- in a single command.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <function>ApplyLogicalMappingFile()</function> closes the
- mapping file when done with it (Tomas Vondra)
- </para>
-
- <para>
- Previously, the file descriptor was leaked, eventually resulting in
- failures during logical decoding.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix logical decoding to handle cases where a mapped catalog table is
- repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal>
- (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent starting the server with <varname>wal_level</varname> set
- to too low a value to support an existing replication slot (Andres
- Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid crash if a utility command causes infinite recursion (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- When initializing a hot standby, cope with duplicate XIDs caused by
- two-phase transactions on the master
- (Michael Paquier, Konstantin Knizhnik)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix event triggers to handle nested <command>ALTER TABLE</command>
- commands (Michael Paquier, &Aacute;lvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Propagate parent process's transaction and statement start timestamps
- to parallel workers (Konstantin Knizhnik)
- </para>
-
- <para>
- This prevents misbehavior of functions such
- as <function>transaction_timestamp()</function> when executed in a
- worker.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix WAL file recycling logic to work correctly on standby servers
- (Michael Paquier)
- </para>
-
- <para>
- Depending on the setting of <varname>archive_mode</varname>, a standby
- might fail to remove some WAL files that could be removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix handling of commit-timestamp tracking during recovery
- (Masahiko Sawada, Michael Paquier)
- </para>
-
- <para>
- If commit timestamp tracking has been turned on or off, recovery might
- fail due to trying to fetch the commit timestamp for a transaction
- that did not record it.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Randomize the <function>random()</function> seed in bootstrap and
- standalone backends, and in <application>initdb</application>
- (Noah Misch)
- </para>
-
- <para>
- The main practical effect of this change is that it avoids a scenario
- where <application>initdb</application> might mistakenly conclude that
- POSIX shared memory is not available, due to name collisions caused by
- always using the same random seed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow DSM allocation to be interrupted (Chris Travers)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Properly handle turning <varname>full_page_writes</varname> on
- dynamically (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid possible buffer overrun when replaying GIN page recompression
- from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix missed fsync of a replication slot's directory (Konstantin
- Knizhnik, Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix unexpected timeouts when
- using <varname>wal_sender_timeout</varname> on a slow server
- (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that hot standby processes use the correct WAL consistency
- point (Alexander Kukushkin, Michael Paquier)
- </para>
-
- <para>
- This prevents possible misbehavior just after a standby server has
- reached a consistent database state during WAL replay.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure background workers are stopped properly when the postmaster
- receives a fast-shutdown request before completing database startup
- (Alexander Kukushkin)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Don't run atexit callbacks when servicing <literal>SIGQUIT</literal>
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Don't record foreign-server user mappings as members of extensions
- (Tom Lane)
- </para>
-
- <para>
- If <command>CREATE USER MAPPING</command> is executed in an extension
- script, an extension dependency was created for the user mapping,
- which is unexpected. Roles can't be extension members, so user
- mappings shouldn't be either.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make syslogger more robust against failures in opening CSV log files
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</application>, as well as documentation
- examples, to call <function>PQconsumeInput()</function> before
- each <function>PQnotifies()</function> call (Tom Lane)
- </para>
-
- <para>
- This fixes cases in which <application>psql</application> would not
- report receipt of a <literal>NOTIFY</literal> message until after the
- next command.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible inconsistency in <application>pg_dump</application>'s
- sorting of dissimilar object names (Jacob Champion)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <application>pg_restore</application> will schema-qualify
- the table name when
- emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal>
- commands (Tom Lane)
- </para>
-
- <para>
- This avoids failures due to the new policy of running restores with
- restrictive search path.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</application> to handle event triggers in
- extensions correctly (Haribabu Kommi)
- </para>
-
- <para>
- <application>pg_upgrade</application> failed to preserve an event
- trigger's extension-membership status.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</application>'s cluster state check to
- work correctly on a standby server (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Enforce type <type>cube</type>'s dimension limit in
- all <filename>contrib/cube</filename> functions (Andrey Borodin)
- </para>
-
- <para>
- Previously, some cube-related functions could construct values that
- would be rejected by <function>cube_in()</function>, leading to
- dump/reload failures.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/unaccent</filename>'s
- <function>unaccent()</function> function to use
- the <literal>unaccent</literal> text search dictionary that is in the
- same schema as the function (Tom Lane)
- </para>
-
- <para>
- Previously it tried to look up the dictionary using the search path,
- which could fail if the search path has a restrictive value.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix build problems on macOS 10.14 (Mojave) (Tom Lane)
- </para>
-
- <para>
- Adjust <application>configure</application> to add
- an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>;
- without this, PL/Perl and PL/Tcl fail to configure or build on macOS
- 10.14. The specific sysroot used can be overridden at configure time
- or build time by setting the <varname>PG_SYSROOT</varname> variable in
- the arguments of <application>configure</application>
- or <application>make</application>.
- </para>
-
- <para>
- It is now recommended that Perl-related extensions
- write <literal>$(perl_includespec)</literal> rather
- than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler
- flags. The latter continues to work on most platforms, but not recent
- macOS.
- </para>
-
- <para>
- Also, it should no longer be necessary to
- specify <option>--with-tclconfig</option> manually to get PL/Tcl to
- build on recent macOS releases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix MSVC build and regression-test scripts to work on recent Perl
- versions (Andrew Dunstan)
- </para>
-
- <para>
- Perl no longer includes the current directory in its search path
- by default; work around that.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, allow the regression tests to be run by an Administrator
- account (Andrew Dunstan)
- </para>
-
- <para>
- To do this safely, <application>pg_regress</application> now gives up
- any such privileges at startup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: REL9_5_STABLE [f6c268c48] 2018-09-11 16:09:46 -0400
-Branch: REL9_4_STABLE [19acfd652] 2018-09-11 16:03:42 -0400
-Branch: REL9_3_STABLE [48c978f3e] 2018-09-11 16:05:20 -0400
-Branch: REL9_4_STABLE [9ca32a6eb] 2018-09-11 15:44:42 -0400
-Branch: REL9_3_STABLE [048257832] 2018-09-11 15:46:35 -0400
-Branch: REL9_4_STABLE [86e247583] 2018-09-12 12:24:11 -0400
-Branch: REL9_3_STABLE [520711d6e] 2018-09-12 12:25:57 -0400
--->
- <para>
- Support building on Windows with Visual Studio 2015 or Visual Studio 2017
- (Michael Paquier, Haribabu Kommi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow btree comparison functions to return <literal>INT_MIN</literal>
- (Tom Lane)
- </para>
-
- <para>
- Up to now, we've forbidden datatype-specific comparison functions from
- returning <literal>INT_MIN</literal>, which allows callers to invert
- the sort order just by negating the comparison result. However, this
- was never safe for comparison functions that directly return the
- result of <function>memcmp()</function>, <function>strcmp()</function>,
- etc, as POSIX doesn't place any such restriction on those functions.
- At least some recent versions of <function>memcmp()</function> can
- return <literal>INT_MIN</literal>, causing incorrect sort ordering.
- Hence, we've removed this restriction. Callers must now use
- the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to
- invert the sort order.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix recursion hazard in shared-invalidation message processing
- (Tom Lane)
- </para>
-
- <para>
- This error could, for example, result in failure to access a system
- catalog or index that had just been processed by <command>VACUUM
- FULL</command>.
- </para>
-
- <para>
- This change adds a new result code
- for <function>LockAcquire</function>, which might possibly affect
- external callers of that function, though only very unusual usage
- patterns would have an issue with it. The API
- of <function>LockAcquireExtended</function> is also changed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Save and restore SPI's global variables
- during <function>SPI_connect()</function>
- and <function>SPI_finish()</function> (Chapman Flack, Tom Lane)
- </para>
-
- <para>
- This prevents possible interference when one SPI-using function calls
- another.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_5_STABLE [1245561df] 2018-10-12 14:49:33 -0400
-Branch: REL9_4_STABLE [ec185747a] 2018-10-12 14:49:33 -0400
-Branch: REL9_3_STABLE [01187f32c] 2018-10-12 14:49:33 -0400
--->
- <para>
- Provide <literal>ALLOCSET_DEFAULT_SIZES</literal> and sibling macros
- in back branches (Tom Lane)
- </para>
-
- <para>
- These macros have existed since 9.6, but there were requests to add
- them to older branches to allow extensions to rely on them without
- branch-specific coding.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid using potentially-under-aligned page buffers (Tom Lane)
- </para>
-
- <para>
- Invent new union types <type>PGAlignedBlock</type>
- and <type>PGAlignedXLogBlock</type>, and use these in place of plain
- char arrays, ensuring that the compiler can't place the buffer at a
- misaligned start address. This fixes potential core dumps on
- alignment-picky platforms, and may improve performance even on
- platforms that allow misalignment.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <filename>src/port/snprintf.c</filename> follow the C99
- standard's definition of <function>snprintf()</function>'s result
- value (Tom Lane)
- </para>
-
- <para>
- On platforms where this code is used (mostly Windows), its pre-C99
- behavior could lead to failure to detect buffer overrun, if the
- calling code assumed C99 semantics.
- </para>
- </listitem>
-
- <listitem>
- <para>
- When building on i386 with the <application>clang</application>
- compiler, require <option>-msse2</option> to be used (Andres Freund)
- </para>
-
- <para>
- This avoids problems with missed floating point overflow checks.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>configure</application>'s detection of the result
- type of <function>strerror_r()</function> (Tom Lane)
- </para>
-
- <para>
- The previous coding got the wrong answer when building
- with <application>icc</application> on Linux (and perhaps in other
- cases), leading to <application>libpq</application> not returning
- useful error messages for system-reported errors.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia
- (Volgograd), plus historical corrections for China, Hawaii, Japan,
- Macau, and North Korea.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-5-14">
- <title>Release 9.5.14</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-08-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.5.13.
- 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.14</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.13,
- see <xref linkend="release-9-5-13"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix failure to reset <application>libpq</application>'s state fully
- between connection attempts (Tom Lane)
- </para>
-
- <para>
- An unprivileged user of <filename>dblink</filename>
- or <filename>postgres_fdw</filename> could bypass the checks intended
- to prevent use of server-side credentials, such as
- a <filename>~/.pgpass</filename> file owned by the operating-system
- user running the server. Servers allowing peer authentication on
- local connections are particularly vulnerable. Other attacks such
- as SQL injection into a <filename>postgres_fdw</filename> session
- are also possible.
- Attacking <filename>postgres_fdw</filename> in this way requires the
- ability to create a foreign server object with selected connection
- parameters, but any user with access to <filename>dblink</filename>
- could exploit the problem.
- In general, an attacker with the ability to select the connection
- parameters for a <application>libpq</application>-using application
- could cause mischief, though other plausible attack scenarios are
- harder to think of.
- Our thanks to Andrew Krasichkov for reporting this issue.
- (CVE-2018-10915)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view
- that isn't just <literal>SELECT * FROM ...</literal>
- (Dean Rasheed, Amit Langote)
- </para>
-
- <para>
- Erroneous expansion of an updatable view could lead to crashes
- or <quote>attribute ... has the wrong type</quote> errors, if the
- view's <literal>SELECT</literal> list doesn't match one-to-one with
- the underlying table's columns.
- Furthermore, this bug could be leveraged to allow updates of columns
- that an attacking user lacks <literal>UPDATE</literal> privilege for,
- if that user has <literal>INSERT</literal> and <literal>UPDATE</literal>
- privileges for some other column(s) of the table.
- Any user could also use it for disclosure of server memory.
- (CVE-2018-10925)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that updates to the <structfield>relfrozenxid</structfield>
- and <structfield>relminmxid</structfield> values
- for <quote>nailed</quote> system catalogs are processed in a timely
- fashion (Andres Freund)
- </para>
-
- <para>
- Overoptimistic caching rules could prevent these updates from being
- seen by other sessions, leading to spurious errors and/or data
- corruption. The problem was significantly worse for shared catalogs,
- such as <structname>pg_authid</structname>, because the stale cache
- data could persist into new sessions as well as existing ones.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix case where a freshly-promoted standby crashes before having
- completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
- Horiguchi, Pavan Deolasee, &Aacute;lvaro Herrera)
- </para>
-
- <para>
- This led to a situation where the server did not think it had reached
- a consistent database state during subsequent WAL replay, preventing
- restart.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid emitting a bogus WAL record when recycling an all-zero btree
- page (Amit Kapila)
- </para>
-
- <para>
- This mistake has been seen to cause assertion failures, and
- potentially it could result in unnecessary query cancellations on hot
- standby servers.
- </para>
- </listitem>
-
- <listitem>
- <para>
- During WAL replay, guard against corrupted record lengths exceeding
- 1GB (Michael Paquier)
- </para>
-
- <para>
- Treat such a case as corrupt data. Previously, the code would try to
- allocate space and get a hard error, making recovery impossible.
- </para>
- </listitem>
-
- <listitem>
- <para>
- When ending recovery, delay writing the timeline history file as long
- as possible (Heikki Linnakangas)
- </para>
-
- <para>
- This avoids some situations where a failure during recovery cleanup
- (such as a problem with a two-phase state file) led to inconsistent
- timeline state on-disk.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve performance of WAL replay for transactions that drop many
- relations (Fujii Masao)
- </para>
-
- <para>
- This change reduces the number of times that shared buffers are
- scanned, so that it is of most benefit when that setting is large.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve performance of lock releasing in standby server WAL replay
- (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make logical WAL senders report streaming state correctly (Simon
- Riggs, Sawada Masahiko)
- </para>
-
- <para>
- The code previously mis-detected whether or not it had caught up with
- the upstream server.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bugs in snapshot handling during logical decoding, allowing wrong
- decoding results in rare cases (Arseny Sher, &Aacute;lvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure a table's cached index list is correctly rebuilt after an index
- creation fails partway through (Peter Geoghegan)
- </para>
-
- <para>
- Previously, the failed index's OID could remain in the list, causing
- problems later in the same session.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix mishandling of empty uncompressed posting list pages in GIN
- indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
- </para>
-
- <para>
- This could result in an assertion failure after pg_upgrade of a
- pre-9.4 GIN index (9.4 and later will not create such pages).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <command>VACUUM</command> will respond to signals
- within btree page deletion loops (Andres Freund)
- </para>
-
- <para>
- Corrupted btree indexes could result in an infinite loop here, and
- that previously wasn't interruptible without forcing a crash.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix misoptimization of equivalence classes involving composite-type
- columns (Tom Lane)
- </para>
-
- <para>
- This resulted in failure to recognize that an index on a composite
- column could provide the sort order needed for a mergejoin on that
- column.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
- parameters (<literal>$<replaceable>n</replaceable></literal>), as the
- standard expects (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix failure to schema-qualify some object names
- in <function>getObjectDescription</function> output
- (Kyotaro Horiguchi, Tom Lane)
- </para>
-
- <para>
- Names of collations, conversions, and text search objects
- were not schema-qualified when they should be.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Widen <command>COPY FROM</command>'s current-line-number counter
- from 32 to 64 bits (David Rowley)
- </para>
-
- <para>
- This avoids two problems with input exceeding 4G lines: <literal>COPY
- FROM WITH HEADER</literal> would drop a line every 4G lines, not only
- the first line, and error reports could show a wrong line number.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add a string freeing function
- to <application>ecpg</application>'s <filename>pgtypes</filename>
- library, so that cross-module memory management problems can be
- avoided on Windows (Takayuki Tsunakawa)
- </para>
-
- <para>
- On Windows, crashes can ensue if the <function>free</function> call
- for a given chunk of memory is not made from the same DLL
- that <function>malloc</function>'ed the memory.
- The <filename>pgtypes</filename> library sometimes returns strings
- that it expects the caller to free, making it impossible to follow
- this rule. Add a <function>PGTYPESchar_free()</function> function
- that just wraps <function>free</function>, allowing applications
- to follow this rule.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</application>'s support for <type>long
- long</type> variables on Windows, as well as other platforms that
- declare <function>strtoll</function>/<function>strtoull</function>
- nonstandardly or not at all (Dang Minh Huong, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix misidentification of SQL statement type in PL/pgSQL, when a rule
- change causes a change in the semantics of a statement intra-session
- (Tom Lane)
- </para>
-
- <para>
- This error led to assertion failures, or in rare cases, failure to
- enforce the <literal>INTO STRICT</literal> option as expected.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix password prompting in client programs so that echo is properly
- disabled on Windows when <literal>stdin</literal> is not the
- terminal (Matthew Stickney)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Further fix mis-quoting of values for list-valued GUC variables in
- dumps (Tom Lane)
- </para>
-
- <para>
- The previous fix for quoting of <varname>search_path</varname> and
- other list-valued variables in <application>pg_dump</application>
- output turned out to misbehave for empty-string list elements, and it
- risked truncation of long file paths.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</application>'s failure to
- dump <literal>REPLICA IDENTITY</literal> properties for constraint
- indexes (Tom Lane)
- </para>
-
- <para>
- Manually created unique indexes were properly marked, but not those
- created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
- KEY</literal> constraints.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_upgrade</application> check that the old server
- was shut down cleanly (Bruce Momjian)
- </para>
-
- <para>
- The previous check could be fooled by an immediate-mode shutdown.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/hstore_plperl</filename> to look through Perl
- scalar references, and to not crash if it doesn't find a hash
- reference where it expects one (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash in <filename>contrib/ltree</filename>'s
- <function>lca()</function> function when the input array is empty
- (Pierre Ducroquet)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix various error-handling code paths in which an incorrect error code
- might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rearrange makefiles to ensure that programs link to freshly-built
- libraries (such as <filename>libpq.so</filename>) rather than ones
- that might exist in the system library directories (Tom Lane)
- </para>
-
- <para>
- This avoids problems when building on platforms that supply old copies
- of <productname>PostgreSQL</productname> libraries.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018e for DST law changes in North Korea, plus historical
- corrections for Czechoslovakia.
- </para>
-
- <para>
- This update includes a redefinition of <quote>daylight savings</quote>
- in Ireland, as well as for some past years in Namibia and
- Czechoslovakia. In those jurisdictions, legally standard time is
- observed in summer, and daylight savings time in winter, so that the
- daylight savings offset is one hour behind standard time not one hour
- ahead. This does not affect either the actual UTC offset or the
- timezone abbreviations in use; the only known effect is that
- the <structfield>is_dst</structfield> column in
- the <structname>pg_timezone_names</structname> view will now be true
- in winter and false in summer in these cases.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-5-13">
- <title>Release 9.5.13</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-05-10</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.5.12.
- 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.13</title>
-
- <para>
- A dump/restore is not required for those running 9.5.X.
- </para>
-
- <para>
- However, if the function marking mistakes mentioned in the first
- changelog entry below affect you, you will want to take steps to
- correct your database catalogs.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.5.12,
- see <xref linkend="release-9-5-12"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix incorrect volatility markings on a few built-in functions
- (Thomas Munro, Tom Lane)
- </para>
-
- <para>
- The functions
- <function>query_to_xml</function>,
- <function>cursor_to_xml</function>,
- <function>cursor_to_xmlschema</function>,
- <function>query_to_xmlschema</function>, and
- <function>query_to_xml_and_xmlschema</function>
- should be marked volatile because they execute user-supplied queries
- that might contain volatile operations. They were not, leading to a
- risk of incorrect query optimization. This has been repaired for new
- installations by correcting the initial catalog data, but existing
- installations will continue to contain the incorrect markings.
- Practical use of these functions seems to pose little hazard, but in
- case of trouble, it can be fixed by manually updating these
- functions' <structname>pg_proc</structname> entries, for example
- <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean,
- boolean, text) VOLATILE</literal>. (Note that that will need to be
- done in each database of the installation.) Another option is
- to <application>pg_upgrade</application> the database to a version
- containing the corrected initial data.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed
- TOAST entries (Pavan Deolasee)
- </para>
-
- <para>
- Once the OID counter has wrapped around, it's possible to assign a
- TOAST value whose OID matches a previously deleted entry in the same
- TOAST table. If that entry were not yet vacuumed away, this resulted
- in <quote>unexpected chunk number 0 (expected 1) for toast
- value <replaceable>nnnnn</replaceable></quote> errors, which would
- persist until the dead entry was removed
- by <command>VACUUM</command>. Fix by not selecting such OIDs when
- creating a new TOAST entry.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Change <command>ANALYZE</command>'s algorithm for updating
- <structname>pg_class</structname>.<structfield>reltuples</structfield>
- (David Gould)
- </para>
-
- <para>
- Previously, pages not actually scanned by <command>ANALYZE</command>
- were assumed to retain their old tuple density. In a large table
- where <command>ANALYZE</command> samples only a small fraction of the
- pages, this meant that the overall tuple density estimate could not
- change very much, so that <structfield>reltuples</structfield> would
- change nearly proportionally to changes in the table's physical size
- (<structfield>relpages</structfield>) regardless of what was actually
- happening in the table. This has been observed to result
- in <structfield>reltuples</structfield> becoming so much larger than
- reality as to effectively shut off autovacuuming. To fix, assume
- that <command>ANALYZE</command>'s sample is a statistically unbiased
- sample of the table (as it should be), and just extrapolate the
- density observed within those pages to the whole table.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid deadlocks in concurrent <command>CREATE INDEX
- CONCURRENTLY</command> commands that are run
- under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE
- READ</literal> transaction isolation (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail
- when the referenced cursor uses an index-only-scan plan (Yugo Nagata,
- Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect planning of join clauses pushed into parameterized
- paths (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This error could result in misclassifying a condition as
- a <quote>join filter</quote> for an outer join when it should be a
- plain <quote>filter</quote> condition, leading to incorrect join
- output.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possibly incorrect generation of an index-only-scan plan when the
- same table column appears in multiple index columns, and only some of
- those index columns use operator classes that can return the column
- value (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix misoptimization of <literal>CHECK</literal> constraints having
- provably-NULL subclauses of
- top-level <literal>AND</literal>/<literal>OR</literal> conditions
- (Tom Lane, Dean Rasheed)
- </para>
-
- <para>
- This could, for example, allow constraint exclusion to exclude a
- child table that should not be excluded from a query.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix executor crash due to double free in some <literal>GROUPING
- SET</literal> usages (Peter Geoghegan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid crash if a table rewrite event trigger is added concurrently
- with a command that could call such a trigger (&Aacute;lvaro Herrera,
- Andrew Gierth, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid failure if a query-cancel or session-termination interrupt
- occurs while committing a prepared transaction (Stas Kelvich)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix query-lifespan memory leakage in repeatedly executed hash joins
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix overly strict sanity check
- in <function>heap_prepare_freeze_tuple</function>
- (&Aacute;lvaro Herrera)
- </para>
-
- <para>
- This could result in incorrect <quote>cannot freeze committed
- xmax</quote> failures in databases that have
- been <application>pg_upgrade</application>'d from 9.2 or earlier.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent dangling-pointer dereference when a C-coded before-update row
- trigger returns the <quote>old</quote> tuple (Rushabh Lathia)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce locking during autovacuum worker scheduling (Jeff Janes)
- </para>
-
- <para>
- The previous behavior caused drastic loss of potential worker
- concurrency in databases with many tables.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure client hostname is copied while copying
- <structname>pg_stat_activity</structname> data to local memory
- (Edmund Horner)
- </para>
-
- <para>
- Previously the supposedly-local snapshot contained a pointer into
- shared memory, allowing the client hostname column to change
- unexpectedly if any existing session disconnected.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect processing of multiple compound affixes
- in <literal>ispell</literal> dictionaries (Arthur Zakirov)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix collation-aware searches (that is, indexscans using inequality
- operators) in SP-GiST indexes on text columns (Tom Lane)
- </para>
-
- <para>
- Such searches would return the wrong set of rows in most non-C
- locales.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Count the number of index tuples correctly during initial build of an
- SP-GiST index (Tomas Vondra)
- </para>
-
- <para>
- Previously, the tuple count was reported to be the same as that of
- the underlying table, which is wrong if the index is partial.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Count the number of index tuples correctly during vacuuming of a
- GiST index (Andrey Borodin)
- </para>
-
- <para>
- Previously it reported the estimated number of heap tuples,
- which might be inaccurate, and is certainly wrong if the
- index is partial.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix a corner case where a streaming standby gets stuck at a WAL
- continuation record (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In logical decoding, avoid possible double processing of WAL data
- when a walsender restarts (Craig Ringer)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <function>scalarltsel</function>
- and <function>scalargtsel</function> to be used on non-core datatypes
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce <application>libpq</application>'s memory consumption when a
- server error is reported after a large amount of query output has
- been collected (Tom Lane)
- </para>
-
- <para>
- Discard the previous output before, not after, processing the error
- message. On some platforms, notably Linux, this can make a
- difference in the application's subsequent memory footprint.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix double-free crashes in <application>ecpg</application>
- (Patrick Krecker, Jeevan Ladhe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</application> to handle <type>long long
- int</type> variables correctly in MSVC builds (Michael Meskes,
- Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix mis-quoting of values for list-valued GUC variables in dumps
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- The <varname>local_preload_libraries</varname>,
- <varname>session_preload_libraries</varname>,
- <varname>shared_preload_libraries</varname>,
- and <varname>temp_tablespaces</varname> variables were not correctly
- quoted in <application>pg_dump</application> output. This would
- cause problems if settings for these variables appeared in
- <command>CREATE FUNCTION ... SET</command> or <command>ALTER
- DATABASE/ROLE ... SET</command> clauses.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_recvlogical</application> to not fail against
- pre-v10 <productname>PostgreSQL</productname> servers
- (Michael Paquier)
- </para>
-
- <para>
- A previous fix caused <application>pg_recvlogical</application> to
- issue a command regardless of server version, but it should only be
- issued to v10 and later servers.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <application>pg_rewind</application> deletes files on the
- target server if they are deleted from the source server during the
- run (Takayuki Tsunakawa)
- </para>
-
- <para>
- Failure to do this could result in data inconsistency on the target,
- particularly if the file in question is a WAL segment.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_rewind</application> to handle tables in
- non-default tablespaces correctly (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix overflow handling in <application>PL/pgSQL</application>
- integer <command>FOR</command> loops (Tom Lane)
- </para>
-
- <para>
- The previous coding failed to detect overflow of the loop variable
- on some non-gcc compilers, leading to an infinite loop.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Adjust <application>PL/Python</application> regression tests to pass
- under Python 3.7 (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support testing <application>PL/Python</application> and related
- modules when building with Python 3 and MSVC (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_5_STABLE [3c0e07a46] 2018-05-01 12:02:41 -0400
--->
- <para>
- Support building with Microsoft Visual Studio 2015 (Michael Paquier)
- </para>
-
- <para>
- Various fixes needed for VS2015 compatibility were previously
- back-patched into the 9.5 branch, but this one was missed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rename internal <function>b64_encode</function>
- and <function>b64_decode</function> functions to avoid conflict with
- Solaris 11.4 built-in functions (Rainer Orth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Sync our copy of the timezone library with IANA tzcode release 2018e
- (Tom Lane)
- </para>
-
- <para>
- This fixes the <application>zic</application> timezone data compiler
- to cope with negative daylight-savings offsets. While
- the <productname>PostgreSQL</productname> project will not
- immediately ship such timezone data, <application>zic</application>
- might be used with timezone data obtained directly from IANA, so it
- seems prudent to update <application>zic</application> now.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018d for DST law changes in Palestine and Antarctica (Casey
- Station), plus historical corrections for Portugal and its colonies,
- as well as Enderbury, Jamaica, Turks &amp; Caicos Islands, and
- Uruguay.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-5-12">
- <title>Release 9.5.12</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-03-01</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.5.11.
- 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.12</title>
-
- <para>
- A dump/restore is not required for those running 9.5.X.
- </para>
-
- <para>
- However, if you run an installation in which not all users are mutually
- trusting, or if you maintain an application or extension that is
- intended for use in arbitrary situations, it is strongly recommended
- that you read the documentation changes described in the first changelog
- entry below, and take suitable steps to ensure that your installation or
- code is secure.
- </para>
-
- <para>
- Also, the changes described in the second changelog entry below may
- cause functions used in index expressions or materialized views to fail
- during auto-analyze, or when reloading from a dump. After upgrading,
- monitor the server logs for such problems, and fix affected functions.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.5.10,
- see <xref linkend="release-9-5-10"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Document how to configure installations and applications to guard
- against search-path-dependent trojan-horse attacks from other users
- (Noah Misch)
- </para>
-
- <para>
- Using a <varname>search_path</varname> setting that includes any
- schemas writable by a hostile user enables that user to capture
- control of queries and then run arbitrary SQL code with the
- permissions of the attacked user. While it is possible to write
- queries that are proof against such hijacking, it is notationally
- tedious, and it's very easy to overlook holes. Therefore, we now
- recommend configurations in which no untrusted schemas appear in
- one's search path. Relevant documentation appears in
- <xref linkend="ddl-schemas-patterns"/> (for database administrators and users),
- <xref linkend="libpq-connect"/> (for application authors),
- <xref linkend="extend-extensions-style"/> (for extension authors), and
- <xref linkend="sql-createfunction"/> (for authors
- of <literal>SECURITY DEFINER</literal> functions).
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid use of insecure <varname>search_path</varname> settings
- in <application>pg_dump</application> and other client programs
- (Noah Misch, Tom Lane)
- </para>
-
- <para>
- <application>pg_dump</application>,
- <application>pg_upgrade</application>,
- <application>vacuumdb</application> and
- other <productname>PostgreSQL</productname>-provided applications were
- themselves vulnerable to the type of hijacking described in the previous
- changelog entry; since these applications are commonly run by
- superusers, they present particularly attractive targets. To make them
- secure whether or not the installation as a whole has been secured,
- modify them to include only the <structname>pg_catalog</structname>
- schema in their <varname>search_path</varname> settings.
- Autovacuum worker processes now do the same, as well.
- </para>
-
- <para>
- In cases where user-provided functions are indirectly executed by
- these programs &mdash; for example, user-provided functions in index
- expressions &mdash; the tighter <varname>search_path</varname> may
- result in errors, which will need to be corrected by adjusting those
- user-provided functions to not assume anything about what search path
- they are invoked under. That has always been good practice, but now
- it will be necessary for correct behavior.
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix misbehavior of concurrent-update rechecks with CTE references
- appearing in subplans (Tom Lane)
- </para>
-
- <para>
- If a CTE (<literal>WITH</literal> clause reference) is used in an
- InitPlan or SubPlan, and the query requires a recheck due to trying
- to update or lock a concurrently-updated row, incorrect results could
- be obtained.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix planner failures with overlapping mergejoin clauses in an outer
- join (Tom Lane)
- </para>
-
- <para>
- These mistakes led to <quote>left and right pathkeys do not match in
- mergejoin</quote> or <quote>outer pathkeys do not match
- mergeclauses</quote> planner errors in corner cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Repair <application>pg_upgrade</application>'s failure to
- preserve <structfield>relfrozenxid</structfield> for materialized
- views (Tom Lane, Andres Freund)
- </para>
-
- <para>
- This oversight could lead to data corruption in materialized views
- after an upgrade, manifesting as <quote>could not access status of
- transaction</quote> or <quote>found xmin from before
- relfrozenxid</quote> errors. The problem would be more likely to
- occur in seldom-refreshed materialized views, or ones that were
- maintained only with <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command>.
- </para>
-
- <para>
- If such corruption is observed, it can be repaired by refreshing the
- materialized view (without <literal>CONCURRENTLY</literal>).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect reporting of PL/Python function names in
- error <literal>CONTEXT</literal> stacks (Tom Lane)
- </para>
-
- <para>
- An error occurring within a nested PL/Python function call (that is,
- one reached via a SPI query from another PL/Python function) would
- result in a stack trace showing the inner function's name twice,
- rather than the expected results. Also, an error in a nested
- PL/Python <literal>DO</literal> block could result in a null pointer
- dereference crash on some platforms.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <filename>contrib/auto_explain</filename>'s
- <varname>log_min_duration</varname> setting to range up
- to <literal>INT_MAX</literal>, or about 24 days instead of 35 minutes
- (Tom Lane)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-5-11">
- <title>Release 9.5.11</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-02-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.5.10.
- 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.11</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.10,
- see <xref linkend="release-9-5-10"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Ensure that all temporary files made
- by <application>pg_upgrade</application> are non-world-readable
- (Tom Lane, Noah Misch)
- </para>
-
- <para>
- <application>pg_upgrade</application> normally restricts its
- temporary files to be readable and writable only by the calling user.
- But the temporary file containing <literal>pg_dumpall -g</literal>
- output would be group- or world-readable, or even writable, if the
- user's <literal>umask</literal> setting allows. In typical usage on
- multi-user machines, the <literal>umask</literal> and/or the working
- directory's permissions would be tight enough to prevent problems;
- but there may be people using <application>pg_upgrade</application>
- in scenarios where this oversight would permit disclosure of database
- passwords to unfriendly eyes.
- (CVE-2018-1053)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix vacuuming of tuples that were updated while key-share locked
- (Andres Freund, &Aacute;lvaro Herrera)
- </para>
-
- <para>
- In some cases <command>VACUUM</command> would fail to remove such
- tuples even though they are now dead, leading to assorted data
- corruption scenarios.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
- Asim Praveen, Ashwin Agrawal)
- </para>
-
- <para>
- These errors could result in misbehavior under concurrent load.
- The potential consequences have not been characterized fully.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect query results from cases involving flattening of
- subqueries whose outputs are used in <literal>GROUPING SETS</literal>
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unnecessary failure in a query on an inheritance tree that
- occurs concurrently with some child table being removed from the tree
- by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix spurious deadlock failures when multiple sessions are
- running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix failures when an inheritance tree contains foreign child tables
- (Etsuro Fujita)
- </para>
-
- <para>
- A mix of regular and foreign tables in an inheritance tree resulted in
- creation of incorrect plans for <command>UPDATE</command>
- and <command>DELETE</command> queries. This led to visible failures in
- some cases, notably when there are row-level triggers on a foreign
- child table.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Repair failure with correlated sub-<literal>SELECT</literal>
- inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
- subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>could not devise a query plan for the given query</quote>
- planner failure for some cases involving nested <literal>UNION
- ALL</literal> inside a lateral subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix logical decoding to correctly clean up disk files for crashed
- transactions (Atsushi Torikoshi)
- </para>
-
- <para>
- Logical decoding may spill WAL records to disk for transactions
- generating many WAL records. Normally these files are cleaned up
- after the transaction's commit or abort record arrives; but if
- no such record is ever seen, the removal code misbehaved.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix walsender timeout failure and failure to respond to interrupts
- when processing a large transaction (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>has_sequence_privilege()</function> to
- support <literal>WITH GRANT OPTION</literal> tests,
- as other privilege-testing functions do (Joe Conway)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In databases using UTF8 encoding, ignore any XML declaration that
- asserts a different encoding (Pavel Stehule, Noah Misch)
- </para>
-
- <para>
- We always store XML strings in the database encoding, so allowing
- libxml to act on a declaration of another encoding gave wrong results.
- In encodings other than UTF8, we don't promise to support non-ASCII
- XML data anyway, so retain the previous behavior for bug compatibility.
- This change affects only <function>xpath()</function> and related
- functions; other XML code paths already acted this way.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Provide for forward compatibility with future minor protocol versions
- (Robert Haas, Badrul Chowdhury)
- </para>
-
- <para>
- Up to now, <productname>PostgreSQL</productname> servers simply
- rejected requests to use protocol versions newer than 3.0, so that
- there was no functional difference between the major and minor parts
- of the protocol version number. Allow clients to request versions 3.x
- without failing, sending back a message showing that the server only
- understands 3.0. This makes no difference at the moment, but
- back-patching this change should allow speedier introduction of future
- minor protocol upgrades.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Cope with failure to start a parallel worker process
- (Amit Kapila, Robert Haas)
- </para>
-
- <para>
- Parallel query previously tended to hang indefinitely if a worker
- could not be started, as the result of <literal>fork()</literal>
- failure or other low-probability problems.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unsafe alignment assumptions when working
- with <type>__int128</type> (Tom Lane)
- </para>
-
- <para>
- Typically, compilers assume that <type>__int128</type> variables are
- aligned on 16-byte boundaries, but our memory allocation
- infrastructure isn't prepared to guarantee that, and increasing the
- setting of MAXALIGN seems infeasible for multiple reasons. Adjust the
- code to allow use of <type>__int128</type> only when we can tell the
- compiler to assume lesser alignment. The only known symptom of this
- problem so far is crashes in some parallel aggregation queries.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent stack-overflow crashes when planning extremely deeply
- nested set operations
- (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix null-pointer crashes for some types of LDAP URLs appearing
- in <filename>pg_hba.conf</filename> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix sample <function>INSTR()</function> functions in the PL/pgSQL
- documentation (Yugo Nagata, Tom Lane)
- </para>
-
- <para>
- These functions are stated to
- be <trademark class="registered">Oracle</trademark> compatible, but
- they weren't exactly. In particular, there was a discrepancy in the
- interpretation of a negative third parameter: Oracle thinks that a
- negative value indicates the last place where the target substring can
- begin, whereas our functions took it as the last place where the
- target can end. Also, Oracle throws an error for a zero or negative
- fourth parameter, whereas our functions returned zero.
- </para>
-
- <para>
- The sample code has been adjusted to match Oracle's behavior more
- precisely. Users who have copied this code into their applications
- may wish to update their copies.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</application> to make ACL (permissions),
- comment, and security label entries reliably identifiable in archive
- output formats (Tom Lane)
- </para>
-
- <para>
- The <quote>tag</quote> portion of an ACL archive entry was usually
- just the name of the associated object. Make it start with the object
- type instead, bringing ACLs into line with the convention already used
- for comment and security label archive entries. Also, fix the
- comment and security label entries for the whole database, if present,
- to make their tags start with <literal>DATABASE</literal> so that they
- also follow this convention. This prevents false matches in code that
- tries to identify large-object-related entries by seeing if the tag
- starts with <literal>LARGE OBJECT</literal>. That could have resulted
- in misclassifying entries as data rather than schema, with undesirable
- results in a schema-only or data-only dump.
- </para>
-
- <para>
- Note that this change has user-visible results in the output
- of <command>pg_restore --list</command>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rename <application>pg_rewind</application>'s
- <function>copy_file_range</function> function to avoid conflict
- with new Linux system call of that name (Andres Freund)
- </para>
-
- <para>
- This change prevents build failures with newer glibc versions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>ecpg</application>, detect indicator arrays that do
- not have the correct length and report an error (David Rader)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid triggering a libc assertion
- in <filename>contrib/hstore</filename>, due to use
- of <function>memcpy()</function> with equal source and destination
- pointers (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Provide modern examples of how to auto-start Postgres on macOS
- (Tom Lane)
- </para>
-
- <para>
- The scripts in <filename>contrib/start-scripts/osx</filename> use
- infrastructure that's been deprecated for over a decade, and which no
- longer works at all in macOS releases of the last couple of years.
- Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
- containing scripts that use the newer <application>launchd</application>
- infrastructure.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect selection of configuration-specific libraries for
- OpenSSL on Windows (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support linking to MinGW-built versions of libperl (Noah Misch)
- </para>
-
- <para>
- This allows building PL/Perl with some common Perl distributions for
- Windows.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix MSVC build to test whether 32-bit libperl
- needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
- </para>
-
- <para>
- Available Perl distributions are inconsistent about what they expect,
- and lack any reliable means of reporting it, so resort to a build-time
- test on what the library being used actually does.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, install the crash dump handler earlier in postmaster
- startup (Takayuki Tsunakawa)
- </para>
-
- <para>
- This may allow collection of a core dump for some early-startup
- failures that did not produce a dump before.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, avoid encoding-conversion-related crashes when emitting
- messages very early in postmaster startup (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use our existing Motorola 68K spinlock code on OpenBSD as
- well as NetBSD (David Carlier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add support for spinlocks on Motorola 88K (David Carlier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018c for DST law changes in Brazil, Sao Tome and Principe,
- plus historical corrections for Bolivia, Japan, and South Sudan.
- The <literal>US/Pacific-New</literal> zone has been removed (it was
- only an alias for <literal>America/Los_Angeles</literal> anyway).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-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 fourth 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>
- Ensure that <literal>INSERT ... ON CONFLICT DO UPDATE</literal> checks
- table permissions and RLS policies in all cases (Dean Rasheed)
- </para>
-
- <para>
- The update path of <literal>INSERT ... ON CONFLICT DO UPDATE</literal>
- requires <literal>SELECT</literal> permission on the columns of the
- arbiter index, but it failed to check for that in the case of an
- arbiter specified by constraint name.
- In addition, for a table with row level security enabled, it failed to
- check updated rows against the table's <literal>SELECT</literal>
- policies (regardless of how the arbiter index was specified).
- (CVE-2017-15099)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash due to rowtype mismatch
- in <function>json{b}_populate_recordset()</function>
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- These functions used the result rowtype specified in the <literal>FROM
- ... AS</literal> clause without checking that it matched the actual
- rowtype of the supplied tuple value. If it didn't, that would usually
- result in a crash, though disclosure of server memory contents seems
- possible as well.
- (CVE-2017-15098)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix sample server-start scripts to become <literal>$PGUSER</literal>
- before opening <literal>$PGLOG</literal> (Noah Misch)
- </para>
-
- <para>
- Previously, the postmaster log file was opened while still running as
- root. The database owner could therefore mount an attack against
- another system user by making <literal>$PGLOG</literal> be a symbolic
- link to some other file, which would then become corrupted by appending
- log messages.
- </para>
-
- <para>
- By default, these scripts are not installed anywhere. Users who have
- made use of them will need to manually recopy them, or apply the same
- changes to their modified versions. If the
- existing <literal>$PGLOG</literal> file is root-owned, it will need to
- be removed or renamed out of the way before restarting the server with
- the corrected script.
- (CVE-2017-12172)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix BRIN index summarization to handle concurrent table extension
- correctly (&Aacute;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>
- Fix missing temp-install prerequisites
- for <literal>check</literal>-like Make targets (Noah Misch)
- </para>
-
- <para>
- Some non-default test procedures that are meant to work
- like <literal>make check</literal> failed to ensure that the temporary
- installation was up to date.
- </para>
- </listitem>
-
- <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 &amp; 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&iacute;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 &lt;&gt; 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 (&Aacute;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, &Aacute;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>&lt;table&gt;</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 (&Aacute;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 (&Aacute;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
- (&Aacute;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&amp;'...'</literal>) or Unicode identifier
- (<literal>U&amp;"..."</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
- (&Aacute;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>&lt;I/O-Read-Time&gt;</literal>. That is now
- rendered as <literal>&lt;I-O-Read-Time&gt;</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
- (&Aacute;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,
- &Aacute;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 (&Aacute;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 (&Aacute;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&iacute;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) &gt;
- 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>&lt;=</literal>, <literal>&gt;=</literal>
- and <literal>&lt;&gt;</literal> has been reduced to match that of
- <literal>&lt;</literal>, <literal>&gt;</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="pg-stat-replication-view"><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>)
- (&Aacute;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 (&Aacute;lvaro Herrera, Petr Jel&iacute;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&iacute;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&iacute;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&iacute;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&iacute;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,
- &Aacute;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> (&Aacute;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
- (&Aacute;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> (&Aacute;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>
- (&Aacute;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&iacute;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">&lt;-&gt;</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&iacute;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>=&gt;</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>=&gt;</literal> to be a user-defined operator.
- Creation of user-defined <literal>=&gt;</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 (&Aacute;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 &#8211;&#8211;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 &#8211;&#8211;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&eacute;rit&eacute;)
- </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&iacute;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 &#8211;&#8211;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 &#8211;&#8211;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 &#8211;&#8211;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&iacute;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>
- (&Aacute;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>