aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/release-9.4.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/release-9.4.sgml')
-rw-r--r--doc/src/sgml/release-9.4.sgml13157
1 files changed, 0 insertions, 13157 deletions
diff --git a/doc/src/sgml/release-9.4.sgml b/doc/src/sgml/release-9.4.sgml
deleted file mode 100644
index 42feaa65ccc..00000000000
--- a/doc/src/sgml/release-9.4.sgml
+++ /dev/null
@@ -1,13157 +0,0 @@
-<!-- doc/src/sgml/release-9.4.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-9-4-20">
- <title>Release 9.4.20</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-11-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.19.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.20</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.18,
- see <xref linkend="release-9-4-18">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix 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>
- 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>
- 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>
- 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>
- 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>
- 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 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>
- 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>
- <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-4-19">
- <title>Release 9.4.19</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-08-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.18.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.19</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.18,
- see <xref linkend="release-9-4-18">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix failure to reset <application>libpq</application>'s state fully
- between connection attempts (Tom Lane)
- </para>
-
- <para>
- An unprivileged user of <filename>dblink</filename>
- or <filename>postgres_fdw</filename> could bypass the checks intended
- to prevent use of server-side credentials, such as
- a <filename>~/.pgpass</filename> file owned by the operating-system
- user running the server. Servers allowing peer authentication on
- local connections are particularly vulnerable. Other attacks such
- as SQL injection into a <filename>postgres_fdw</filename> session
- are also possible.
- Attacking <filename>postgres_fdw</filename> in this way requires the
- ability to create a foreign server object with selected connection
- parameters, but any user with access to <filename>dblink</filename>
- could exploit the problem.
- In general, an attacker with the ability to select the connection
- parameters for a <application>libpq</application>-using application
- could cause mischief, though other plausible attack scenarios are
- harder to think of.
- Our thanks to Andrew Krasichkov for reporting this issue.
- (CVE-2018-10915)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that updates to the <structfield>relfrozenxid</structfield>
- and <structfield>relminmxid</structfield> values
- for <quote>nailed</quote> system catalogs are processed in a timely
- fashion (Andres Freund)
- </para>
-
- <para>
- Overoptimistic caching rules could prevent these updates from being
- seen by other sessions, leading to spurious errors and/or data
- corruption. The problem was significantly worse for shared catalogs,
- such as <structname>pg_authid</structname>, because the stale cache
- data could persist into new sessions as well as existing ones.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix case where a freshly-promoted standby crashes before having
- completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
- Horiguchi, Pavan Deolasee, &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>
- 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 crash in <filename>contrib/ltree</filename>'s
- <function>lca()</function> function when the input array is empty
- (Pierre Ducroquet)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix various error-handling code paths in which an incorrect error code
- might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rearrange makefiles to ensure that programs link to freshly-built
- libraries (such as <filename>libpq.so</filename>) rather than ones
- that might exist in the system library directories (Tom Lane)
- </para>
-
- <para>
- This avoids problems when building on platforms that supply old copies
- of <productname>PostgreSQL</productname> libraries.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018e for DST law changes in North Korea, plus historical
- corrections for Czechoslovakia.
- </para>
-
- <para>
- This update includes a redefinition of <quote>daylight savings</quote>
- in Ireland, as well as for some past years in Namibia and
- Czechoslovakia. In those jurisdictions, legally standard time is
- observed in summer, and daylight savings time in winter, so that the
- daylight savings offset is one hour behind standard time not one hour
- ahead. This does not affect either the actual UTC offset or the
- timezone abbreviations in use; the only known effect is that
- the <structfield>is_dst</structfield> column in
- the <structname>pg_timezone_names</structname> view will now be true
- in winter and false in summer in these cases.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-18">
- <title>Release 9.4.18</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-05-10</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.17.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.18</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if the function marking mistakes mentioned in the first
- changelog entry below affect you, you will want to take steps to
- correct your database catalogs.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.17,
- see <xref linkend="release-9-4-17">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix incorrect volatility markings on a few built-in functions
- (Thomas Munro, Tom Lane)
- </para>
-
- <para>
- The functions
- <function>query_to_xml</function>,
- <function>cursor_to_xml</function>,
- <function>cursor_to_xmlschema</function>,
- <function>query_to_xmlschema</function>, and
- <function>query_to_xml_and_xmlschema</function>
- should be marked volatile because they execute user-supplied queries
- that might contain volatile operations. They were not, leading to a
- risk of incorrect query optimization. This has been repaired for new
- installations by correcting the initial catalog data, but existing
- installations will continue to contain the incorrect markings.
- Practical use of these functions seems to pose little hazard, but in
- case of trouble, it can be fixed by manually updating these
- functions' <structname>pg_proc</structname> entries, for example
- <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean,
- boolean, text) VOLATILE</literal>. (Note that that will need to be
- done in each database of the installation.) Another option is
- to <application>pg_upgrade</application> the database to a version
- containing the corrected initial data.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed
- TOAST entries (Pavan Deolasee)
- </para>
-
- <para>
- Once the OID counter has wrapped around, it's possible to assign a
- TOAST value whose OID matches a previously deleted entry in the same
- TOAST table. If that entry were not yet vacuumed away, this resulted
- in <quote>unexpected chunk number 0 (expected 1) for toast
- value <replaceable>nnnnn</replaceable></quote> errors, which would
- persist until the dead entry was removed
- by <command>VACUUM</command>. Fix by not selecting such OIDs when
- creating a new TOAST entry.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Change <command>ANALYZE</command>'s algorithm for updating
- <structname>pg_class</structname>.<structfield>reltuples</structfield>
- (David Gould)
- </para>
-
- <para>
- Previously, pages not actually scanned by <command>ANALYZE</command>
- were assumed to retain their old tuple density. In a large table
- where <command>ANALYZE</command> samples only a small fraction of the
- pages, this meant that the overall tuple density estimate could not
- change very much, so that <structfield>reltuples</structfield> would
- change nearly proportionally to changes in the table's physical size
- (<structfield>relpages</structfield>) regardless of what was actually
- happening in the table. This has been observed to result
- in <structfield>reltuples</structfield> becoming so much larger than
- reality as to effectively shut off autovacuuming. To fix, assume
- that <command>ANALYZE</command>'s sample is a statistically unbiased
- sample of the table (as it should be), and just extrapolate the
- density observed within those pages to the whole table.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid deadlocks in concurrent <command>CREATE INDEX
- CONCURRENTLY</command> commands that are run
- under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE
- READ</literal> transaction isolation (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail
- when the referenced cursor uses an index-only-scan plan (Yugo Nagata,
- Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect planning of join clauses pushed into parameterized
- paths (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This error could result in misclassifying a condition as
- a <quote>join filter</quote> for an outer join when it should be a
- plain <quote>filter</quote> condition, leading to incorrect join
- output.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix misoptimization of <literal>CHECK</literal> constraints having
- provably-NULL subclauses of
- top-level <literal>AND</literal>/<literal>OR</literal> conditions
- (Tom Lane, Dean Rasheed)
- </para>
-
- <para>
- This could, for example, allow constraint exclusion to exclude a
- child table that should not be excluded from a query.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid failure if a query-cancel or session-termination interrupt
- occurs while committing a prepared transaction (Stas Kelvich)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix query-lifespan memory leakage in repeatedly executed hash joins
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix overly strict sanity check
- in <function>heap_prepare_freeze_tuple</function>
- (&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>
- Fix overflow handling in <application>PL/pgSQL</application>
- integer <command>FOR</command> loops (Tom Lane)
- </para>
-
- <para>
- The previous coding failed to detect overflow of the loop variable
- on some non-gcc compilers, leading to an infinite loop.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Adjust <application>PL/Python</application> regression tests to pass
- under Python 3.7 (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support testing <application>PL/Python</application> and related
- modules when building with Python 3 and MSVC (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rename internal <function>b64_encode</function>
- and <function>b64_decode</function> functions to avoid conflict with
- Solaris 11.4 built-in functions (Rainer Orth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Sync our copy of the timezone library with IANA tzcode release 2018e
- (Tom Lane)
- </para>
-
- <para>
- This fixes the <application>zic</application> timezone data compiler
- to cope with negative daylight-savings offsets. While
- the <productname>PostgreSQL</productname> project will not
- immediately ship such timezone data, <application>zic</application>
- might be used with timezone data obtained directly from IANA, so it
- seems prudent to update <application>zic</application> now.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018d for DST law changes in Palestine and Antarctica (Casey
- Station), plus historical corrections for Portugal and its colonies,
- as well as Enderbury, Jamaica, Turks &amp; Caicos Islands, and
- Uruguay.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-17">
- <title>Release 9.4.17</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-03-01</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.16.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.17</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you run an installation in which not all users are mutually
- trusting, or if you maintain an application or extension that is
- intended for use in arbitrary situations, it is strongly recommended
- that you read the documentation changes described in the first changelog
- entry below, and take suitable steps to ensure that your installation or
- code is secure.
- </para>
-
- <para>
- Also, the changes described in the second changelog entry below may
- cause functions used in index expressions or materialized views to fail
- during auto-analyze, or when reloading from a dump. After upgrading,
- monitor the server logs for such problems, and fix affected functions.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.13,
- see <xref linkend="release-9-4-13">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Document how to configure installations and applications to guard
- against search-path-dependent trojan-horse attacks from other users
- (Noah Misch)
- </para>
-
- <para>
- Using a <varname>search_path</varname> setting that includes any
- schemas writable by a hostile user enables that user to capture
- control of queries and then run arbitrary SQL code with the
- permissions of the attacked user. While it is possible to write
- queries that are proof against such hijacking, it is notationally
- tedious, and it's very easy to overlook holes. Therefore, we now
- recommend configurations in which no untrusted schemas appear in
- one's search path. Relevant documentation appears in
- <xref linkend="ddl-schemas-patterns"> (for database administrators and users),
- <xref linkend="libpq-connect"> (for application authors),
- <xref linkend="extend-extensions-style"> (for extension authors), and
- <xref linkend="sql-createfunction"> (for authors
- of <literal>SECURITY DEFINER</literal> functions).
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid use of insecure <varname>search_path</varname> settings
- in <application>pg_dump</application> and other client programs
- (Noah Misch, Tom Lane)
- </para>
-
- <para>
- <application>pg_dump</application>,
- <application>pg_upgrade</application>,
- <application>vacuumdb</application> and
- other <productname>PostgreSQL</productname>-provided applications were
- themselves vulnerable to the type of hijacking described in the previous
- changelog entry; since these applications are commonly run by
- superusers, they present particularly attractive targets. To make them
- secure whether or not the installation as a whole has been secured,
- modify them to include only the <structname>pg_catalog</structname>
- schema in their <varname>search_path</varname> settings.
- Autovacuum worker processes now do the same, as well.
- </para>
-
- <para>
- In cases where user-provided functions are indirectly executed by
- these programs &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-4-16">
- <title>Release 9.4.16</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-02-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.15.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.16</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.13,
- see <xref linkend="release-9-4-13">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Ensure that all temporary files made
- by <application>pg_upgrade</application> are non-world-readable
- (Tom Lane, Noah Misch)
- </para>
-
- <para>
- <application>pg_upgrade</application> normally restricts its
- temporary files to be readable and writable only by the calling user.
- But the temporary file containing <literal>pg_dumpall -g</literal>
- output would be group- or world-readable, or even writable, if the
- user's <literal>umask</literal> setting allows. In typical usage on
- multi-user machines, the <literal>umask</literal> and/or the working
- directory's permissions would be tight enough to prevent problems;
- but there may be people using <application>pg_upgrade</application>
- in scenarios where this oversight would permit disclosure of database
- passwords to unfriendly eyes.
- (CVE-2018-1053)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix vacuuming of tuples that were updated while key-share locked
- (Andres Freund, &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>
- Avoid unnecessary failure in a query on an inheritance tree that
- occurs concurrently with some child table being removed from the tree
- by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix spurious deadlock failures when multiple sessions are
- running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Repair failure with correlated sub-<literal>SELECT</literal>
- inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
- subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>could not devise a query plan for the given query</quote>
- planner failure for some cases involving nested <literal>UNION
- ALL</literal> inside a lateral subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix logical decoding to correctly clean up disk files for crashed
- transactions (Atsushi Torikoshi)
- </para>
-
- <para>
- Logical decoding may spill WAL records to disk for transactions
- generating many WAL records. Normally these files are cleaned up
- after the transaction's commit or abort record arrives; but if
- no such record is ever seen, the removal code misbehaved.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix walsender timeout failure and failure to respond to interrupts
- when processing a large transaction (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>has_sequence_privilege()</function> to
- support <literal>WITH GRANT OPTION</literal> tests,
- as other privilege-testing functions do (Joe Conway)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In databases using UTF8 encoding, ignore any XML declaration that
- asserts a different encoding (Pavel Stehule, Noah Misch)
- </para>
-
- <para>
- We always store XML strings in the database encoding, so allowing
- libxml to act on a declaration of another encoding gave wrong results.
- In encodings other than UTF8, we don't promise to support non-ASCII
- XML data anyway, so retain the previous behavior for bug compatibility.
- This change affects only <function>xpath()</function> and related
- functions; other XML code paths already acted this way.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Provide for forward compatibility with future minor protocol versions
- (Robert Haas, Badrul Chowdhury)
- </para>
-
- <para>
- Up to now, <productname>PostgreSQL</productname> servers simply
- rejected requests to use protocol versions newer than 3.0, so that
- there was no functional difference between the major and minor parts
- of the protocol version number. Allow clients to request versions 3.x
- without failing, sending back a message showing that the server only
- understands 3.0. This makes no difference at the moment, but
- back-patching this change should allow speedier introduction of future
- minor protocol upgrades.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Cope with failure to start a parallel worker process
- (Amit Kapila, Robert Haas)
- </para>
-
- <para>
- Parallel query previously tended to hang indefinitely if a worker
- could not be started, as the result of <literal>fork()</literal>
- failure or other low-probability problems.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent stack-overflow crashes when planning extremely deeply
- nested set operations
- (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix null-pointer crashes for some types of LDAP URLs appearing
- in <filename>pg_hba.conf</filename> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix sample <function>INSTR()</function> functions in the PL/pgSQL
- documentation (Yugo Nagata, Tom Lane)
- </para>
-
- <para>
- These functions are stated to
- be <trademark class="registered">Oracle</trademark> compatible, but
- they weren't exactly. In particular, there was a discrepancy in the
- interpretation of a negative third parameter: Oracle thinks that a
- negative value indicates the last place where the target substring can
- begin, whereas our functions took it as the last place where the
- target can end. Also, Oracle throws an error for a zero or negative
- fourth parameter, whereas our functions returned zero.
- </para>
-
- <para>
- The sample code has been adjusted to match Oracle's behavior more
- precisely. Users who have copied this code into their applications
- may wish to update their copies.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</application> to make ACL (permissions),
- comment, and security label entries reliably identifiable in archive
- output formats (Tom Lane)
- </para>
-
- <para>
- The <quote>tag</quote> portion of an ACL archive entry was usually
- just the name of the associated object. Make it start with the object
- type instead, bringing ACLs into line with the convention already used
- for comment and security label archive entries. Also, fix the
- comment and security label entries for the whole database, if present,
- to make their tags start with <literal>DATABASE</literal> so that they
- also follow this convention. This prevents false matches in code that
- tries to identify large-object-related entries by seeing if the tag
- starts with <literal>LARGE OBJECT</literal>. That could have resulted
- in misclassifying entries as data rather than schema, with undesirable
- results in a schema-only or data-only dump.
- </para>
-
- <para>
- Note that this change has user-visible results in the output
- of <command>pg_restore --list</command>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>ecpg</application>, detect indicator arrays that do
- not have the correct length and report an error (David Rader)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid triggering a libc assertion
- in <filename>contrib/hstore</filename>, due to use
- of <function>memcpy()</function> with equal source and destination
- pointers (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Provide modern examples of how to auto-start Postgres on macOS
- (Tom Lane)
- </para>
-
- <para>
- The scripts in <filename>contrib/start-scripts/osx</filename> use
- infrastructure that's been deprecated for over a decade, and which no
- longer works at all in macOS releases of the last couple of years.
- Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
- containing scripts that use the newer <application>launchd</application>
- infrastructure.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect selection of configuration-specific libraries for
- OpenSSL on Windows (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support linking to MinGW-built versions of libperl (Noah Misch)
- </para>
-
- <para>
- This allows building PL/Perl with some common Perl distributions for
- Windows.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix MSVC build to test whether 32-bit libperl
- needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
- </para>
-
- <para>
- Available Perl distributions are inconsistent about what they expect,
- and lack any reliable means of reporting it, so resort to a build-time
- test on what the library being used actually does.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, install the crash dump handler earlier in postmaster
- startup (Takayuki Tsunakawa)
- </para>
-
- <para>
- This may allow collection of a core dump for some early-startup
- failures that did not produce a dump before.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, avoid encoding-conversion-related crashes when emitting
- messages very early in postmaster startup (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use our existing Motorola 68K spinlock code on OpenBSD as
- well as NetBSD (David Carlier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add support for spinlocks on Motorola 88K (David Carlier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018c for DST law changes in Brazil, Sao Tome and Principe,
- plus historical corrections for Bolivia, Japan, and South Sudan.
- The <literal>US/Pacific-New</literal> zone has been removed (it was
- only an alias for <literal>America/Los_Angeles</literal> anyway).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-15">
- <title>Release 9.4.15</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-11-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.14.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.15</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.13,
- see <xref linkend="release-9-4-13">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix crash due to rowtype mismatch
- in <function>json{b}_populate_recordset()</function>
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- These functions used the result rowtype specified in the <literal>FROM
- ... AS</literal> clause without checking that it matched the actual
- rowtype of the supplied tuple value. If it didn't, that would usually
- result in a crash, though disclosure of server memory contents seems
- possible as well.
- (CVE-2017-15098)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix sample server-start scripts to become <literal>$PGUSER</literal>
- before opening <literal>$PGLOG</literal> (Noah Misch)
- </para>
-
- <para>
- Previously, the postmaster log file was opened while still running as
- root. The database owner could therefore mount an attack against
- another system user by making <literal>$PGLOG</literal> be a symbolic
- link to some other file, which would then become corrupted by appending
- log messages.
- </para>
-
- <para>
- By default, these scripts are not installed anywhere. Users who have
- made use of them will need to manually recopy them, or apply the same
- changes to their modified versions. If the
- existing <literal>$PGLOG</literal> file is root-owned, it will need to
- be removed or renamed out of the way before restarting the server with
- the corrected script.
- (CVE-2017-12172)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash when logical decoding is invoked from a SPI-using function,
- in particular any function written in a PL language
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>json_build_array()</function>,
- <function>json_build_object()</function>, and their <type>jsonb</type>
- equivalents to handle explicit <literal>VARIADIC</literal> arguments
- correctly (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Properly reject attempts to convert infinite float values to
- type <type>numeric</type> (Tom Lane, KaiGai Kohei)
- </para>
-
- <para>
- Previously the behavior was platform-dependent.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix corner-case crashes when columns have been added to the end of a
- view (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Record proper dependencies when a view or rule
- contains <structname>FieldSelect</structname>
- or <structname>FieldStore</structname> expression nodes (Tom Lane)
- </para>
-
- <para>
- Lack of these dependencies could allow a column or data
- type <command>DROP</command> to go through when it ought to fail,
- thereby causing later uses of the view or rule to get errors.
- This patch does not do anything to protect existing views/rules,
- only ones created in the future.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Correctly detect hashability of range data types (Tom Lane)
- </para>
-
- <para>
- The planner mistakenly assumed that any range type could be hashed
- for use in hash joins or hash aggregation, but actually it must check
- whether the range's subtype has hash support. This does not affect any
- of the built-in range types, since they're all hashable anyway.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix low-probability loss of <command>NOTIFY</command> messages due to
- XID wraparound (Marko Tiikkaja, Tom Lane)
- </para>
-
- <para>
- If a session executed no queries, but merely listened for
- notifications, for more than 2 billion transactions, it started to miss
- some notifications from concurrently-committing transactions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid <systemitem>SIGBUS</systemitem> crash on Linux when a DSM memory
- request exceeds the space available in <systemitem>tmpfs</systemitem>
- (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent low-probability crash in processing of nested trigger firings
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <command>COPY</command>'s <literal>FREEZE</literal> option to
- work when the transaction isolation level is <literal>REPEATABLE
- READ</literal> or higher (Noah Misch)
- </para>
-
- <para>
- This case was unintentionally broken by a previous bug fix.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Correctly restore the umask setting when file creation fails
- in <command>COPY</command> or <function>lo_export()</function>
- (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Give a better error message for duplicate column names
- in <command>ANALYZE</command> (Nathan Bossart)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix mis-parsing of the last line in a
- non-newline-terminated <filename>pg_hba.conf</filename> file
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>libpq</application> to not require user's home
- directory to exist (Tom Lane)
- </para>
-
- <para>
- In v10, failure to find the home directory while trying to
- read <filename>~/.pgpass</filename> was treated as a hard error,
- but it should just cause that file to not be found. Both v10 and
- previous release branches made the same mistake when
- reading <filename>~/.pg_service.conf</filename>, though this was less
- obvious since that file is not sought unless a service name is
- specified.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>libpq</application> to guard against integer
- overflow in the row count of a <structname>PGresult</structname>
- (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</application>'s handling of out-of-scope cursor
- declarations with pointer or array variables (Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In ecpglib, correctly handle backslashes in string literals depending
- on whether <varname>standard_conforming_strings</varname> is set
- (Tsunakawa Takayuki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make ecpglib's Informix-compatibility mode ignore fractional digits in
- integer input strings, as expected (Gao Zengqi, Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Sync our copy of the timezone library with IANA release tzcode2017c
- (Tom Lane)
- </para>
-
- <para>
- This fixes various issues; the only one likely to be user-visible
- is that the default DST rules for a POSIX-style zone name, if
- no <filename>posixrules</filename> file exists in the timezone data
- directory, now match current US law rather than what it was a dozen
- years ago.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
- Sudan, Tonga, and Turks &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-4-14">
- <title>Release 9.4.14</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-08-31</para>
- </formalpara>
-
- <para>
- This release contains a small number of fixes from 9.4.13.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.14</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.13,
- see <xref linkend="release-9-4-13">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: REL9_4_STABLE [b51c8efc6] 2017-08-24 15:21:32 -0700
--->
- <para>
- Fix failure of walsender processes to respond to shutdown signals
- (Marco Nenciarini)
- </para>
-
- <para>
- A missed flag update resulted in walsenders continuing to run as long
- as they had a standby server connected, preventing primary-server
- shutdown unless immediate shutdown mode is used.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Show foreign tables
- in <structname>information_schema</>.<structname>table_privileges</>
- view (Peter Eisentraut)
- </para>
-
- <para>
- All other relevant <structname>information_schema</> views include
- foreign tables, but this one ignored them.
- </para>
-
- <para>
- Since this view definition is installed by <application>initdb</>,
- 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</>:
-<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</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Clean up handling of a fatal exit (e.g., due to receipt
- of <systemitem>SIGTERM</>) that occurs while trying to execute
- a <command>ROLLBACK</> 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</>.
- </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</> 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</> 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</>'s parser to allow <literal>RETURNING</>
- clauses without attached C variables (Michael Meskes)
- </para>
-
- <para>
- This allows <application>ecpg</> programs to contain SQL constructs
- that use <literal>RETURNING</> 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</> values.
- A side-effect that may be visible to extension developers is
- that <literal>_USE_32BIT_TIME_T</> is no longer defined globally
- in <productname>PostgreSQL</> Windows builds. This is not expected
- to cause problems, because type <type>time_t</> is not used
- in any <productname>PostgreSQL</> API definitions.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-13">
- <title>Release 9.4.13</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-08-10</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.12.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.13</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you use foreign data servers that make use of user
- passwords for authentication, see the first changelog entry below.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.12,
- see <xref linkend="release-9-4-12">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Further restrict visibility
- of <structname>pg_user_mappings</>.<structfield>umoptions</>, 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</> 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</> does not
- show the options in such cases, <structname>pg_user_mappings</>
- 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</> to <filename>postgresql.conf</>. (In versions
- supporting <command>ALTER SYSTEM</>, you can use that to make the
- configuration change, but you'll still need a restart.)
- </para>
- </step>
-
- <step>
- <para>
- In <emphasis>each</> database of the cluster,
- run the following commands as superuser:
-<programlisting>
-SET search_path = pg_catalog;
-CREATE OR REPLACE VIEW pg_user_mappings AS
- SELECT
- U.oid AS umid,
- S.oid AS srvid,
- S.srvname AS srvname,
- U.umuser AS umuser,
- CASE WHEN U.umuser = 0 THEN
- 'public'
- ELSE
- A.rolname
- END AS usename,
- CASE WHEN (U.umuser &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</>
- and <literal>template1</> databases, or the vulnerability will still
- exist in databases you create later. To fix <literal>template0</>,
- you'll need to temporarily make it accept connections.
- In <productname>PostgreSQL</> 9.5 and later, you can use
-<programlisting>
-ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
-</programlisting>
- and then after fixing <literal>template0</>, undo that with
-<programlisting>
-ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
-</programlisting>
- In prior versions, instead use
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
- </para>
- </step>
-
- <step>
- <para>
- Finally, remove the <literal>allow_system_table_mods</> configuration
- setting, and again restart the postmaster.
- </para>
- </step>
- </procedure>
- </listitem>
-
- <listitem>
- <para>
- Disallow empty passwords in all password-based authentication methods
- (Heikki Linnakangas)
- </para>
-
- <para>
- <application>libpq</> 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</> or other <application>libpq</>-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</>-based client,
- logging in could be possible, depending on which authentication
- method is configured. In particular the most common
- method, <literal>md5</>, accepted empty passwords.
- Change the server to reject empty passwords in all cases.
- (CVE-2017-7546)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <function>lo_put()</> check for <literal>UPDATE</> privilege on
- the target large object (Tom Lane, Michael Paquier)
- </para>
-
- <para>
- <function>lo_put()</> should surely require the same permissions
- as <function>lowrite()</>, but the check was missing, allowing any
- user to change the data in a large object.
- (CVE-2017-7548)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix concurrent locking of tuple update chains (&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</> WAL
- record (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>walsender</> to exit promptly when client requests
- shutdown (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <systemitem>SIGHUP</> and <systemitem>SIGUSR1</> 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</>
- processes due to race condition in postmaster (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: REL9_4_STABLE [23a2b818f] 2017-08-05 14:56:40 -0700
--->
- <para>
- Fix logical decoding failure with very wide tuples (Andres Freund)
- </para>
-
- <para>
- Logical decoding crashed on tuples that are wider than 64KB (after
- compression, but with all data in-line). The case arises only
- when <literal>REPLICA IDENTITY FULL</> is enabled for a table
- containing such tuples.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix leakage of small subtransactions spilled to disk during logical
- decoding (Andres Freund)
- </para>
-
- <para>
- This resulted in temporary files consuming excessive disk space.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce the work needed to build snapshots during creation of
- logical-decoding slots (Andres Freund, Petr Jelinek)
- </para>
-
- <para>
- The previous algorithm was infeasibly expensive on a server with a
- lot of open transactions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix race condition that could indefinitely delay creation of
- logical-decoding slots (Andres Freund, Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce overhead in processing syscache invalidation events (Tom Lane)
- </para>
-
- <para>
- This is particularly helpful for logical decoding, which triggers
- frequent cache invalidation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix cases where an <command>INSERT</> or <command>UPDATE</> 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</>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</> (Vik Fearing)
- </para>
-
- <para>
- Previously, we would rename a conflicting autogenerated array type
- out of the way during <command>CREATE</>; this fix extends that
- behavior to renaming operations.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <command>ALTER USER ... SET</> accepts all the syntax
- variants that <command>ALTER ROLE ... SET</> 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</> to the
- correct type (Heikki Linnakangas)
- </para>
-
- <para>
- <command>CREATE TYPE</> 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</> to leave broken
- function definitions behind.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce memory usage when <command>ANALYZE</> processes
- a <type>tsvector</> column (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix unnecessary precision loss and sloppy rounding when multiplying
- or dividing <type>money</> values by integers or floats (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Tighten checks for whitespace in functions that parse identifiers,
- such as <function>regprocedurein()</> (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</> symbols from Perl while
- compiling <application>PL/Perl</> (Ashutosh Sharma, Tom Lane)
- </para>
-
- <para>
- This avoids portability problems, typically manifesting as
- a <quote>handshake</> mismatch during library load, when working with
- recent Perl versions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>libpq</>, 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</>, fix failure when <command>COPY FROM STDIN</>
- is ended with a keyboard EOF signal and then another <command>COPY
- FROM STDIN</> 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</> and <application>pg_restore</> to
- emit <command>REFRESH MATERIALIZED VIEW</> 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>pg_restore</>'s
- reporting of error conditions originating in <application>zlib</>
- (Vladimir Kunschikov, &Aacute;lvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</> with the <option>--clean</> 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</> to not emit invalid SQL for an empty
- operator class (Daniel Gustafsson)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</> 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()</> to print correct output for
- the <literal>ON SELECT</> rule of a view whose columns have been
- renamed (Tom Lane)
- </para>
-
- <para>
- In some corner cases, <application>pg_dump</> relies
- on <function>pg_get_ruledef()</> 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</> with no common columns (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix dumping of function expressions in the <literal>FROM</> 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</> output to stdout on Windows
- (Haribabu Kommi)
- </para>
-
- <para>
- A backup written to stdout would contain corrupt data due to failure
- to put the file descriptor into binary mode.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</> to ensure that the ending WAL record
- does not have <xref linkend="guc-wal-level"> = <literal>minimum</>
- (Bruce Momjian)
- </para>
-
- <para>
- This condition could prevent upgraded standby servers from
- reconnecting.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <filename>postgres_fdw</>, re-establish connections to remote
- servers after <command>ALTER SERVER</> or <command>ALTER USER
- MAPPING</> 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</>, 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</> to provide more room for
- extensions (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Always use <option>-fPIC</>, not <option>-fpic</>, when building
- shared libraries with gcc (Tom Lane)
- </para>
-
- <para>
- This supports larger extension libraries on platforms where it makes
- a difference.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix unescaped-braces issue in our build scripts for Microsoft MSVC,
- to avoid a warning or error from recent Perl versions (Andrew
- Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In MSVC builds, handle the case where the <application>openssl</>
- library is not within a <filename>VC</> subdirectory (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In MSVC builds, add proper include path for <application>libxml2</>
- header files (Andrew Dunstan)
- </para>
-
- <para>
- This fixes a former need to move things around in standard Windows
- installations of <application>libxml2</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In MSVC builds, recognize a Tcl library that is
- named <filename>tcl86.lib</> (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In MSVC builds, honor <literal>PROVE_FLAGS</> settings
- on <filename>vcregress.pl</>'s command line (Andrew Dunstan)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-12">
- <title>Release 9.4.12</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-05-11</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.11.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.12</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you use foreign data servers that make use of user
- passwords for authentication, see the first changelog entry below.
- </para>
-
- <para>
- Also, if you are using third-party replication tools that depend
- on <quote>logical decoding</>, see the fourth changelog entry below.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.11,
- see <xref linkend="release-9-4-11">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Restrict visibility
- of <structname>pg_user_mappings</>.<structfield>umoptions</>, to
- protect passwords stored as user mapping options
- (Michael Paquier, Feike Steenbergen)
- </para>
-
- <para>
- The previous coding allowed the owner of a foreign server object,
- or anyone he has granted server <literal>USAGE</> permission to,
- to see the options for all user mappings associated with that server.
- This might well include passwords for other users.
- Adjust the view definition to match the behavior of
- <structname>information_schema.user_mapping_options</>, namely that
- these options are visible to the user being mapped, or if the mapping
- is for <literal>PUBLIC</literal> and the current user is the server
- owner, or if the current user is a superuser.
- (CVE-2017-7486)
- </para>
-
- <para>
- By itself, this patch will only fix the behavior in newly initdb'd
- databases. If you wish to apply this change in an existing database,
- follow the corrected procedure shown in the changelog entry for
- CVE-2017-7547, in <xref linkend="release-9-4-13">.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent exposure of statistical information via leaky operators
- (Peter Eisentraut)
- </para>
-
- <para>
- Some selectivity estimation functions in the planner will apply
- user-defined operators to values obtained
- from <structname>pg_statistic</>, such as most common values and
- histogram entries. This occurs before table permissions are checked,
- so a nefarious user could exploit the behavior to obtain these values
- for table columns he does not have permission to read. To fix,
- fall back to a default estimate if the operator's implementation
- function is not certified leak-proof and the calling user does not have
- permission to read the table column whose statistics are needed.
- At least one of these criteria is satisfied in most cases in practice.
- (CVE-2017-7484)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Restore <application>libpq</>'s recognition of
- the <envar>PGREQUIRESSL</> environment variable (Daniel Gustafsson)
- </para>
-
- <para>
- Processing of this environment variable was unintentionally dropped
- in <productname>PostgreSQL</> 9.3, but its documentation remained.
- This creates a security hazard, since users might be relying on the
- environment variable to force SSL-encrypted connections, but that
- would no longer be guaranteed. Restore handling of the variable,
- but give it lower priority than <envar>PGSSLMODE</>, to avoid
- breaking configurations that work correctly with post-9.3 code.
- (CVE-2017-7485)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possibly-invalid initial snapshot during logical decoding
- (Petr Jelinek, Andres Freund)
- </para>
-
- <para>
- The initial snapshot created for a logical decoding replication slot
- was potentially incorrect. This could cause third-party tools that
- use logical decoding to copy incomplete/inconsistent initial data.
- This was more likely to happen if the source server was busy at the
- time of slot creation, or if another logical slot already existed.
- </para>
-
- <para>
- If you are using a replication tool that depends on logical decoding,
- and it should have copied a nonempty data set at the start of
- replication, it is advisable to recreate the replica after
- installing this update, or to verify its contents against the source
- server.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible corruption of <quote>init forks</> of unlogged indexes
- (Robert Haas, Michael Paquier)
- </para>
-
- <para>
- This could result in an unlogged index being set to an invalid state
- after a crash and restart. Such a problem would persist until the
- index was dropped and rebuilt.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect reconstruction of <structname>pg_subtrans</> entries
- when a standby server replays a prepared but uncommitted two-phase
- transaction (Tom Lane)
- </para>
-
- <para>
- In most cases this turned out to have no visible ill effects, but in
- corner cases it could result in circular references
- in <structname>pg_subtrans</>, potentially causing infinite loops
- in queries that examine rows modified by the two-phase transaction.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid possible crash in <application>walsender</> due to failure
- to initialize a string buffer (Stas Kelvich, Fujii Masao)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix postmaster's handling of <function>fork()</> failure for a
- background worker process (Tom Lane)
- </para>
-
- <para>
- Previously, the postmaster updated portions of its state as though
- the process had been launched successfully, resulting in subsequent
- confusion.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure parsing of queries in extension scripts sees the results of
- immediately-preceding DDL (Julien Rouhaud, Tom Lane)
- </para>
-
- <para>
- Due to lack of a cache flush step between commands in an extension
- script file, non-utility queries might not see the effects of an
- immediately preceding catalog change, such as <command>ALTER TABLE
- ... RENAME</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
- COLUMN TYPE</> rebuilds an existing index (Noah Misch)
- </para>
-
- <para>
- The command failed if the calling user did not currently have
- <literal>CREATE</> privilege for the tablespace containing the index.
- That behavior seems unhelpful, so skip the check, allowing the
- index to be rebuilt where it is.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</> to not recurse
- to child tables when the constraint is marked <literal>NO INHERIT</>
- (Amit Langote)
- </para>
-
- <para>
- This fix prevents unwanted <quote>constraint does not exist</> failures
- when no matching constraint is present in the child tables.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>VACUUM</> to account properly for pages that could not
- be scanned due to conflicting page pins (Andrew Gierth)
- </para>
-
- <para>
- This tended to lead to underestimation of the number of tuples in
- the table. In the worst case of a small heavily-contended
- table, <command>VACUUM</> could incorrectly report that the table
- contained no tuples, leading to very bad planning choices.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that bulk-tuple-transfer loops within a hash join are
- interruptible by query cancel requests (Tom Lane, Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix integer-overflow problems in <type>interval</> comparison (Kyotaro
- Horiguchi, Tom Lane)
- </para>
-
- <para>
- The comparison operators for type <type>interval</> could yield wrong
- answers for intervals larger than about 296000 years. Indexes on
- columns containing such large values should be reindexed, since they
- may be corrupt.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>cursor_to_xml()</> to produce valid output
- with <replaceable>tableforest</> = false
- (Thomas Munro, Peter Eisentraut)
- </para>
-
- <para>
- Previously it failed to produce a wrapping <literal>&lt;table&gt;</>
- element.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix roundoff problems in <function>float8_timestamptz()</>
- and <function>make_interval()</> (Tom Lane)
- </para>
-
- <para>
- These functions truncated, rather than rounded, when converting a
- floating-point value to integer microseconds; that could cause
- unexpectedly off-by-one results.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve performance of <structname>pg_timezone_names</> view
- (Tom Lane, David Rowley)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce memory management overhead for contexts containing many large
- blocks (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix sloppy handling of corner-case errors from <function>lseek()</>
- and <function>close()</> (Tom Lane)
- </para>
-
- <para>
- Neither of these system calls are likely to fail in typical situations,
- but if they did, <filename>fd.c</> could get quite confused.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect check for whether postmaster is running as a Windows
- service (Michael Paquier)
- </para>
-
- <para>
- This could result in attempting to write to the event log when that
- isn't accessible, so that no logging happens at all.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</> to support <command>COMMIT PREPARED</>
- and <command>ROLLBACK PREPARED</> (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix a double-free error when processing dollar-quoted string literals
- in <application>ecpg</> (Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>pg_dump</>, fix incorrect schema and owner marking for
- comments and security labels of some types of database objects
- (Giuseppe Broccolo, Tom Lane)
- </para>
-
- <para>
- In simple cases this caused no ill effects; but for example, a
- schema-selective restore might omit comments it should include, because
- they were not marked as belonging to the schema of their associated
- object.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid emitting an invalid list file in <literal>pg_restore -l</>
- when SQL object names contain newlines (Tom Lane)
- </para>
-
- <para>
- Replace newlines by spaces, which is sufficient to make the output
- valid for <literal>pg_restore -L</>'s purposes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</> to transfer comments and security labels
- attached to <quote>large objects</> (blobs) (Stephen Frost)
- </para>
-
- <para>
- Previously, blobs were correctly transferred to the new database, but
- any comments or security labels attached to them were lost.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve error handling
- in <filename>contrib/adminpack</>'s <function>pg_file_write()</>
- function (Noah Misch)
- </para>
-
- <para>
- Notably, it failed to detect errors reported
- by <function>fclose()</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <filename>contrib/dblink</>, avoid leaking the previous unnamed
- connection when establishing a new unnamed connection (Joe Conway)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/pg_trgm</>'s extraction of trigrams from regular
- expressions (Tom Lane)
- </para>
-
- <para>
- In some cases it would produce a broken data structure that could never
- match anything, leading to GIN or GiST indexscans that use a trigram
- index not finding any matches to the regular expression.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <filename>contrib/postgres_fdw</>,
- transmit query cancellation requests to the remote server
- (Michael Paquier, Etsuro Fujita)
- </para>
-
- <para>
- Previously, a local query cancellation request did not cause an
- already-sent remote query to terminate early. This is a back-patch
- of work originally done for 9.6.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_4_STABLE [bb132cddf] 2017-04-15 20:16:03 -0400
-Branch: REL9_3_STABLE [fbfeceb25] 2017-04-17 12:51:40 -0400
-Branch: REL9_2_STABLE [58384149b] 2017-04-17 12:51:40 -0400
-Branch: REL9_3_STABLE [4e91330da] 2017-04-17 13:52:42 -0400
-Branch: REL9_2_STABLE [fb50c38e9] 2017-04-17 13:52:42 -0400
--->
- <para>
- Support OpenSSL 1.1.0 (Heikki Linnakangas, Andreas Karlsson, Tom Lane)
- </para>
-
- <para>
- This is a back-patch of work previously done in newer branches;
- it's needed since many platforms are adopting newer OpenSSL versions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support Tcl 8.6 in MSVC builds (&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</> release 2017b
- for DST law changes in Chile, Haiti, and Mongolia, plus historical
- corrections for Ecuador, Kazakhstan, Liberia, and Spain.
- Switch to numeric abbreviations for numerous time zones in South
- America, the Pacific and Indian oceans, and some Asian and Middle
- Eastern countries.
- </para>
-
- <para>
- The IANA time zone database previously provided textual abbreviations
- for all time zones, sometimes making up abbreviations that have little
- or no currency among the local population. They are in process of
- reversing that policy in favor of using numeric UTC offsets in zones
- where there is no evidence of real-world use of an English
- abbreviation. At least for the time being, <productname>PostgreSQL</>
- will continue to accept such removed abbreviations for timestamp input.
- But they will not be shown in the <structname>pg_timezone_names</>
- view nor used for output.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use correct daylight-savings rules for POSIX-style time zone names
- in MSVC builds (David Rowley)
- </para>
-
- <para>
- The Microsoft MSVC build scripts neglected to install
- the <filename>posixrules</> file in the timezone directory tree.
- This resulted in the timezone code falling back to its built-in
- rule about what DST behavior to assume for a POSIX-style time zone
- name. For historical reasons that still corresponds to the DST rules
- the USA was using before 2007 (i.e., change on first Sunday in April
- and last Sunday in October). With this fix, a POSIX-style zone name
- will use the current and historical DST transition dates of
- the <literal>US/Eastern</> zone. If you don't want that, remove
- the <filename>posixrules</> file, or replace it with a copy of some
- other zone file (see <xref linkend="datatype-timezones">). Note that
- due to caching, you may need to restart the server to get such changes
- to take effect.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-11">
- <title>Release 9.4.11</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-02-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.10.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.11</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if your installation has been affected by the bug described in
- the first changelog entry below, then after updating you may need
- to take action to repair corrupted indexes.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.10,
- see <xref linkend="release-9-4-10">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix a race condition that could cause indexes built
- with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
- (Pavan Deolasee, Tom Lane)
- </para>
-
- <para>
- If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
- that depends on a column not previously indexed, then rows
- updated by transactions that ran concurrently with
- the <command>CREATE INDEX</> command could have received incorrect
- index entries. If you suspect this may have happened, the most
- reliable solution is to rebuild affected indexes after installing
- this update.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that the special snapshot used for catalog scans is not
- invalidated by premature data pruning (Tom Lane)
- </para>
-
- <para>
- Backends failed to account for this snapshot when advertising their
- oldest xmin, potentially allowing concurrent vacuuming operations to
- remove data that was still needed. This led to transient failures
- along the lines of <quote>cache lookup failed for relation 1255</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Unconditionally WAL-log creation of the <quote>init fork</> for an
- unlogged table (Michael Paquier)
- </para>
-
- <para>
- Previously, this was skipped when <xref linkend="guc-wal-level">
- = <literal>minimal</>, but actually it's necessary even in that case
- to ensure that the unlogged table is properly reset to empty after a
- crash.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce interlocking on standby servers during the replay of btree
- index vacuuming operations (Simon Riggs)
- </para>
-
- <para>
- This change avoids substantial replication delays that sometimes
- occurred while replaying such operations.
- </para>
- </listitem>
-
- <listitem>
- <para>
- If the stats collector dies during hot standby, restart it (Takayuki
- Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that hot standby feedback works correctly when it's enabled at
- standby server start (Ants Aasma, Craig Ringer)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Check for interrupts while hot standby is waiting for a conflicting
- query (Simon Riggs)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid constantly respawning the autovacuum launcher in a corner case
- (Amit Khandekar)
- </para>
-
- <para>
- This fix avoids problems when autovacuum is nominally off and there
- are some tables that require freezing, but all such tables are
- already being processed by autovacuum workers.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix check for when an extension member object can be dropped (Tom Lane)
- </para>
-
- <para>
- Extension upgrade scripts should be able to drop member objects,
- but this was disallowed for serial-column sequences, and possibly
- other cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make sure <command>ALTER TABLE</> preserves index tablespace
- assignments when rebuilding indexes (Tom Lane, Michael Paquier)
- </para>
-
- <para>
- Previously, non-default settings
- of <xref linkend="guc-default-tablespace"> could result in broken
- indexes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect updating of trigger function properties when changing a
- foreign-key constraint's deferrability properties with <command>ALTER
- TABLE ... ALTER CONSTRAINT</> (Tom Lane)
- </para>
-
- <para>
- This led to odd failures during subsequent exercise of the foreign
- key, as the triggers were fired at the wrong times.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent dropping a foreign-key constraint if there are pending
- trigger events for the referenced relation (Tom Lane)
- </para>
-
- <para>
- This avoids <quote>could not find trigger <replaceable>NNN</></quote>
- or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix processing of OID column when a table with OIDs is associated to
- a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
- Langote)
- </para>
-
- <para>
- The OID column should be treated the same as regular user columns in
- this case, but it wasn't, leading to odd behavior in later
- inheritance changes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>CREATE OR REPLACE VIEW</> to update the view query
- before attempting to apply the new view options (Dean Rasheed)
- </para>
-
- <para>
- Previously the command would fail if the new options were
- inconsistent with the old view definition.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Report correct object identity during <command>ALTER TEXT SEARCH
- CONFIGURATION</> (Artur Zakirov)
- </para>
-
- <para>
- The wrong catalog OID was reported to extensions such as logical
- decoding.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Check for serializability conflicts before reporting
- constraint-violation failures (Thomas Munro)
- </para>
-
- <para>
- When using serializable transaction isolation, it is desirable
- that any error due to concurrent transactions should manifest
- as a serialization failure, thereby cueing the application that
- a retry might succeed. Unfortunately, this does not reliably
- happen for duplicate-key failures caused by concurrent insertions.
- This change ensures that such an error will be reported as a
- serialization error if the application explicitly checked for
- the presence of a conflicting key (and did not find it) earlier
- in the transaction.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
- an <command>UPDATE</> source expression (Tom Lane)
- </para>
-
- <para>
- This led to <quote>UPDATE target count mismatch --- internal
- error</>. Now the syntax is understood as a whole-row variable,
- as it would be in other contexts.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that column typmods are determined accurately for
- multi-row <literal>VALUES</> constructs (Tom Lane)
- </para>
-
- <para>
- This fixes problems occurring when the first value in a column has a
- determinable typmod (e.g., length for a <type>varchar</> value) but
- later values don't share the same limit.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Throw error for an unfinished Unicode surrogate pair at the end of a
- Unicode string (Tom Lane)
- </para>
-
- <para>
- Normally, a Unicode surrogate leading character must be followed by a
- Unicode surrogate trailing character, but the check for this was
- missed if the leading character was the last character in a Unicode
- string literal (<literal>U&amp;'...'</>) or Unicode identifier
- (<literal>U&amp;"..."</>).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that a purely negative text search query, such
- as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
- </para>
-
- <para>
- Such matches were found by GIN index searches, but not by sequential
- scans or GiST index searches.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
- subtree with an empty query (Artur Zakirov)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>ts_rewrite()</>'s handling of nested NOT operators
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
- (Heikki Linnakangas)
- </para>
-
- <para>
- The overrun occurred only if the input consisted entirely of single
- quotes and/or backslashes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent multiple calls of <function>pg_start_backup()</>
- and <function>pg_stop_backup()</> from running concurrently (Michael
- Paquier)
- </para>
-
- <para>
- This avoids an assertion failure, and possibly worse things, if
- someone tries to run these functions in parallel.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid discarding <type>interval</>-to-<type>interval</> casts
- that aren't really no-ops (Tom Lane)
- </para>
-
- <para>
- In some cases, a cast that should result in zeroing out
- low-order <type>interval</> fields was mistakenly deemed to be a
- no-op and discarded. An example is that casting from <type>INTERVAL
- MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that cached plans are invalidated by changes in foreign-table
- options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</> to dump user-defined casts and transforms
- that use built-in functions (Stephen Frost)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_restore</> with <option>--create --if-exists</>
- to behave more sanely if an archive contains
- unrecognized <command>DROP</> commands (Tom Lane)
- </para>
-
- <para>
- This doesn't fix any live bug, but it may improve the behavior in
- future if <application>pg_restore</> is used with an archive
- generated by a later <application>pg_dump</> version.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_basebackup</>'s rate limiting in the presence of
- slow I/O (Antonin Houska)
- </para>
-
- <para>
- If disk I/O was transiently much slower than the specified rate
- limit, the calculation overflowed, effectively disabling the rate
- limit for the rest of the run.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_basebackup</>'s handling of
- symlinked <filename>pg_stat_tmp</> and <filename>pg_replslot</>
- subdirectories (Magnus Hagander, Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible <application>pg_basebackup</> failure on standby
- server when including WAL files (Amit Kapila, Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that the Python exception objects we create for PL/Python are
- properly reference-counted (Rafa de la Torre, Tom Lane)
- </para>
-
- <para>
- This avoids failures if the objects are used after a Python garbage
- collection cycle has occurred.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
- as a column name (Tom Lane)
- </para>
-
- <para>
- This matches the (previously undocumented) behavior of
- PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
- namely that a magic <literal>.tupno</> column is inserted only if
- there isn't a real column named that.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow DOS-style line endings in <filename>~/.pgpass</> files,
- even on Unix (Vik Fearing)
- </para>
-
- <para>
- This change simplifies use of the same password file across Unix and
- Windows machines.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix one-byte buffer overrun if <application>ecpg</> is given a file
- name that ends with a dot (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
- PRIVILEGES</> (Gilles Darold, Stephen Frost)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>psql</>, treat an empty or all-blank setting of
- the <envar>PAGER</> environment variable as meaning <quote>no
- pager</> (Tom Lane)
- </para>
-
- <para>
- Previously, such a setting caused output intended for the pager to
- vanish entirely.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <filename>contrib/dblink</>'s reporting of
- low-level <application>libpq</> errors, such as out-of-memory
- (Joe Conway)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Teach <filename>contrib/dblink</> to ignore irrelevant server options
- when it uses a <filename>contrib/postgres_fdw</> foreign server as
- the source of connection options (Corey Huinker)
- </para>
-
- <para>
- Previously, if the foreign server object had options that were not
- also <application>libpq</> connection options, an error occurred.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, ensure that environment variable changes are propagated
- to DLLs built with debug options (Christian Ullrich)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Sync our copy of the timezone library with IANA release tzcode2016j
- (Tom Lane)
- </para>
-
- <para>
- This fixes various issues, most notably that timezone data
- installation failed if the target directory didn't support hard
- links.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2016j
- for DST law changes in northern Cyprus (adding a new zone
- Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
- and Antarctica/Casey.
- Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
- Switch to preferring numeric zone abbreviations for Tonga.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-10">
- <title>Release 9.4.10</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2016-10-27</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.9.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.10</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if your installation has been affected by the bug described in
- the first changelog entry below, then after updating you may need
- to take action to repair corrupted free space maps.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.6,
- see <xref linkend="release-9-4-6">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix WAL-logging of truncation of relation free space maps and
- visibility maps (Pavan Deolasee, Heikki Linnakangas)
- </para>
-
- <para>
- It was possible for these files to not be correctly restored during
- crash recovery, or to be written incorrectly on a standby server.
- Bogus entries in a free space map could lead to attempts to access
- pages that have been truncated away from the relation itself, typically
- producing errors like <quote>could not read block <replaceable>XXX</>:
- read only 0 of 8192 bytes</quote>. Checksum failures in the
- visibility map are also possible, if checksumming is enabled.
- </para>
-
- <para>
- Procedures for determining whether there is a problem and repairing it
- if so are discussed at
- <ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect creation of GIN index WAL records on big-endian machines
- (Tom Lane)
- </para>
-
- <para>
- The typical symptom was <quote>unexpected GIN leaf action</> errors
- during WAL replay.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
- have been updated by a subsequently-aborted transaction
- (&Aacute;lvaro Herrera)
- </para>
-
- <para>
- In 9.5 and later, the <command>SELECT</> would sometimes fail to
- return such tuples at all. A failure has not been proven to occur in
- earlier releases, but might be possible with concurrent updates.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
- </para>
-
- <para>
- The recheck would always see the CTE as returning no rows, typically
- leading to failure to update rows that were recently updated.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix improper repetition of previous results from hashed aggregation in
- a subquery (Andrew Gierth)
- </para>
-
- <para>
- The test to see if we can reuse a previously-computed hash table of
- the aggregate state values neglected the possibility of an outer query
- reference appearing in an aggregate argument expression. A change in
- the value of such a reference should lead to recalculating the hash
- table, but did not.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix query-lifespan memory leak in a bulk <command>UPDATE</> on a table
- with a <literal>PRIMARY KEY</> or <literal>REPLICA IDENTITY</> index
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>EXPLAIN</> to emit valid XML when
- <xref linkend="guc-track-io-timing"> is on (Markus Winand)
- </para>
-
- <para>
- Previously the XML output-format option produced syntactically invalid
- tags such as <literal>&lt;I/O-Read-Time&gt;</>. That is now
- rendered as <literal>&lt;I-O-Read-Time&gt;</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Suppress printing of zeroes for unmeasured times
- in <command>EXPLAIN</> (Maksim Milyutin)
- </para>
-
- <para>
- Certain option combinations resulted in printing zero values for times
- that actually aren't ever measured in that combination. Our general
- policy in <command>EXPLAIN</> is not to print such fields at all, so
- do that consistently in all cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix timeout length when <command>VACUUM</> is waiting for exclusive
- table lock so that it can truncate the table (Simon Riggs)
- </para>
-
- <para>
- The timeout was meant to be 50 milliseconds, but it was actually only
- 50 microseconds, causing <command>VACUUM</> to give up on truncation
- much more easily than intended. Set it to the intended value.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bugs in merging inherited <literal>CHECK</> constraints while
- creating or altering a table (Tom Lane, Amit Langote)
- </para>
-
- <para>
- Allow identical <literal>CHECK</> constraints to be added to a parent
- and child table in either order. Prevent merging of a valid
- constraint from the parent table with a <literal>NOT VALID</>
- constraint on the child. Likewise, prevent merging of a <literal>NO
- INHERIT</> child constraint with an inherited constraint.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove artificial restrictions on the values accepted
- by <function>numeric_in()</> and <function>numeric_recv()</>
- (Tom Lane)
- </para>
-
- <para>
- We allow numeric values up to the limit of the storage format (more
- than <literal>1e100000</>), so it seems fairly pointless
- that <function>numeric_in()</> rejected scientific-notation exponents
- above 1000. Likewise, it was silly for <function>numeric_recv()</> to
- reject more than 1000 digits in an input value.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid very-low-probability data corruption due to testing tuple
- visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
- Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix logical WAL decoding to work properly when a subtransaction's WAL
- output is large enough to spill to disk (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_4_STABLE [10ad15f48] 2016-09-01 11:45:16 -0400
--->
- <para>
- Fix buffer overread in logical WAL decoding (Tom Lane)
- </para>
-
- <para>
- Logical decoding of a tuple update record read 23 bytes too many,
- which was usually harmless but with very bad luck could result in a
- crash.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix file descriptor leakage when truncating a temporary relation of
- more than 1GB (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Disallow starting a standalone backend with <literal>standby_mode</>
- turned on (Michael Paquier)
- </para>
-
- <para>
- This can't do anything useful, since there will be no WAL receiver
- process to fetch more WAL data; and it could result in misbehavior
- in code that wasn't designed with this situation in mind.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Properly initialize replication slot state when recycling a
- previously-used slot (Michael Paquier)
- </para>
-
- <para>
- This failure to reset all of the fields of the slot could
- prevent <command>VACUUM</> from removing dead tuples.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Round shared-memory allocation request to a multiple of the actual
- huge page size when attempting to use huge pages on Linux (Tom Lane)
- </para>
-
- <para>
- This avoids possible failures during <function>munmap()</> on systems
- with atypical default huge page sizes. Except in crash-recovery
- cases, there were no ill effects other than a log message.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use a more random value for the dynamic shared memory control
- segment's ID (Robert Haas, Tom Lane)
- </para>
-
- <para>
- Previously, the same value would be chosen every time, because it was
- derived from <function>random()</> but <function>srandom()</> had not
- yet been called. While relatively harmless, this was not the intended
- behavior.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, retry creation of the dynamic shared memory control
- segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila)
- </para>
-
- <para>
- Windows sometimes returns <literal>ERROR_ACCESS_DENIED</> rather
- than <literal>ERROR_ALREADY_EXISTS</> when there is an existing
- segment. This led to postmaster startup failure due to believing that
- the former was an unrecoverable error.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Don't try to share SSL contexts across multiple connections
- in <application>libpq</> (Heikki Linnakangas)
- </para>
-
- <para>
- This led to assorted corner-case bugs, particularly when trying to use
- different SSL parameters for different connections.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
- </para>
-
- <para>
- The reported problem involved leaking an error report
- during <function>PQreset()</>, but there might be related cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>ecpg</>'s <option>--help</> and <option>--version</>
- options work consistently with our other executables (Haribabu Kommi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pgbench</>'s calculation of average latency
- (Fabien Coelho)
- </para>
-
- <para>
- The calculation was incorrect when there were <literal>\sleep</>
- commands in the script, or when the test duration was specified in
- number of transactions rather than total time.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>pg_dump</>, never dump range constructor functions
- (Tom Lane)
- </para>
-
- <para>
- This oversight led to <application>pg_upgrade</> failures with
- extensions containing range types, due to duplicate creation of the
- constructor functions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>pg_xlogdump</>, retry opening new WAL segments when
- using <option>--follow</> option (Magnus Hagander)
- </para>
-
- <para>
- This allows for a possible delay in the server's creation of the next
- segment.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_xlogdump</> to cope with a WAL file that begins
- with a continuation record spanning more than one page (Pavan
- Deolasee)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/pg_buffercache</> to work
- when <varname>shared_buffers</> exceeds 256GB (KaiGai Kohei)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
- of the <command>EXPLAIN</> it does when given the <option>-e</> option
- (Daniel Gustafsson)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Install TAP test infrastructure so that it's available for extension
- testing (Craig Ringer)
- </para>
-
- <para>
- When <productname>PostgreSQL</> has been configured
- with <option>--enable-tap-tests</>, <quote>make install</> will now
- install the Perl support files for TAP testing where PGXS can find
- them. This allows non-core extensions to
- use <literal>$(prove_check)</> without extra tests.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In MSVC builds, include <application>pg_recvlogical</> in a
- client-only installation (MauMau)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update Windows time zone mapping to recognize some time zone names
- added in recent Windows versions (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
- </para>
-
- <para>
- If a dynamic time zone abbreviation does not match any entry in the
- referenced time zone, treat it as equivalent to the time zone name.
- This avoids unexpected failures when IANA removes abbreviations from
- their time zone database, as they did in <application>tzdata</>
- release 2016f and seem likely to do again in the future. The
- consequences were not limited to not recognizing the individual
- abbreviation; any mismatch caused
- the <structname>pg_timezone_abbrevs</> view to fail altogether.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2016h
- for DST law changes in Palestine and Turkey, plus historical
- corrections for Turkey and some regions of Russia.
- Switch to numeric abbreviations for some time zones in Antarctica,
- the former Soviet Union, and Sri Lanka.
- </para>
-
- <para>
- The IANA time zone database previously provided textual abbreviations
- for all time zones, sometimes making up abbreviations that have little
- or no currency among the local population. They are in process of
- reversing that policy in favor of using numeric UTC offsets in zones
- where there is no evidence of real-world use of an English
- abbreviation. At least for the time being, <productname>PostgreSQL</>
- will continue to accept such removed abbreviations for timestamp input.
- But they will not be shown in the <structname>pg_timezone_names</>
- view nor used for output.
- </para>
-
- <para>
- In this update, <literal>AMT</> is no longer shown as being in use to
- mean Armenia Time. Therefore, we have changed the <literal>Default</>
- abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-9">
- <title>Release 9.4.9</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2016-08-11</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.8.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.9</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.6,
- see <xref linkend="release-9-4-6">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix possible mis-evaluation of
- nested <literal>CASE</>-<literal>WHEN</> expressions (Heikki
- Linnakangas, Michael Paquier, Tom Lane)
- </para>
-
- <para>
- A <literal>CASE</> expression appearing within the test value
- subexpression of another <literal>CASE</> could become confused about
- whether its own test value was null or not. Also, inlining of a SQL
- function implementing the equality operator used by
- a <literal>CASE</> expression could result in passing the wrong test
- value to functions called within a <literal>CASE</> expression in the
- SQL function's body. If the test values were of different data
- types, a crash might result; moreover such situations could be abused
- to allow disclosure of portions of server memory. (CVE-2016-5423)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix client programs' handling of special characters in database and
- role names (Noah Misch, Nathan Bossart, Michael Paquier)
- </para>
-
- <para>
- Numerous places in <application>vacuumdb</> and other client programs
- could become confused by database and role names containing double
- quotes or backslashes. Tighten up quoting rules to make that safe.
- Also, ensure that when a conninfo string is used as a database name
- parameter to these programs, it is correctly treated as such throughout.
- </para>
-
- <para>
- Fix handling of paired double quotes
- in <application>psql</>'s <command>\connect</>
- and <command>\password</> commands to match the documentation.
- </para>
-
- <para>
- Introduce a new <option>-reuse-previous</> option
- in <application>psql</>'s <command>\connect</> command to allow
- explicit control of whether to re-use connection parameters from a
- previous connection. (Without this, the choice is based on whether
- the database name looks like a conninfo string, as before.) This
- allows secure handling of database names containing special
- characters in <application>pg_dumpall</> scripts.
- </para>
-
- <para>
- <application>pg_dumpall</> now refuses to deal with database and role
- names containing carriage returns or newlines, as it seems impractical
- to quote those characters safely on Windows. In future we may reject
- such names on the server side, but that step has not been taken yet.
- </para>
-
- <para>
- These are considered security fixes because crafted object names
- containing special characters could have been used to execute
- commands with superuser privileges the next time a superuser
- executes <application>pg_dumpall</> or other routine maintenance
- operations. (CVE-2016-5424)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
- NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- The SQL standard specifies that <literal>IS NULL</> should return
- TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
- NULL</> yields TRUE), but this is not meant to apply recursively
- (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
- The core executor got this right, but certain planner optimizations
- treated the test as recursive (thus producing TRUE in both cases),
- and <filename>contrib/postgres_fdw</> could produce remote queries
- that misbehaved similarly.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make the <type>inet</> and <type>cidr</> data types properly reject
- IPv6 addresses with too many colon-separated fields (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent crash in <function>close_ps()</>
- (the <type>point</> <literal>##</> <type>lseg</> operator)
- for NaN input coordinates (Tom Lane)
- </para>
-
- <para>
- Make it return NULL instead of crashing.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid possible crash in <function>pg_get_expr()</> when inconsistent
- values are passed to it (Michael Paquier, Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix several one-byte buffer over-reads in <function>to_number()</>
- (Peter Eisentraut)
- </para>
-
- <para>
- In several cases the <function>to_number()</> function would read one
- more character than it should from the input string. There is a
- small chance of a crash, if the input happens to be adjacent to the
- end of memory.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Do not run the planner on the query contained in <literal>CREATE
- MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
- when <literal>WITH NO DATA</> is specified (Michael Paquier,
- Tom Lane)
- </para>
-
- <para>
- This avoids some unnecessary failure conditions, for example if a
- stable function invoked by the materialized view depends on a table
- that doesn't exist yet.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unsafe intermediate state during expensive paths
- through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
- </para>
-
- <para>
- Previously, these cases locked the target tuple (by setting its XMAX)
- but did not WAL-log that action, thus risking data integrity problems
- if the page were spilled to disk and then a database crash occurred
- before the tuple update could be completed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix hint bit update during WAL replay of row locking operations
- (Andres Freund)
- </para>
-
- <para>
- The only known consequence of this problem is that row locks held by
- a prepared, but uncommitted, transaction might fail to be enforced
- after a crash and restart.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unnecessary <quote>could not serialize access</> errors when
- acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
- (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid crash in <literal>postgres -C</> when the specified variable
- has a null string value (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible loss of large subtransactions in logical decoding
- (Petru-Florin Mihancea)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix failure of logical decoding when a subtransaction contains no
- actual changes (Marko Tiikkaja, Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that backends see up-to-date statistics for shared catalogs
- (Tom Lane)
- </para>
-
- <para>
- The statistics collector failed to update the statistics file for
- shared catalogs after a request from a regular backend. This problem
- was partially masked because the autovacuum launcher regularly makes
- requests that did cause such updates; however, it became obvious with
- autovacuum disabled.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid redundant writes of the statistics files when multiple
- backends request updates close together (Tom Lane, Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid consuming a transaction ID during <command>VACUUM</>
- (Alexander Korotkov)
- </para>
-
- <para>
- Some cases in <command>VACUUM</> unnecessarily caused an XID to be
- assigned to the current transaction. Normally this is negligible,
- but if one is up against the XID wraparound limit, consuming more
- XIDs during anti-wraparound vacuums is a very bad thing.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: REL9_4_STABLE [7a0f09da7] 2016-05-25 19:39:49 -0400
-Branch: REL9_3_STABLE [6537a48c5] 2016-05-25 19:39:49 -0400
-Branch: REL9_2_STABLE [294509ea9] 2016-05-25 19:39:49 -0400
-Branch: REL9_1_STABLE [de887cc8a] 2016-05-25 19:39:49 -0400
--->
- <para>
- Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
- (Simon Riggs, &Aacute;lvaro Herrera)
- </para>
-
- <para>
- <command>VACUUM FREEZE</> on an otherwise-idle master server could
- result in unnecessary cancellations of queries on its standby
- servers.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent possible failure when vacuuming multixact IDs in an
- installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
- &Aacute;lvaro Herrera)
- </para>
-
- <para>
- The usual symptom of this bug is errors
- like <quote>MultiXactId <replaceable>NNN</> has not been created
- yet -- apparent wraparound</quote>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- When a manual <command>ANALYZE</> specifies a column list, don't
- reset the table's <literal>changes_since_analyze</> counter
- (Tom Lane)
- </para>
-
- <para>
- If we're only analyzing some columns, we should not prevent routine
- auto-analyze from happening for the other columns.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
- for a unique or nearly-unique column with many null entries (Tom
- Lane)
- </para>
-
- <para>
- The nulls could get counted as though they were themselves distinct
- values, leading to serious planner misestimates in some types of
- queries.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent autovacuum from starting multiple workers for the same shared
- catalog (&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>
- <para>
- Avoid duplicate buffer lock release when abandoning a b-tree index
- page deletion attempt (Tom Lane)
- </para>
-
- <para>
- This mistake prevented <command>VACUUM</> from completing in some
- cases involving corrupt b-tree indexes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent infinite loop in GiST index build for geometric columns
- containing NaN component values (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/btree_gin</> to handle the smallest
- possible <type>bigint</> value correctly (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Teach libpq to correctly decode server version from future servers
- (Peter Eisentraut)
- </para>
-
- <para>
- It's planned to switch to two-part instead of three-part server
- version numbers for releases after 9.6. Make sure
- that <function>PQserverVersion()</> returns the correct value for
- such cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</>'s code for <literal>unsigned long long</>
- array elements (Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>pg_dump</> with both <option>-c</> and <option>-C</>
- options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
- command (David Johnston, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve handling of <systemitem>SIGTERM</>/control-C in
- parallel <application>pg_dump</> and <application>pg_restore</> (Tom
- Lane)
- </para>
-
- <para>
- Make sure that the worker processes will exit promptly, and also arrange
- to send query-cancel requests to the connected backends, in case they
- are doing something long-running such as a <command>CREATE INDEX</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix error reporting in parallel <application>pg_dump</>
- and <application>pg_restore</> (Tom Lane)
- </para>
-
- <para>
- Previously, errors reported by <application>pg_dump</>
- or <application>pg_restore</> worker processes might never make it to
- the user's console, because the messages went through the master
- process, and there were various deadlock scenarios that would prevent
- the master process from passing on the messages. Instead, just print
- everything to <literal>stderr</>. In some cases this will result in
- duplicate messages (for instance, if all the workers report a server
- shutdown), but that seems better than no message.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that parallel <application>pg_dump</>
- or <application>pg_restore</> on Windows will shut down properly
- after an error (Kyotaro Horiguchi)
- </para>
-
- <para>
- Previously, it would report the error, but then just sit until
- manually stopped by the user.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_dump</> behave better when built without zlib
- support (Kyotaro Horiguchi)
- </para>
-
- <para>
- It didn't work right for parallel dumps, and emitted some rather
- pointless warnings in other cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_basebackup</> accept <literal>-Z 0</> as
- specifying no compression (Fujii Masao)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix makefiles' rule for building AIX shared libraries to be safe for
- parallel make (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix TAP tests and MSVC scripts to work when build directory's path
- name contains spaces (Michael Paquier, Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Be more predictable about reporting <quote>statement timeout</>
- versus <quote>lock timeout</> (Tom Lane)
- </para>
-
- <para>
- On heavily loaded machines, the regression tests sometimes failed due
- to reporting <quote>lock timeout</> even though the statement timeout
- should have occurred first.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make regression tests safe for Danish and Welsh locales (Jeff Janes,
- Tom Lane)
- </para>
-
- <para>
- Change some test data that triggered the unusual sorting rules of
- these locales.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update our copy of the timezone code to match
- IANA's <application>tzcode</> release 2016c (Tom Lane)
- </para>
-
- <para>
- This is needed to cope with anticipated future changes in the time
- zone data files. It also fixes some corner-case bugs in coping with
- unusual time zones.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2016f
- for DST law changes in Kemerovo and Novosibirsk, plus historical
- corrections for Azerbaijan, Belarus, and Morocco.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-8">
- <title>Release 9.4.8</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2016-05-12</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.7.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.8</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.6,
- see <xref linkend="release-9-4-6">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Clear the OpenSSL error queue before OpenSSL calls, rather than
- assuming it's clear already; and make sure we leave it clear
- afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
- </para>
-
- <para>
- This change prevents problems when there are multiple connections
- using OpenSSL within a single process and not all the code involved
- follows the same rules for when to clear the error queue.
- Failures have been reported specifically when a client application
- uses SSL connections in <application>libpq</> concurrently with
- SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
- It's possible for similar problems to arise within the server as well,
- if an extension module establishes an outgoing SSL connection.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
- planner error with a full join enclosed in the right-hand side of a
- left join (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect handling of equivalence-class tests in multilevel
- nestloop plans (Tom Lane)
- </para>
-
- <para>
- Given a three-or-more-way equivalence class of variables, such
- as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
- some of the tests needed to enforce that all the variables are actually
- equal, leading to join rows being output that didn't satisfy
- the <literal>WHERE</> clauses. For various reasons, erroneous plans
- were seldom selected in practice, so that this bug has gone undetected
- for a long time.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix query-lifespan memory leak and potential index corruption hazard in
- GIN index insertion (Tom Lane)
- </para>
-
- <para>
- The memory leak would typically not amount to much in simple queries,
- but it could be very substantial during a large GIN index build with
- high <varname>maintenance_work_mem</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible misbehavior of <literal>TH</>, <literal>th</>,
- and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
- (Tom Lane)
- </para>
-
- <para>
- These could advance off the end of the input string, causing subsequent
- format codes to read garbage.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix dumping of rules and views in which the <replaceable>array</>
- argument of a <literal><replaceable>value</> <replaceable>operator</>
- ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Disallow newlines in <command>ALTER SYSTEM</> parameter values
- (Tom Lane)
- </para>
-
- <para>
- The configuration-file parser doesn't support embedded newlines in
- string literals, so we mustn't allow them in values to be inserted
- by <command>ALTER SYSTEM</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</> to
- work properly if an index on OID is selected (David Rowley)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash in logical decoding on alignment-picky platforms (Tom Lane,
- Andres Freund)
- </para>
-
- <para>
- The failure occurred only with a transaction large enough to spill to
- disk and a primary-key change within that transaction.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid repeated requests for feedback from receiver while shutting down
- walsender (Nick Cleaton)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_regress</> use a startup timeout from the
- <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
- </para>
-
- <para>
- This is for consistency with a behavior recently added
- to <application>pg_ctl</>; it eases automated testing on slow machines.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</> to correctly restore extension
- membership for operator families containing only one operator class
- (Tom Lane)
- </para>
-
- <para>
- In such a case, the operator family was restored into the new database,
- but it was no longer marked as part of the extension. This had no
- immediate ill effects, but would cause later <application>pg_dump</>
- runs to emit output that would cause (harmless) errors on restore.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
- differ from old (Tom Lane)
- </para>
-
- <para>
- <application>pg_upgrade</> had special-case code to handle the
- situation where the new <productname>PostgreSQL</> version thinks that
- a table should have a TOAST table while the old version did not. That
- code was broken, so remove it, and instead do nothing in such cases;
- there seems no reason to believe that we can't get along fine without
- a TOAST table if that was okay according to the old version's rules.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce the number of SysV semaphores used by a build configured with
- <option>--disable-spinlocks</> (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rename internal function <function>strtoi()</>
- to <function>strtoint()</> to avoid conflict with a NetBSD library
- function (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix reporting of errors from <function>bind()</>
- and <function>listen()</> system calls on Windows (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce verbosity of compiler output when building with Microsoft Visual
- Studio (Christian Ullrich)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>putenv()</> to work properly with Visual Studio 2013
- (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
- function (Christian Ullrich)
- </para>
-
- <para>
- Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
- appropriate. No live bug is known to exist here, but it seems like a
- good idea to be careful.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2016d
- for DST law changes in Russia and Venezuela. There are new zone
- names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
- the fact that these regions now have different time zone histories from
- adjacent regions.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-7">
- <title>Release 9.4.7</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2016-03-31</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.6.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.7</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.6,
- see <xref linkend="release-9-4-6">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix incorrect handling of NULL index entries in
- indexed <literal>ROW()</> comparisons (Tom Lane)
- </para>
-
- <para>
- An index search using a row comparison such as <literal>ROW(a, b) &gt;
- ROW('x', 'y')</> would stop upon reaching a NULL entry in
- the <structfield>b</> column, ignoring the fact that there might be
- non-NULL <structfield>b</> values associated with later values
- of <structfield>a</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unlikely data-loss scenarios due to renaming files without
- adequate <function>fsync()</> calls before and after (Michael Paquier,
- Tomas Vondra, Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bug in <function>json_to_record()</> when a field of its input
- object contains a sub-object with a field name matching one of the
- requested output column names (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix misformatting of negative time zone offsets
- by <function>to_char()</>'s <literal>OF</> format code
- (Thomas Munro, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ignore <xref linkend="recovery-min-apply-delay"> parameter until
- recovery has reached a consistent state (Michael Paquier)
- </para>
-
- <para>
- Previously, standby servers would delay application of WAL records in
- response to <varname>recovery_min_apply_delay</> even while replaying
- the initial portion of WAL needed to make their database state valid.
- Since the standby is useless until it's reached a consistent database
- state, this was deemed unhelpful.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Correctly handle cases where <literal>pg_subtrans</> is close to XID
- wraparound during server startup (Jeff Janes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix assorted bugs in logical decoding (Andres Freund)
- </para>
-
- <para>
- Trouble cases included tuples larger than one page when replica
- identity is <literal>FULL</>, <command>UPDATE</>s that change a
- primary key within a transaction large enough to be spooled to disk,
- incorrect reports of <quote>subxact logged without previous toplevel
- record</>, and incorrect reporting of a transaction's commit time.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix planner error with nested security barrier views when the outer
- view has a <literal>WHERE</> clause containing a correlated subquery
- (Dean Rasheed)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix corner-case crash due to trying to free <function>localeconv()</>
- output strings more than once (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix parsing of affix files for <literal>ispell</> dictionaries
- (Tom Lane)
- </para>
-
- <para>
- The code could go wrong if the affix file contained any characters
- whose byte length changes during case-folding, for
- example <literal>I</> in Turkish UTF8 locales.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid use of <function>sscanf()</> to parse <literal>ispell</>
- dictionary files (Artur Zakirov)
- </para>
-
- <para>
- This dodges a portability problem on FreeBSD-derived platforms
- (including macOS).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
- AVX2-capable CPU and a Postgres build done with Visual Studio 2013
- (Christian Ullrich)
- </para>
-
- <para>
- This is a workaround for a bug in Visual Studio 2013's runtime
- library, which Microsoft have stated they will not fix in that
- version.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</>'s tab completion logic to handle multibyte
- characters properly (Kyotaro Horiguchi, Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</>'s tab completion for
- <literal>SECURITY LABEL</> (Tom Lane)
- </para>
-
- <para>
- Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
- or offering of inappropriate keywords.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_ctl</> accept a wait timeout from the
- <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
- the command line (Noah Misch)
- </para>
-
- <para>
- This eases testing of slower buildfarm members by allowing them
- to globally specify a longer-than-normal timeout for postmaster
- startup and shutdown.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect test for Windows service status
- in <application>pg_ctl</> (Manuel Mathar)
- </para>
-
- <para>
- The previous set of minor releases attempted to
- fix <application>pg_ctl</> to properly determine whether to send log
- messages to Window's Event Log, but got the test backwards.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pgbench</> to correctly handle the combination
- of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>pg_upgrade</>, skip creating a deletion script when
- the new data directory is inside the old data directory (Bruce
- Momjian)
- </para>
-
- <para>
- Blind application of the script in such cases would result in loss of
- the new data directory.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In PL/Perl, properly translate empty Postgres arrays into empty Perl
- arrays (Alex Hunsaker)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make PL/Python cope with function names that aren't valid Python
- identifiers (Jim Nasby)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix multiple mistakes in the statistics returned
- by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
- function (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove dependency on <literal>psed</> in MSVC builds, since it's no
- longer provided by core Perl (Michael Paquier, Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2016c
- for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
- (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
- historical corrections for Lithuania, Moldova, and Russia
- (Kaliningrad, Samara, Volgograd).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-6">
- <title>Release 9.4.6</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2016-02-11</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.5.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.6</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading an installation that contains any GIN
- indexes that use the (non-default) <literal>jsonb_path_ops</> operator
- class, see the first changelog entry below.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.4,
- see <xref linkend="release-9-4-4">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b23af4587] 2015-11-05 18:15:48 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [4d867458f] 2015-11-05 18:15:48 -0500
-Branch: REL9_4_STABLE [788e35ac0] 2015-11-05 18:15:48 -0500
--->
-
- <listitem>
- <para>
- Fix inconsistent hash calculations in <literal>jsonb_path_ops</> GIN
- indexes (Tom Lane)
- </para>
-
- <para>
- When processing <type>jsonb</> values that contain both scalars and
- sub-objects at the same nesting level, for example an array containing
- both scalars and sub-arrays, key hash values could be calculated
- differently than they would be for the same key in a different context.
- This could result in queries not finding entries that they should find.
- Fixing this means that existing indexes may now be inconsistent with the
- new hash calculation code. Users
- should <command>REINDEX</> <literal>jsonb_path_ops</> GIN indexes after
- installing this update to make sure that all searches work as expected.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix infinite loops and buffer-overrun problems in regular expressions
- (Tom Lane)
- </para>
-
- <para>
- Very large character ranges in bracket expressions could cause
- infinite loops in some cases, and memory overwrites in other cases.
- (CVE-2016-0773)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [7e2a18a91] 2015-10-06 17:15:52 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [02580df6c] 2015-10-06 17:15:27 -0400
-Branch: REL9_4_STABLE [3d701277f] 2015-10-06 17:15:27 -0400
-Branch: REL9_3_STABLE [31bc563b9] 2015-10-06 17:15:27 -0400
-Branch: REL9_2_STABLE [3d10f3970] 2015-10-06 17:15:27 -0400
-Branch: REL9_1_STABLE [dea6da132] 2015-10-06 17:15:27 -0400
--->
-
- <listitem>
- <para>
- Perform an immediate shutdown if the <filename>postmaster.pid</> file
- is removed (Tom Lane)
- </para>
-
- <para>
- The postmaster now checks every minute or so
- that <filename>postmaster.pid</> is still there and still contains its
- own PID. If not, it performs an immediate shutdown, as though it had
- received <systemitem>SIGQUIT</>. The main motivation for this change
- is to ensure that failed buildfarm runs will get cleaned up without
- manual intervention; but it also serves to limit the bad effects if a
- DBA forcibly removes <filename>postmaster.pid</> and then starts a new
- postmaster.
- </para>
- </listitem>
-
-<!--
-Author: Kevin Grittner <kgrittn@postgresql.org>
-Branch: master [585e2a3b1] 2015-10-31 14:43:34 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [50ca917d9] 2015-10-31 14:42:46 -0500
-Branch: REL9_4_STABLE [1d95617f7] 2015-10-31 14:45:15 -0500
-Branch: REL9_3_STABLE [18479293c] 2015-10-31 14:46:57 -0500
-Branch: REL9_2_STABLE [caff7fc3f] 2015-10-31 14:36:37 -0500
-Branch: REL9_1_STABLE [08322daed] 2015-10-31 14:36:58 -0500
--->
-
- <listitem>
- <para>
- In <literal>SERIALIZABLE</> transaction isolation mode, serialization
- anomalies could be missed due to race conditions during insertions
- (Kevin Grittner, Thomas Munro)
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [f54d0629e] 2015-12-12 14:17:39 +0100
-Branch: REL9_5_STABLE Release: REL9_5_0 [ada9c09ae] 2015-12-12 14:19:19 +0100
-Branch: REL9_4_STABLE [d638aeef6] 2015-12-12 14:19:23 +0100
-Branch: REL9_3_STABLE [9037bdc88] 2015-12-12 14:19:25 +0100
-Branch: REL9_2_STABLE [a15ad6708] 2015-12-12 14:19:51 +0100
-Branch: REL9_1_STABLE [5f9a86b35] 2015-12-12 14:19:29 +0100
--->
-
- <listitem>
- <para>
- Fix failure to emit appropriate WAL records when doing <literal>ALTER
- TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
- Andres Freund)
- </para>
-
- <para>
- Even though the relation's data is unlogged, the move must be logged or
- the relation will be inaccessible after a standby is promoted to master.
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [e3f4cfc7a] 2015-12-10 16:29:26 +0100
-Branch: REL9_5_STABLE Release: REL9_5_0 [5b51805fe] 2015-12-10 16:39:25 +0100
-Branch: REL9_4_STABLE [c6a67bbc7] 2015-12-10 16:29:26 +0100
-Branch: REL9_3_STABLE [b19405a44] 2015-12-10 16:29:27 +0100
-Branch: REL9_2_STABLE [2de281da2] 2015-12-10 16:29:27 +0100
-Branch: REL9_1_STABLE [3199c13fc] 2015-12-10 16:29:27 +0100
--->
-
- <listitem>
- <para>
- Fix possible misinitialization of unlogged relations at the end of
- crash recovery (Andres Freund, Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [263c19572] 2015-12-13 16:46:56 +0100
-Branch: REL9_5_STABLE Release: REL9_5_0 [a9c56ff0e] 2015-12-13 16:43:35 +0100
-Branch: REL9_4_STABLE [61c7bee21] 2015-12-13 16:43:52 +0100
-Branch: REL9_3_STABLE [a1fb84990] 2015-12-13 16:44:04 +0100
--->
-
- <listitem>
- <para>
- Ensure walsender slots are fully re-initialized when being re-used
- (Magnus Hagander)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [074c5cfbf] 2015-11-20 14:55:47 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [a35c5b7c1] 2015-11-20 14:55:28 -0500
-Branch: REL9_4_STABLE [47ea4614e] 2015-11-20 14:55:28 -0500
-Branch: REL9_3_STABLE [64349f1d2] 2015-11-20 14:55:29 -0500
-Branch: REL9_2_STABLE [c49279dfd] 2015-11-20 14:55:29 -0500
-Branch: REL9_1_STABLE [60ba32cb5] 2015-11-20 14:55:29 -0500
--->
-
- <listitem>
- <para>
- Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
- constraints properly (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: REL9_4_STABLE [d07afa42d] 2015-12-21 19:49:15 -0300
-Branch: REL9_3_STABLE [bc72c3b3f] 2015-12-21 19:49:15 -0300
-Branch: REL9_2_STABLE [f9643d0d6] 2015-12-21 19:49:15 -0300
-Branch: REL9_1_STABLE [7e29e7f55] 2015-12-21 19:49:15 -0300
--->
-
- <listitem>
- <para>
- Fix <command>REASSIGN OWNED</> to change ownership of composite types
- properly (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: REL9_4_STABLE [2c8ae6442] 2015-12-21 19:16:15 -0300
-Branch: REL9_3_STABLE [62e6eba8d] 2015-12-21 19:16:15 -0300
-Branch: REL9_2_STABLE [7af3dd540] 2015-12-21 19:16:15 -0300
-Branch: REL9_1_STABLE [ab14c1383] 2015-12-21 19:16:15 -0300
--->
-
- <listitem>
- <para>
- Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
- update granted-permissions lists when changing owners of data types,
- foreign data wrappers, or foreign servers (Bruce Momjian,
- &Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [8c1615531] 2015-12-11 18:39:09 -0300
-Branch: REL9_5_STABLE Release: REL9_5_0 [31f88a12a] 2015-12-11 18:39:09 -0300
-Branch: REL9_4_STABLE [1f8757ad8] 2015-12-11 18:39:09 -0300
-Branch: REL9_3_STABLE [4626245bc] 2015-12-11 18:39:09 -0300
-Branch: REL9_2_STABLE [629842a8e] 2015-12-11 18:39:09 -0300
-Branch: REL9_1_STABLE [f44c5203b] 2015-12-11 18:39:09 -0300
--->
-
- <listitem>
- <para>
- Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
- rather than fail (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [6f8cb1e23] 2015-12-21 10:34:14 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [496943ec2] 2015-12-21 10:34:20 -0500
-Branch: REL9_4_STABLE [f02137da8] 2015-12-21 10:34:23 -0500
-Branch: REL9_3_STABLE [4271ed386] 2015-12-21 10:34:28 -0500
--->
-
- <listitem>
- <para>
- Fix possible crash after doing query rewrite for an updatable view
- (Stephen Frost)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [acfcd45ca] 2015-12-11 14:22:20 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [564c19e86] 2015-12-11 14:22:20 -0500
-Branch: REL9_4_STABLE [7ad696066] 2015-12-11 14:22:20 -0500
-Branch: REL9_3_STABLE [260590e6b] 2015-12-11 14:22:20 -0500
-Branch: master [7e19db0c0] 2015-12-07 17:42:11 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [25517ee14] 2015-12-07 17:41:45 -0500
-Branch: REL9_4_STABLE [0901d68ba] 2015-12-07 17:41:45 -0500
-Branch: REL9_3_STABLE [0a34ff7e9] 2015-12-07 17:41:45 -0500
--->
-
- <listitem>
- <para>
- Fix planner's handling of <literal>LATERAL</> references (Tom
- Lane)
- </para>
-
- <para>
- This fixes some corner cases that led to <quote>failed to build any
- N-way joins</> or <quote>could not devise a query plan</> planner
- failures.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3c93a60f6] 2016-01-01 13:42:21 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [d932391fd] 2016-01-01 13:42:30 -0500
-Branch: REL9_4_STABLE [76eccf07b] 2016-01-01 13:42:35 -0500
-Branch: REL9_3_STABLE [94114469f] 2016-01-01 13:42:39 -0500
-Branch: REL9_2_STABLE [8e79b24c5] 2016-01-01 13:42:43 -0500
-Branch: REL9_1_STABLE [60f8cc91d] 2016-01-01 13:42:48 -0500
--->
-
- <listitem>
- <para>
- Add more defenses against bad planner cost estimates for GIN index
- scans when the index's internal statistics are very out-of-date
- (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [7fb008c5e] 2015-12-01 16:24:34 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [e9986a811] 2015-12-01 16:24:34 -0500
-Branch: REL9_4_STABLE [ab14e0e4c] 2015-12-01 16:24:34 -0500
-Branch: REL9_3_STABLE [52774e52d] 2015-12-01 16:24:34 -0500
-Branch: REL9_2_STABLE [3d4bdd2f9] 2015-12-01 16:24:35 -0500
-Branch: REL9_1_STABLE [7882143dc] 2015-12-01 16:24:35 -0500
--->
-
- <listitem>
- <para>
- Make planner cope with hypothetical GIN indexes suggested by an index
- advisor plug-in (Julien Rouhaud)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8004953b5] 2015-11-16 13:45:17 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [34d4f49bb] 2015-11-16 13:45:17 -0500
-Branch: REL9_4_STABLE [a6c4c07fc] 2015-11-16 13:45:17 -0500
-Branch: REL9_3_STABLE [faf18a905] 2015-11-16 13:45:17 -0500
--->
-
- <listitem>
- <para>
- Speed up generation of unique table aliases in <command>EXPLAIN</> and
- rule dumping, and ensure that generated aliases do not
- exceed <literal>NAMEDATALEN</> (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [7745bc352] 2015-11-15 14:41:09 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [0489a048d] 2015-11-15 14:41:09 -0500
-Branch: REL9_4_STABLE [d33ab56b0] 2015-11-15 14:41:09 -0500
-Branch: REL9_3_STABLE [7d0e87208] 2015-11-15 14:41:09 -0500
-Branch: REL9_2_STABLE [ed824cf80] 2015-11-15 14:41:09 -0500
-Branch: REL9_1_STABLE [7b21d1bca] 2015-11-15 14:41:09 -0500
--->
-
- <listitem>
- <para>
- Fix dumping of whole-row Vars in <literal>ROW()</>
- and <literal>VALUES()</> lists (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d43554258] 2015-10-20 11:07:04 -0700
-Branch: REL9_5_STABLE Release: REL9_5_0 [5fb20a5ba] 2015-10-20 11:07:05 -0700
-Branch: REL9_4_STABLE [4f33572ee] 2015-10-20 11:06:24 -0700
--->
-
- <listitem>
- <para>
- Translation of minus-infinity dates and timestamps to <type>json</>
- or <type>jsonb</> incorrectly rendered them as plus-infinity (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5f10b7a60] 2015-11-17 15:46:47 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [80be41979] 2015-11-17 15:46:54 -0500
-Branch: REL9_4_STABLE [cc95595e0] 2015-11-17 15:46:59 -0500
-Branch: REL9_3_STABLE [7df6dc405] 2015-11-17 15:47:03 -0500
-Branch: REL9_2_STABLE [c47bdb372] 2015-11-17 15:47:08 -0500
-Branch: REL9_1_STABLE [728a2ac21] 2015-11-17 15:47:12 -0500
--->
-
- <listitem>
- <para>
- Fix possible internal overflow in <type>numeric</> division
- (Dean Rasheed)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a43b4ab11] 2015-11-07 12:43:24 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [44fc25153] 2015-11-07 12:43:24 -0500
-Branch: REL9_4_STABLE [f69c01f2c] 2015-11-07 12:43:24 -0500
-Branch: REL9_3_STABLE [8db652359] 2015-11-07 12:43:24 -0500
-Branch: REL9_2_STABLE [bfb10db81] 2015-11-07 12:43:24 -0500
-Branch: REL9_1_STABLE [03ee6591d] 2015-11-07 12:43:24 -0500
--->
-
- <listitem>
- <para>
- Fix enforcement of restrictions inside parentheses within regular
- expression lookahead constraints (Tom Lane)
- </para>
-
- <para>
- Lookahead constraints aren't allowed to contain backrefs, and
- parentheses within them are always considered non-capturing, according
- to the manual. However, the code failed to handle these cases properly
- inside a parenthesized subexpression, and would give unexpected
- results.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9f1e642d5] 2015-10-19 13:54:53 -0700
-Branch: REL9_5_STABLE Release: REL9_5_0 [43e36f8dd] 2015-10-19 13:54:53 -0700
-Branch: REL9_4_STABLE [52f21c588] 2015-10-19 13:54:53 -0700
-Branch: REL9_3_STABLE [e69d4756e] 2015-10-19 13:54:54 -0700
-Branch: REL9_2_STABLE [05e62ff59] 2015-10-19 13:54:54 -0700
-Branch: REL9_1_STABLE [0ce829caf] 2015-10-19 13:54:54 -0700
--->
-
- <listitem>
- <para>
- Conversion of regular expressions to indexscan bounds could produce
- incorrect bounds from regexps containing lookahead constraints
- (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [48789c5d2] 2015-10-16 15:55:58 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [0889e1857] 2015-10-16 15:56:00 -0400
-Branch: REL9_4_STABLE [b6eb5fc40] 2015-10-16 14:14:41 -0400
-Branch: REL9_3_STABLE [6e4dda796] 2015-10-16 14:14:41 -0400
-Branch: REL9_2_STABLE [83c34825e] 2015-10-16 14:14:41 -0400
-Branch: REL9_1_STABLE [d394f12c0] 2015-10-16 14:14:41 -0400
--->
-
- <listitem>
- <para>
- Fix regular-expression compiler to handle loops of constraint arcs
- (Tom Lane)
- </para>
-
- <para>
- The code added for CVE-2007-4772 was both incomplete, in that it didn't
- handle loops involving more than one state, and incorrect, in that it
- could cause assertion failures (though there seem to be no bad
- consequences of that in a non-assert build). Multi-state loops would
- cause the compiler to run until the query was canceled or it reached
- the too-many-states error condition.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [538b3b8b3] 2015-10-16 15:55:59 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [e91cfdead] 2015-10-16 15:56:00 -0400
-Branch: REL9_4_STABLE [0ecf4a9e5] 2015-10-16 15:36:17 -0400
-Branch: REL9_3_STABLE [ad5e5a62a] 2015-10-16 15:36:17 -0400
-Branch: REL9_2_STABLE [4e4610a8a] 2015-10-16 15:36:17 -0400
-Branch: REL9_1_STABLE [b94c2b6a6] 2015-10-16 15:36:17 -0400
--->
-
- <listitem>
- <para>
- Improve memory-usage accounting in regular-expression compiler
- (Tom Lane)
- </para>
-
- <para>
- This causes the code to emit <quote>regular expression is too
- complex</> errors in some cases that previously used unreasonable
- amounts of time and memory.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6a7153661] 2015-10-16 15:55:59 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [1bb0fbca3] 2015-10-16 15:56:00 -0400
-Branch: REL9_4_STABLE [9774fda86] 2015-10-16 15:11:49 -0400
-Branch: REL9_3_STABLE [2a8d6e4d0] 2015-10-16 15:11:49 -0400
-Branch: REL9_2_STABLE [a257b808a] 2015-10-16 15:11:49 -0400
-Branch: REL9_1_STABLE [067f96fe3] 2015-10-16 15:11:49 -0400
-Branch: master [f5b7d103b] 2015-10-16 15:55:59 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [e9cf3dc30] 2015-10-16 15:56:00 -0400
-Branch: REL9_4_STABLE [8cf4eed0b] 2015-10-16 14:58:11 -0400
-Branch: REL9_3_STABLE [677e64cb8] 2015-10-16 14:58:11 -0400
-Branch: REL9_2_STABLE [18b032f8f] 2015-10-16 14:58:11 -0400
-Branch: REL9_1_STABLE [5503e6e0f] 2015-10-16 14:58:11 -0400
-Branch: master [579840ca0] 2015-10-16 15:55:59 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [cff9e0659] 2015-10-16 15:56:00 -0400
-Branch: REL9_4_STABLE [bdde29e1c] 2015-10-16 14:43:18 -0400
-Branch: REL9_3_STABLE [296241635] 2015-10-16 14:43:18 -0400
-Branch: REL9_2_STABLE [a2ad467ae] 2015-10-16 14:43:18 -0400
-Branch: REL9_1_STABLE [b00c79b5b] 2015-10-16 14:43:18 -0400
--->
-
- <listitem>
- <para>
- Improve performance of regular-expression compiler (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <literal>%h</> and <literal>%r</> escapes
- in <varname>log_line_prefix</> work for messages emitted due
- to <varname>log_connections</> (Tom Lane)
- </para>
-
- <para>
- Previously, <literal>%h</>/<literal>%r</> started to work just after a
- new session had emitted the <quote>connection received</> log message;
- now they work for that message too.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [869f693a3] 2015-10-13 11:21:33 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [39ac29394] 2015-10-13 11:21:33 -0400
-Branch: REL9_4_STABLE [44a6e24fb] 2015-10-13 11:21:33 -0400
-Branch: REL9_3_STABLE [bc6b03bb8] 2015-10-13 11:21:33 -0400
-Branch: REL9_2_STABLE [39cd1bdb8] 2015-10-13 11:21:33 -0400
-Branch: REL9_1_STABLE [b0d858359] 2015-10-13 11:21:33 -0400
--->
-
- <listitem>
- <para>
- On Windows, ensure the shared-memory mapping handle gets closed in
- child processes that don't need it (Tom Lane, Amit Kapila)
- </para>
-
- <para>
- This oversight resulted in failure to recover from crashes
- whenever <varname>logging_collector</> is turned on.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_4_STABLE [add6d821b] 2016-01-04 17:41:33 -0500
-Branch: REL9_3_STABLE [0f527f73b] 2016-01-04 17:41:33 -0500
-Branch: REL9_2_STABLE [9b2eacba7] 2016-01-04 17:41:33 -0500
-Branch: REL9_1_STABLE [d05103b77] 2016-01-04 17:41:33 -0500
--->
-
- <listitem>
- <para>
- Fix possible failure to detect socket EOF in non-blocking mode on
- Windows (Tom Lane)
- </para>
-
- <para>
- It's not entirely clear whether this problem can happen in pre-9.5
- branches, but if it did, the symptom would be that a walsender process
- would wait indefinitely rather than noticing a loss of connection.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid leaking a token handle during SSPI authentication
- (Christian Ullrich)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2ec477dc8] 2015-12-16 16:59:35 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [f1c152866] 2015-12-16 16:58:55 -0500
-Branch: REL9_4_STABLE [e168dfef6] 2015-12-16 16:58:55 -0500
-Branch: REL9_3_STABLE [9afe392dc] 2015-12-16 16:58:56 -0500
-Branch: REL9_2_STABLE [bcce4a5e3] 2015-12-16 16:58:56 -0500
-Branch: REL9_1_STABLE [03b138e90] 2015-12-16 16:58:56 -0500
-Branch: master [aee7705be] 2015-12-17 16:55:23 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [5ec0aad01] 2015-12-17 16:55:33 -0500
-Branch: REL9_4_STABLE [acb6c64f4] 2015-12-17 16:55:39 -0500
-Branch: REL9_3_STABLE [09b7abc27] 2015-12-17 16:55:43 -0500
-Branch: REL9_2_STABLE [b41777988] 2015-12-17 16:55:47 -0500
-Branch: REL9_1_STABLE [db462a44e] 2015-12-17 16:55:51 -0500
--->
-
- <listitem>
- <para>
- In <application>psql</>, ensure that <application>libreadline</>'s idea
- of the screen size is updated when the terminal window size changes
- (Merlin Moncure)
- </para>
-
- <para>
- Previously, <application>libreadline</> did not notice if the window
- was resized during query output, leading to strange behavior during
- later input of multiline queries.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</>'s <literal>\det</> command to interpret its
- pattern argument the same way as other <literal>\d</> commands with
- potentially schema-qualified patterns do (Reece Hart)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c5ef8ce53] 2015-11-25 17:31:53 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [55a2cc844] 2015-11-25 17:31:53 -0500
-Branch: REL9_4_STABLE [3d357b48f] 2015-11-25 17:31:53 -0500
-Branch: REL9_3_STABLE [64b7079e5] 2015-11-25 17:31:53 -0500
-Branch: REL9_2_STABLE [d44b4deaa] 2015-11-25 17:31:54 -0500
-Branch: REL9_1_STABLE [6430a11fa] 2015-11-25 17:31:54 -0500
--->
-
- <listitem>
- <para>
- Avoid possible crash in <application>psql</>'s <literal>\c</> command
- when previous connection was via Unix socket and command specifies a
- new hostname and same username (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6bcce2580] 2015-10-12 18:30:36 -0400
-Branch: REL9_5_STABLE Release: REL9_5_0 [a151a5c38] 2015-10-12 18:30:36 -0400
-Branch: REL9_4_STABLE [57f54b5e4] 2015-10-12 18:30:36 -0400
-Branch: REL9_3_STABLE [dfe572de0] 2015-10-12 18:30:37 -0400
-Branch: REL9_2_STABLE [250108b6f] 2015-10-12 18:30:37 -0400
-Branch: REL9_1_STABLE [c869a7d5b] 2015-10-12 18:30:37 -0400
--->
-
- <listitem>
- <para>
- In <literal>pg_ctl start -w</>, test child process status directly
- rather than relying on heuristics (Tom Lane, Michael Paquier)
- </para>
-
- <para>
- Previously, <application>pg_ctl</> relied on an assumption that the new
- postmaster would always create <filename>postmaster.pid</> within five
- seconds. But that can fail on heavily-loaded systems,
- causing <application>pg_ctl</> to report incorrectly that the
- postmaster failed to start.
- </para>
-
- <para>
- Except on Windows, this change also means that a <literal>pg_ctl start
- -w</> done immediately after another such command will now reliably
- fail, whereas previously it would report success if done within two
- seconds of the first command.
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [fed19f312] 2015-11-08 17:28:53 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [bdb42bac3] 2015-11-08 17:29:47 -0500
-Branch: REL9_4_STABLE [24379a45c] 2015-11-08 17:31:21 -0500
-Branch: REL9_3_STABLE [34725292d] 2015-11-08 17:31:22 -0500
-Branch: REL9_2_STABLE [99027350e] 2015-11-08 17:31:23 -0500
-Branch: REL9_1_STABLE [87deb55a4] 2015-11-08 17:31:24 -0500
--->
-
- <listitem>
- <para>
- In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
- address to connect to the postmaster (Kondo Yuta)
- </para>
-
- <para>
- On Windows, <application>pg_ctl</> would fail to detect postmaster
- startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
- or <literal>::</>, because it would try to use that value verbatim as
- the address to connect to, which doesn't work. Instead assume
- that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
- right thing to use.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>pg_ctl</> on Windows, check service status to decide
- where to send output, rather than checking if standard output is a
- terminal (Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [00cdd8352] 2015-11-21 20:21:31 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [5f5e68b08] 2015-11-21 20:21:32 -0500
-Branch: REL9_4_STABLE [7acad9546] 2015-11-21 20:22:39 -0500
-Branch: REL9_3_STABLE [0e6185283] 2015-11-21 20:21:32 -0500
-Branch: REL9_2_STABLE [b054ca031] 2015-11-21 20:21:32 -0500
-Branch: REL9_1_STABLE [8f1559aa5] 2015-11-21 20:21:32 -0500
-Branch: REL9_2_STABLE [05c9bc063] 2015-11-23 00:32:01 -0500
-Branch: REL9_1_STABLE [6df62ef43] 2015-11-23 00:32:01 -0500
--->
-
- <listitem>
- <para>
- In <application>pg_dump</> and <application>pg_basebackup</>, adopt
- the GNU convention for handling tar-archive members exceeding 8GB
- (Tom Lane)
- </para>
-
- <para>
- The POSIX standard for <literal>tar</> file format does not allow
- archive member files to exceed 8GB, but most modern implementations
- of <application>tar</> support an extension that fixes that. Adopt
- this extension so that <application>pg_dump</> with <option>-Ft</> no
- longer fails on tables with more than 8GB of data, and so
- that <application>pg_basebackup</> can handle files larger than 8GB.
- In addition, fix some portability issues that could cause failures for
- members between 4GB and 8GB on some platforms. Potentially these
- problems could cause unrecoverable data loss due to unreadable backup
- files.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix assorted corner-case bugs in <application>pg_dump</>'s processing
- of extension member objects (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_dump</> mark a view's triggers as needing to be
- processed after its rule, to prevent possible failure during
- parallel <application>pg_restore</> (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c7e27becd] 2016-01-01 15:27:53 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [404c45bac] 2016-01-01 15:27:53 -0500
-Branch: REL9_4_STABLE [f9b3b3fec] 2016-01-01 15:27:53 -0500
-Branch: REL9_3_STABLE [babf38e88] 2016-01-01 15:27:53 -0500
-Branch: REL9_2_STABLE [69cfe15b5] 2016-01-01 15:27:53 -0500
-Branch: REL9_1_STABLE [85dbc46bd] 2016-01-01 15:27:53 -0500
-Branch: master [b416c0bb6] 2016-01-02 19:04:45 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [b01828e97] 2016-01-02 19:04:45 -0500
-Branch: REL9_4_STABLE [aab4b73bd] 2016-01-02 19:04:45 -0500
-Branch: REL9_3_STABLE [6a0d63d35] 2016-01-02 19:04:45 -0500
-Branch: REL9_2_STABLE [1eb515ad7] 2016-01-02 19:04:45 -0500
-Branch: REL9_1_STABLE [e4959fb5c] 2016-01-02 19:04:45 -0500
--->
-
- <listitem>
- <para>
- Ensure that relation option values are properly quoted
- in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
- </para>
-
- <para>
- A reloption value that isn't a simple identifier or number could lead
- to dump/reload failures due to syntax errors in CREATE statements
- issued by <application>pg_dump</>. This is not an issue with any
- reloption currently supported by core <productname>PostgreSQL</>, but
- extensions could allow reloptions that cause the problem.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1aa41e3ea] 2015-12-23 14:25:53 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [a21994c1b] 2015-12-23 14:25:31 -0500
-Branch: REL9_4_STABLE [f56802a2d] 2015-12-23 14:25:31 -0500
-Branch: REL9_3_STABLE [534a4159c] 2015-12-23 14:25:31 -0500
--->
-
- <listitem>
- <para>
- Avoid repeated password prompts during parallel <application>pg_dump</>
- (Zeus Kronion)
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [025106e31] 2015-11-14 11:47:12 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [fae58d5be] 2015-11-14 11:47:11 -0500
-Branch: REL9_4_STABLE [87cdfeb18] 2015-11-14 11:47:11 -0500
-Branch: REL9_3_STABLE [a75efb483] 2015-11-14 11:47:11 -0500
-Branch: REL9_2_STABLE [b4c4220ed] 2015-11-14 11:47:11 -0500
-Branch: REL9_1_STABLE [bdcbc2b47] 2015-11-14 11:47:11 -0500
-Branch: master [13b30c16f] 2015-11-24 17:18:28 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [b17dbf262] 2015-11-24 17:18:28 -0500
-Branch: REL9_4_STABLE [f91c4e326] 2015-11-24 17:18:28 -0500
-Branch: REL9_3_STABLE [6638c9aaf] 2015-11-24 17:18:27 -0500
-Branch: REL9_2_STABLE [0ca3c51e5] 2015-11-24 17:18:27 -0500
-Branch: REL9_1_STABLE [c36064e43] 2015-11-24 17:18:27 -0500
--->
-
- <listitem>
- <para>
- Fix <application>pg_upgrade</>'s file-copying code to handle errors
- properly on Windows (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Install guards in <application>pgbench</> against corner-case overflow
- conditions during evaluation of script-specified division or modulo
- operators (Fabien Coelho, Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [fc995bfdb] 2015-12-28 10:50:35 -0300
-Branch: REL9_5_STABLE Release: REL9_5_0 [c3e068b26] 2015-12-28 10:50:35 -0300
-Branch: REL9_4_STABLE [f98bc20dd] 2015-12-28 10:50:35 -0300
-Branch: REL9_3_STABLE [7533d5d35] 2015-12-28 10:50:35 -0300
-Branch: REL9_2_STABLE [4fb9e6109] 2015-12-28 10:50:35 -0300
--->
-
- <listitem>
- <para>
- Fix failure to localize messages emitted
- by <application>pg_receivexlog</> and <application>pg_recvlogical</>
- (Ioseph Kim)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid dump/reload problems when using both <application>plpython2</>
- and <application>plpython3</> (Tom Lane)
- </para>
-
- <para>
- In principle, both versions of <application>PL/Python</> can be used in
- the same database, though not in the same session (because the two
- versions of <application>libpython</> cannot safely be used concurrently).
- However, <application>pg_restore</> and <application>pg_upgrade</> both
- do things that can fall foul of the same-session restriction. Work
- around that by changing the timing of the check.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>PL/Python</> regression tests to pass with Python 3.5
- (Peter Eisentraut)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c40591885] 2015-11-12 13:03:52 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [747854f01] 2015-11-12 13:03:52 -0500
-Branch: REL9_4_STABLE [40879a92b] 2015-11-12 13:03:52 -0500
-Branch: REL9_3_STABLE [db6e8e162] 2015-11-12 13:03:53 -0500
--->
-
- <listitem>
- <para>
- Fix premature clearing of <application>libpq</>'s input buffer when
- socket EOF is seen (Tom Lane)
- </para>
-
- <para>
- This mistake caused <application>libpq</> to sometimes not report the
- backend's final error message before reporting <quote>server closed the
- connection unexpectedly</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent certain <application>PL/Java</> parameters from being set by
- non-superusers (Noah Misch)
- </para>
-
- <para>
- This change mitigates a <application>PL/Java</> security bug
- (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
- these parameters as superuser-only. To fix the security hazard for
- sites that update <productname>PostgreSQL</> more frequently
- than <application>PL/Java</>, make the core code aware of them also.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [7b96bf445] 2015-12-14 18:19:10 +0200
-Branch: REL9_5_STABLE Release: REL9_5_0 [34d136f92] 2015-12-14 18:24:58 +0200
-Branch: REL9_4_STABLE [affae5e98] 2015-12-14 18:40:51 +0200
-Branch: REL9_3_STABLE [dee1ed54f] 2015-12-14 18:52:29 +0200
-Branch: REL9_2_STABLE [1e23caae3] 2015-12-14 18:41:11 +0200
-Branch: REL9_1_STABLE [4b58ded74] 2015-12-14 18:48:49 +0200
--->
-
- <listitem>
- <para>
- Improve <application>libpq</>'s handling of out-of-memory situations
- (Michael Paquier, Amit Kapila, Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: REL9_5_STABLE Release: REL9_5_0 [937261454] 2015-10-18 10:15:18 +0200
-Branch: REL9_4_STABLE [a850d7136] 2015-10-18 10:16:36 +0200
-Branch: REL9_3_STABLE [defd2ecf4] 2015-10-18 10:16:49 +0200
-Branch: REL9_2_STABLE [8f67643be] 2015-10-18 10:17:01 +0200
-Branch: REL9_1_STABLE [a9bcd8370] 2015-10-18 10:17:12 +0200
--->
-
- <listitem>
- <para>
- Fix order of arguments
- in <application>ecpg</>-generated <literal>typedef</> statements
- (Michael Meskes)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [db4a5cfc7] 2015-12-01 11:42:25 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [c79bdc990] 2015-12-01 11:42:35 -0500
-Branch: REL9_4_STABLE [346cc2f01] 2015-12-01 11:42:39 -0500
-Branch: REL9_3_STABLE [3e6e98c5a] 2015-12-01 11:42:43 -0500
-Branch: REL9_2_STABLE [74cf6defa] 2015-12-01 11:42:47 -0500
-Branch: REL9_1_STABLE [84387496f] 2015-12-01 11:42:52 -0500
--->
-
- <listitem>
- <para>
- Use <literal>%g</> not <literal>%f</> format
- in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</>-supplied header files to not contain comments
- continued from a preprocessor directive line onto the next line
- (Michael Meskes)
- </para>
-
- <para>
- Such a comment is rejected by <application>ecpg</>. It's not yet clear
- whether <application>ecpg</> itself should be changed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <function>hstore_to_json_loose()</>'s test for whether
- an <type>hstore</> value can be converted to a JSON number (Tom Lane)
- </para>
-
- <para>
- Previously this function could be fooled by non-alphanumeric trailing
- characters, leading to emitting syntactically-invalid JSON.
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [743229a67] 2015-12-27 13:03:19 -0300
-Branch: REL9_5_STABLE Release: REL9_5_0 [c886c30cc] 2015-12-27 13:03:19 -0300
-Branch: REL9_4_STABLE [0a29cf693] 2015-12-27 13:03:19 -0300
-Branch: REL9_3_STABLE [0244677cf] 2015-12-27 13:03:19 -0300
-Branch: REL9_2_STABLE [51dd54ba7] 2015-12-27 13:03:19 -0300
-Branch: REL9_1_STABLE [1b6102eb7] 2015-12-27 13:03:19 -0300
--->
-
- <listitem>
- <para>
- Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
- function can be interrupted by query cancel (Andreas Karlsson)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <filename>contrib/postgres_fdw</>, fix bugs triggered by use
- of <literal>tableoid</> in data-modifying commands (Etsuro Fujita,
- Robert Haas)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [32f15d05c] 2015-11-18 17:45:05 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [659d47292] 2015-11-18 17:45:05 -0500
-Branch: REL9_4_STABLE [d5bb7c6f6] 2015-11-18 17:45:05 -0500
-Branch: REL9_3_STABLE [ae81d4fb1] 2015-11-18 17:45:05 -0500
-Branch: REL9_2_STABLE [6e1d26f1f] 2015-11-18 17:45:06 -0500
-Branch: REL9_1_STABLE [b4afc39f7] 2015-11-18 17:45:06 -0500
-Branch: master [9c779c49e] 2015-12-10 10:19:13 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [2355faae0] 2015-12-10 10:19:18 -0500
-Branch: REL9_4_STABLE [ee0df4d77] 2015-12-10 10:19:22 -0500
-Branch: REL9_3_STABLE [b3e377a00] 2015-12-10 10:19:27 -0500
-Branch: REL9_2_STABLE [7f94a5c10] 2015-12-10 10:19:31 -0500
--->
-
- <listitem>
- <para>
- Accept <application>flex</> versions later than 2.5.x
- (Tom Lane, Michael Paquier)
- </para>
-
- <para>
- Now that flex 2.6.0 has been released, the version checks in our build
- scripts needed to be adjusted.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve reproducibility of build output by ensuring filenames are given
- to the linker in a fixed order (Christoph Berg)
- </para>
-
- <para>
- This avoids possible bitwise differences in the produced executable
- files from one build to the next.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [dccf8e9e6] 2015-12-11 16:15:05 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [6061aa8ed] 2015-12-11 16:15:06 -0500
-Branch: REL9_4_STABLE [423697e3d] 2015-12-11 16:14:36 -0500
-Branch: REL9_3_STABLE [1ebe75a2c] 2015-12-11 16:14:40 -0500
-Branch: REL9_2_STABLE [98467b35d] 2015-12-11 16:14:44 -0500
-Branch: REL9_1_STABLE [2a37a103b] 2015-12-11 16:14:48 -0500
--->
-
- <listitem>
- <para>
- Install our <filename>missing</> script where PGXS builds can find it
- (Jim Nasby)
- </para>
-
- <para>
- This allows sane behavior in a PGXS build done on a machine where build
- tools such as <application>bison</> are missing.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <filename>dynloader.h</> is included in the installed
- header files in MSVC builds (Bruce Momjian, Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [085423e3e] 2015-12-11 19:09:04 -0500
-Branch: REL9_5_STABLE Release: REL9_5_0 [ea7f7d8b3] 2015-12-11 19:08:40 -0500
-Branch: REL9_4_STABLE [09824cd99] 2015-12-11 19:08:40 -0500
-Branch: REL9_3_STABLE [fee485815] 2015-12-11 19:08:40 -0500
-Branch: REL9_2_STABLE [f5eebea8d] 2015-12-11 19:08:40 -0500
-Branch: REL9_1_STABLE [386dcd539] 2015-12-11 19:08:40 -0500
--->
-
- <listitem>
- <para>
- Add variant regression test expected-output file to match behavior of
- current <application>libxml2</> (Tom Lane)
- </para>
-
- <para>
- The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
- output error context reports in some cases where it used to do so.
- This seems to be a bug, but we'll probably have to live with it for
- some time, so work around it.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2016a for
- DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
- Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-5">
- <title>Release 9.4.5</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2015-10-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.4.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.5</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.4,
- see <xref linkend="release-9-4-4">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [08fa47c48] 2015-10-05 10:06:29 -0400
-Branch: REL9_5_STABLE [98f30d2e5] 2015-10-05 10:06:33 -0400
-Branch: REL9_4_STABLE [16d58b5b5] 2015-10-05 10:06:34 -0400
-Branch: REL9_3_STABLE [f8862172e] 2015-10-05 10:06:34 -0400
--->
-
- <listitem>
- <para>
- Guard against stack overflows in <type>json</> parsing
- (Oskari Saarenmaa)
- </para>
-
- <para>
- If an application constructs PostgreSQL <type>json</>
- or <type>jsonb</> values from arbitrary user input, the application's
- users can reliably crash the PostgreSQL server, causing momentary
- denial of service. (CVE-2015-5289)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [1d812c8b0] 2015-10-05 10:06:29 -0400
-Branch: REL9_5_STABLE [4d6752277] 2015-10-05 10:06:33 -0400
-Branch: REL9_4_STABLE [4d95419e8] 2015-10-05 10:06:34 -0400
-Branch: REL9_3_STABLE [cc1210f0a] 2015-10-05 10:06:34 -0400
-Branch: REL9_2_STABLE [56232f987] 2015-10-05 10:06:35 -0400
-Branch: REL9_1_STABLE [48f6310bc] 2015-10-05 10:06:35 -0400
-Branch: REL9_0_STABLE [188e081ef] 2015-10-05 10:06:36 -0400
--->
-
- <listitem>
- <para>
- Fix <filename>contrib/pgcrypto</> to detect and report
- too-short <function>crypt()</> salts (Josh Kupershmidt)
- </para>
-
- <para>
- Certain invalid salt arguments crashed the server or disclosed a few
- bytes of server memory. We have not ruled out the viability of
- attacks that arrange for presence of confidential information in the
- disclosed bytes, but they seem unlikely. (CVE-2015-5288)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c5454f99c] 2015-09-04 13:37:14 -0400
-Branch: REL9_5_STABLE [a2538da89] 2015-09-04 13:37:16 -0400
-Branch: REL9_4_STABLE [37d10c524] 2015-09-04 13:37:17 -0400
-Branch: REL9_3_STABLE [9e9b310d8] 2015-09-04 13:36:50 -0400
-Branch: REL9_2_STABLE [39ebb6466] 2015-09-04 13:36:50 -0400
-Branch: REL9_1_STABLE [dae1c9480] 2015-09-04 13:36:50 -0400
-Branch: REL9_0_STABLE [81ee435c4] 2015-09-04 13:36:50 -0400
--->
-
- <listitem>
- <para>
- Fix subtransaction cleanup after a portal (cursor) belonging to an
- outer subtransaction fails (Tom Lane, Michael Paquier)
- </para>
-
- <para>
- A function executed in an outer-subtransaction cursor could cause an
- assertion failure or crash by referencing a relation created within an
- inner subtransaction.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [358cde320] 2015-08-02 20:08:10 +0300
-Branch: REL9_5_STABLE [54f23a45f] 2015-08-02 20:08:50 +0300
-Branch: REL9_4_STABLE [bab959906] 2015-08-02 20:09:05 +0300
--->
-
- <listitem>
- <para>
- Fix possible deadlock during WAL insertion
- when <varname>commit_delay</> is set (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [c3e0ddd40] 2015-09-08 17:02:49 -0400
-Branch: REL9_5_STABLE [9801bae21] 2015-09-08 17:02:53 -0400
-Branch: REL9_4_STABLE [83d004904] 2015-09-08 17:02:56 -0400
-Branch: REL9_3_STABLE [cb1b9b959] 2015-09-08 17:02:59 -0400
--->
-
- <listitem>
- <para>
- Ensure all relations referred to by an updatable view are properly
- locked during an update statement (Dean Rasheed)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL9_5_BR [5d1ff6bd5] 2015-06-25 14:39:05 -0400
-Branch: REL9_4_STABLE [e118555cf] 2015-06-25 14:39:05 -0400
-Branch: REL9_3_STABLE [834aa56ea] 2015-06-25 14:39:05 -0400
-Branch: REL9_2_STABLE [88fab18a4] 2015-06-25 14:39:05 -0400
-Branch: REL9_1_STABLE [a9b7bf82f] 2015-06-25 14:39:06 -0400
-Branch: REL9_0_STABLE [45c69178b] 2015-06-25 14:39:06 -0400
--->
-
- <listitem>
- <para>
- Fix insertion of relations into the relation cache <quote>init file</>
- (Tom Lane)
- </para>
-
- <para>
- An oversight in a patch in the most recent minor releases
- caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
- from the init file. Subsequent sessions detected this, then deemed the
- init file to be broken and silently ignored it, resulting in a
- significant degradation in session startup time. In addition to fixing
- the bug, install some guards so that any similar future mistake will be
- more obvious.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6e5d9f278] 2015-08-21 20:32:11 -0400
-Branch: REL9_5_STABLE [68a14ca74] 2015-08-21 20:32:17 -0400
-Branch: REL9_4_STABLE [fe939d950] 2015-08-21 20:32:26 -0400
-Branch: REL9_3_STABLE [ea9892444] 2015-08-21 20:32:29 -0400
-Branch: REL9_2_STABLE [d951d6065] 2015-08-21 20:32:33 -0400
-Branch: REL9_1_STABLE [87b8c9e12] 2015-08-21 20:32:37 -0400
-Branch: REL9_0_STABLE [7c57449fc] 2015-08-21 20:32:41 -0400
--->
-
- <listitem>
- <para>
- Avoid O(N^2) behavior when inserting many tuples into a SPI query
- result (Neil Conway)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [07e4d03fb] 2015-09-30 23:32:43 -0400
-Branch: REL9_5_STABLE [8c8a834b1] 2015-09-30 23:32:23 -0400
-Branch: REL9_4_STABLE [03f9b63e2] 2015-09-30 23:32:23 -0400
-Branch: REL9_3_STABLE [aad86c518] 2015-09-30 23:32:23 -0400
-Branch: REL9_2_STABLE [e4c00750a] 2015-09-30 23:32:23 -0400
-Branch: REL9_1_STABLE [2bbe8a684] 2015-09-30 23:32:23 -0400
-Branch: REL9_0_STABLE [2d4336cf8] 2015-09-30 23:32:23 -0400
--->
-
- <listitem>
- <para>
- Improve <command>LISTEN</> startup time when there are many unread
- notifications (Matt Newell)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2abfd9d5e] 2015-09-25 13:16:30 -0400
-Branch: REL9_5_STABLE [c9645f757] 2015-09-25 13:16:30 -0400
-Branch: REL9_4_STABLE [67d0f7a37] 2015-09-25 13:16:30 -0400
-Branch: REL9_3_STABLE [1bcc9e60a] 2015-09-25 13:16:31 -0400
--->
-
- <listitem>
- <para>
- Fix performance problem when a session alters large numbers of foreign
- key constraints (Jan Wieck, Tom Lane)
- </para>
-
- <para>
- This was seen primarily when restoring <application>pg_dump</> output
- for databases with many thousands of tables.
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: REL9_4_STABLE [ab6084782] 2015-07-28 22:06:31 +0200
-Branch: REL9_3_STABLE [48d23c72d] 2015-07-28 22:06:31 +0200
-Branch: REL9_2_STABLE [2f91e7bb5] 2015-07-28 22:06:31 +0200
-Branch: REL9_1_STABLE [624a3c9be] 2015-07-28 22:06:32 +0200
-Branch: REL9_0_STABLE [444b2ebee] 2015-07-28 22:06:32 +0200
--->
-
- <listitem>
- <para>
- Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
- </para>
-
- <para>
- While use of SSL renegotiation is a good idea in theory, we have seen
- too many bugs in practice, both in the underlying OpenSSL library and
- in our usage of it. Renegotiation will be removed entirely in 9.5 and
- later. In the older branches, just change the default value
- of <varname>ssl_renegotiation_limit</> to zero (disabled).
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [020235a57] 2015-09-24 14:53:32 +0200
-Branch: REL9_5_STABLE [ef4fccd2b] 2015-09-24 14:53:33 +0200
-Branch: REL9_4_STABLE [4ff753c91] 2015-09-24 14:53:33 +0200
-Branch: REL9_3_STABLE [fee2275ae] 2015-09-24 14:53:33 +0200
-Branch: REL9_2_STABLE [f12932dd4] 2015-09-24 14:53:33 +0200
-Branch: REL9_1_STABLE [ff090bbb7] 2015-09-24 14:53:33 +0200
-Branch: REL9_0_STABLE [078d471a9] 2015-09-24 14:53:33 +0200
-Branch: master [2596d705b] 2015-10-05 11:53:43 +0200
-Branch: REL9_5_STABLE [0577821b5] 2015-10-05 11:56:58 +0200
-Branch: REL9_4_STABLE [13ac4c035] 2015-10-05 11:57:07 +0200
-Branch: REL9_3_STABLE [393341714] 2015-10-05 11:57:11 +0200
-Branch: REL9_2_STABLE [e07cfef34] 2015-10-05 11:57:15 +0200
-Branch: REL9_1_STABLE [7116a3e98] 2015-10-05 11:57:20 +0200
-Branch: REL9_0_STABLE [eeb0b7830] 2015-10-05 11:57:25 +0200
--->
-
- <listitem>
- <para>
- Lower the minimum values of the <literal>*_freeze_max_age</> parameters
- (Andres Freund)
- </para>
-
- <para>
- This is mainly to make tests of related behavior less time-consuming,
- but it may also be of value for installations with limited disk space.
- </para>
- </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [369342cf7] 2015-08-04 12:58:54 -0400
-Branch: REL9_5_STABLE [cd52e4a2b] 2015-08-04 13:05:43 -0400
-Branch: REL9_4_STABLE [3a35ca5ad] 2015-08-04 13:05:48 -0400
-Branch: REL9_3_STABLE [11ed4bab5] 2015-08-04 13:05:52 -0400
-Branch: REL9_2_STABLE [5ef8e1114] 2015-08-04 13:05:58 -0400
-Branch: REL9_1_STABLE [4e51ea8fd] 2015-08-04 13:06:03 -0400
-Branch: REL9_0_STABLE [b09446ed7] 2015-08-04 13:12:03 -0400
--->
-
- <listitem>
- <para>
- Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
- server crashes (Josh Berkus)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_4_STABLE [1afc1fe9c] 2015-06-28 18:38:06 -0400
-Branch: REL9_3_STABLE [5a56c2545] 2015-06-28 18:38:06 -0400
--->
-
- <listitem>
- <para>
- Avoid logging complaints when a parameter that can only be set at
- server start appears multiple times in <filename>postgresql.conf</>,
- and fix counting of line numbers after an <literal>include_dir</>
- directive (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [246693e5a] 2015-09-21 12:11:32 -0400
-Branch: REL9_5_STABLE [3dfffac70] 2015-09-21 12:11:45 -0400
-Branch: REL9_4_STABLE [fa9fc3a1b] 2015-09-21 12:11:49 -0400
-Branch: REL9_3_STABLE [8b75e489a] 2015-09-21 12:11:58 -0400
-Branch: REL9_2_STABLE [844486216] 2015-09-21 12:12:04 -0400
-Branch: REL9_1_STABLE [5f79730ec] 2015-09-21 12:12:10 -0400
-Branch: REL9_0_STABLE [a89781e34] 2015-09-21 12:12:16 -0400
--->
-
- <listitem>
- <para>
- Fix rare internal overflow in multiplication of <type>numeric</> values
- (Dean Rasheed)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [30cb12881] 2015-10-05 10:06:29 -0400
-Branch: REL9_5_STABLE [acf0da1e6] 2015-10-05 10:06:33 -0400
-Branch: REL9_4_STABLE [a0c02ed5b] 2015-10-05 10:06:34 -0400
-Branch: REL9_3_STABLE [9286ff78f] 2015-10-05 10:06:34 -0400
-Branch: REL9_2_STABLE [5e43130b5] 2015-10-05 10:06:35 -0400
-Branch: REL9_1_STABLE [9581e2699] 2015-10-05 10:06:35 -0400
-Branch: REL9_0_STABLE [0398e071a] 2015-10-05 10:06:36 -0400
-Branch: master [5976097c0] 2015-10-05 10:06:30 -0400
-Branch: REL9_5_STABLE [7bed97d48] 2015-10-05 10:06:33 -0400
-Branch: REL9_4_STABLE [bed3f6d03] 2015-10-05 10:06:34 -0400
-Branch: REL9_3_STABLE [28dea9485] 2015-10-05 10:06:34 -0400
-Branch: REL9_2_STABLE [ea68c221f] 2015-10-05 10:06:35 -0400
-Branch: REL9_1_STABLE [879877b00] 2015-10-05 10:06:35 -0400
-Branch: REL9_0_STABLE [682a25d41] 2015-10-05 10:06:36 -0400
-Branch: REL9_2_STABLE [8dacb29ca] 2015-10-05 10:06:35 -0400
--->
-
- <listitem>
- <para>
- Guard against hard-to-reach stack overflows involving record types,
- range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
- <type>ltxtquery</> and <type>query_int</> (Noah Misch)
- </para>
- </listitem>
-
-<!--
-Author: Greg Stark <stark@mit.edu>
-Branch: master [258ee1b63] 2015-09-06 03:35:56 +0100
-Branch: REL9_5_STABLE [c11100d0f] 2015-09-06 04:05:46 +0100
-Branch: REL9_4_STABLE [b17ce6208] 2015-09-06 03:56:59 +0100
-Branch: REL9_3_STABLE [dd04d43bf] 2015-09-06 03:58:27 +0100
-Branch: REL9_2_STABLE [f4afbe065] 2015-09-06 03:58:32 +0100
-Branch: REL9_1_STABLE [07cef3eb8] 2015-09-06 04:02:57 +0100
-Branch: REL9_0_STABLE [530d0c504] 2015-09-06 04:05:20 +0100
-Branch: master [37239ef8c] 2015-09-07 20:41:29 +0100
-Branch: REL9_5_STABLE [a12424028] 2015-09-07 20:47:41 +0100
-Branch: REL9_4_STABLE [0198a8d82] 2015-09-07 20:47:37 +0100
-Branch: REL9_3_STABLE [fde40e53f] 2015-09-07 20:47:33 +0100
-Branch: REL9_2_STABLE [af9d9e59c] 2015-09-07 20:47:29 +0100
-Branch: REL9_1_STABLE [0252d7777] 2015-09-07 20:47:19 +0100
-Branch: REL9_0_STABLE [92d956f51] 2015-09-07 20:47:06 +0100
--->
-
- <listitem>
- <para>
- Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
- (Greg Stark)
- </para>
-
- <para>
- These tokens aren't meant to be used in datetime values, but previously
- they resulted in opaque internal error messages rather
- than <quote>invalid input syntax</>.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9fe8fe9c9] 2015-10-02 13:45:39 -0400
-Branch: REL9_5_STABLE [bb704a781] 2015-10-02 13:45:39 -0400
-Branch: REL9_4_STABLE [109def032] 2015-10-02 13:45:39 -0400
-Branch: REL9_3_STABLE [384ce1b75] 2015-10-02 13:45:39 -0400
-Branch: REL9_2_STABLE [2d51f55ff] 2015-10-02 13:45:39 -0400
-Branch: REL9_1_STABLE [da8ff2920] 2015-10-02 13:45:39 -0400
-Branch: REL9_0_STABLE [d4f6488ec] 2015-10-02 13:45:39 -0400
--->
-
- <listitem>
- <para>
- Add more query-cancel checks to regular expression matching (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b63fc2877] 2015-10-02 14:51:58 -0400
-Branch: REL9_5_STABLE [20c627707] 2015-10-02 14:51:58 -0400
-Branch: REL9_4_STABLE [c5e38b93c] 2015-10-02 14:51:58 -0400
-Branch: REL9_3_STABLE [9ed207ae9] 2015-10-02 14:51:58 -0400
-Branch: REL9_2_STABLE [a0c089f33] 2015-10-02 14:51:58 -0400
-Branch: REL9_1_STABLE [e7de1bc09] 2015-10-02 14:51:59 -0400
-Branch: REL9_0_STABLE [54b116d83] 2015-10-02 14:51:59 -0400
-Branch: master [2e8cfcf4e] 2015-10-02 15:00:51 -0400
-Branch: REL9_5_STABLE [bdc5d95b6] 2015-10-02 15:00:52 -0400
-Branch: REL9_4_STABLE [bb1d97961] 2015-10-02 15:00:52 -0400
-Branch: REL9_3_STABLE [4175cc604] 2015-10-02 15:00:52 -0400
-Branch: REL9_2_STABLE [57bf7b548] 2015-10-02 15:00:52 -0400
-Branch: REL9_1_STABLE [f80af0117] 2015-10-02 15:00:52 -0400
-Branch: REL9_0_STABLE [b875ca09f] 2015-10-02 15:00:52 -0400
--->
-
- <listitem>
- <para>
- Add recursion depth protections to regular expression, <literal>SIMILAR
- TO</>, and <literal>LIKE</> matching (Tom Lane)
- </para>
-
- <para>
- Suitable search patterns and a low stack depth limit could lead to
- stack-overrun crashes.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400
-Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400
-Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400
-Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400
-Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400
-Branch: REL9_1_STABLE [630154955] 2015-10-02 14:26:36 -0400
-Branch: REL9_0_STABLE [2a8878289] 2015-10-02 14:26:36 -0400
--->
-
- <listitem>
- <para>
- Fix potential infinite loop in regular expression execution (Tom Lane)
- </para>
-
- <para>
- A search pattern that can apparently match a zero-length string, but
- actually doesn't match because of a back reference, could lead to an
- infinite loop.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400
-Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400
-Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400
-Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400
-Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400
--->
-
- <listitem>
- <para>
- In regular expression execution, correctly record match data for
- capturing parentheses within a quantifier even when the match is
- zero-length (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8a0258c31] 2015-08-12 00:48:11 -0400
-Branch: REL9_5_STABLE [c5bfcc18a] 2015-08-12 00:48:28 -0400
-Branch: REL9_4_STABLE [a35a527f2] 2015-08-12 00:48:34 -0400
-Branch: REL9_3_STABLE [a54875602] 2015-08-12 00:48:39 -0400
-Branch: REL9_2_STABLE [234205a2e] 2015-08-12 00:48:44 -0400
-Branch: REL9_1_STABLE [7a801ba8c] 2015-08-12 00:48:48 -0400
-Branch: REL9_0_STABLE [7e23b63bd] 2015-08-12 00:48:54 -0400
--->
-
- <listitem>
- <para>
- Fix low-memory failures in regular expression compilation
- (Andreas Seltenreich)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d9c0c728a] 2015-09-18 13:55:17 -0400
-Branch: REL9_5_STABLE [a39331fa5] 2015-09-18 13:55:17 -0400
-Branch: REL9_4_STABLE [f7d896ab9] 2015-09-18 13:55:17 -0400
-Branch: REL9_3_STABLE [b84310808] 2015-09-18 13:55:17 -0400
-Branch: REL9_2_STABLE [dc4e8c101] 2015-09-18 13:55:17 -0400
-Branch: REL9_1_STABLE [28c396134] 2015-09-18 13:55:17 -0400
-Branch: REL9_0_STABLE [ba9eb293f] 2015-09-18 13:55:17 -0400
--->
-
- <listitem>
- <para>
- Fix low-probability memory leak during regular expression execution
- (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ba51774d8] 2015-09-20 16:48:44 -0400
-Branch: REL9_5_STABLE [3d3bc2905] 2015-09-20 16:48:44 -0400
-Branch: REL9_4_STABLE [e32c5f118] 2015-09-20 16:48:44 -0400
-Branch: REL9_3_STABLE [7e6e3bdd3] 2015-09-20 16:48:44 -0400
-Branch: REL9_2_STABLE [ac0c71228] 2015-09-20 16:48:44 -0400
-Branch: REL9_1_STABLE [553ce7e9a] 2015-09-20 16:48:44 -0400
-Branch: REL9_0_STABLE [eed5bbc48] 2015-09-20 16:48:44 -0400
--->
-
- <listitem>
- <para>
- Fix rare low-memory failure in lock cleanup during transaction abort
- (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8ea3e7a75] 2015-08-04 18:18:46 -0400
-Branch: REL9_5_STABLE [e2035dc9a] 2015-08-04 18:18:46 -0400
-Branch: REL9_4_STABLE [118c9bb8d] 2015-08-04 18:18:46 -0400
-Branch: REL9_3_STABLE [8bd45a394] 2015-08-04 18:18:46 -0400
-Branch: REL9_2_STABLE [b6659a3b9] 2015-08-04 18:18:46 -0400
-Branch: REL9_1_STABLE [9965aff1c] 2015-08-04 18:18:47 -0400
-Branch: REL9_0_STABLE [bd327627f] 2015-08-04 18:18:47 -0400
--->
-
- <listitem>
- <para>
- Fix <quote>unexpected out-of-memory situation during sort</> errors
- when using tuplestores with small <varname>work_mem</> settings (Tom
- Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9d6077abf] 2015-07-16 22:57:46 -0400
-Branch: REL9_5_STABLE [fd415ffc9] 2015-07-16 22:57:46 -0400
-Branch: REL9_4_STABLE [b8f368276] 2015-07-16 22:57:46 -0400
-Branch: REL9_3_STABLE [730089d87] 2015-07-16 22:57:46 -0400
-Branch: REL9_2_STABLE [15ca2b6cd] 2015-07-16 22:57:46 -0400
-Branch: REL9_1_STABLE [faef3dc28] 2015-07-16 22:57:46 -0400
-Branch: REL9_0_STABLE [36522d627] 2015-07-16 22:57:46 -0400
--->
-
- <listitem>
- <para>
- Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_4_STABLE [ff4cbc1ff] 2015-10-04 14:16:59 -0400
-Branch: REL9_3_STABLE [45dd7cdba] 2015-10-04 14:17:14 -0400
-Branch: REL9_2_STABLE [fd3e3cf50] 2015-10-04 14:17:20 -0400
-Branch: REL9_1_STABLE [a8168fbcb] 2015-10-04 14:17:24 -0400
-Branch: REL9_0_STABLE [2647b245d] 2015-10-04 14:17:28 -0400
-Branch: master [f2fc98fb8] 2015-10-04 15:55:07 -0400
-Branch: REL9_5_STABLE [e5c94c7bb] 2015-10-04 15:55:07 -0400
-Branch: REL9_4_STABLE [4075fc4b9] 2015-10-04 15:55:07 -0400
-Branch: REL9_3_STABLE [0867e0ad5] 2015-10-04 15:55:07 -0400
-Branch: REL9_2_STABLE [ebc7d928a] 2015-10-04 15:55:07 -0400
-Branch: REL9_1_STABLE [d84cc40e4] 2015-10-04 15:55:07 -0400
-Branch: REL9_0_STABLE [d637a899c] 2015-10-04 15:55:07 -0400
--->
-
- <listitem>
- <para>
- Fix <quote>invalid memory alloc request size</> failure in hash joins
- with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8693ebe37] 2015-07-30 12:11:23 -0400
-Branch: REL9_5_STABLE [e91a1643a] 2015-07-30 12:11:23 -0400
-Branch: REL9_4_STABLE [3b4a9dbfa] 2015-07-30 12:11:23 -0400
-Branch: REL9_3_STABLE [caae9f764] 2015-07-30 12:11:23 -0400
-Branch: REL9_2_STABLE [c7d171251] 2015-07-30 12:11:23 -0400
-Branch: REL9_1_STABLE [ea6e28649] 2015-07-30 12:11:23 -0400
-Branch: REL9_0_STABLE [54833c5e7] 2015-07-30 12:11:23 -0400
-Branch: master [a6492ff89] 2015-07-31 19:26:33 -0400
-Branch: REL9_5_STABLE [edf26ed03] 2015-07-31 19:26:33 -0400
-Branch: REL9_4_STABLE [216977a7d] 2015-07-31 19:26:33 -0400
-Branch: REL9_3_STABLE [a4df781c9] 2015-07-31 19:26:33 -0400
-Branch: master [f69b4b949] 2015-08-01 20:57:41 -0400
-Branch: REL9_5_STABLE [7968238eb] 2015-08-01 20:57:41 -0400
-Branch: REL9_4_STABLE [e39a3b2ef] 2015-08-01 20:57:41 -0400
-Branch: REL9_3_STABLE [1044541dc] 2015-08-01 20:57:41 -0400
-Branch: REL9_2_STABLE [44618f92b] 2015-08-01 20:57:41 -0400
-Branch: REL9_1_STABLE [b9dfa07e8] 2015-08-01 20:57:41 -0400
-Branch: REL9_0_STABLE [44679965f] 2015-08-01 20:57:41 -0400
-Branch: master [85e5e222b] 2015-08-04 14:55:50 -0400
-Branch: REL9_5_STABLE [a6f43986b] 2015-08-04 14:55:52 -0400
-Branch: REL9_4_STABLE [b58e8caf0] 2015-08-04 14:55:53 -0400
-Branch: REL9_3_STABLE [33afbdd02] 2015-08-04 14:55:54 -0400
-Branch: REL9_2_STABLE [359016d2e] 2015-08-04 14:55:55 -0400
-Branch: master [6af9ee4c8] 2015-08-05 14:39:29 -0400
-Branch: REL9_5_STABLE [06663971b] 2015-08-05 14:39:07 -0400
-Branch: REL9_4_STABLE [4d94b5f1f] 2015-08-05 14:39:07 -0400
-Branch: REL9_3_STABLE [9bc4d5927] 2015-08-05 14:39:07 -0400
-Branch: REL9_2_STABLE [08dee567e] 2015-08-05 14:39:07 -0400
-Branch: REL9_1_STABLE [48d4f1e39] 2015-08-05 14:39:07 -0400
-Branch: REL9_0_STABLE [c084f613e] 2015-08-05 14:39:07 -0400
-Branch: master [8703059c6] 2015-08-06 15:35:46 -0400
-Branch: REL9_5_STABLE [df3b0f47b] 2015-08-06 15:35:47 -0400
-Branch: REL9_4_STABLE [7ef507ad7] 2015-08-06 15:35:48 -0400
-Branch: REL9_3_STABLE [3e79144a8] 2015-08-06 15:35:27 -0400
-Branch: REL9_2_STABLE [754ece936] 2015-08-06 15:35:27 -0400
-Branch: REL9_1_STABLE [656b1e8cf] 2015-08-06 15:35:27 -0400
-Branch: REL9_0_STABLE [d860ba43f] 2015-08-06 15:35:28 -0400
-Branch: master [cde35cf4a] 2015-08-06 20:14:53 -0400
-Branch: REL9_5_STABLE [a8725c2ba] 2015-08-06 20:14:54 -0400
-Branch: REL9_4_STABLE [d31e79415] 2015-08-06 20:14:37 -0400
-Branch: REL9_3_STABLE [0d4913509] 2015-08-06 20:14:37 -0400
-Branch: master [bab163e12] 2015-08-06 22:14:27 -0400
-Branch: REL9_5_STABLE [de0227d8a] 2015-08-06 22:14:28 -0400
-Branch: REL9_4_STABLE [8c7bb0240] 2015-08-06 22:14:07 -0400
-Branch: REL9_3_STABLE [de5edc660] 2015-08-06 22:14:07 -0400
-Branch: master [89db83922] 2015-08-07 14:13:50 -0400
-Branch: REL9_5_STABLE [085338822] 2015-08-07 14:13:51 -0400
-Branch: REL9_4_STABLE [30b4ccdab] 2015-08-07 14:13:52 -0400
-Branch: REL9_3_STABLE [868bfd1f3] 2015-08-07 14:13:39 -0400
-Branch: master [4200a9286] 2015-08-10 17:18:17 -0400
-Branch: REL9_5_STABLE [fda25b220] 2015-08-10 17:18:17 -0400
-Branch: REL9_4_STABLE [7371ab74f] 2015-08-10 17:18:17 -0400
-Branch: REL9_3_STABLE [f6d7a79f4] 2015-08-10 17:18:17 -0400
-Branch: REL9_2_STABLE [54cea765c] 2015-08-10 17:18:17 -0400
-Branch: master [cfe30a72f] 2015-08-12 21:19:03 -0400
-Branch: REL9_5_STABLE [ec94bc147] 2015-08-12 21:19:04 -0400
-Branch: REL9_4_STABLE [8cd3a7ada] 2015-08-12 21:19:05 -0400
-Branch: REL9_3_STABLE [7950657a9] 2015-08-12 21:19:06 -0400
-Branch: REL9_2_STABLE [866197d82] 2015-08-12 21:19:07 -0400
-Branch: REL9_1_STABLE [4390ba7bf] 2015-08-12 21:19:09 -0400
-Branch: REL9_0_STABLE [7b4b57fc4] 2015-08-12 21:19:10 -0400
--->
-
- <listitem>
- <para>
- Fix assorted planner bugs (Tom Lane)
- </para>
-
- <para>
- These mistakes could lead to incorrect query plans that would give wrong
- answers, or to assertion failures in assert-enabled builds, or to odd
- planner errors such as <quote>could not devise a query plan for the
- given query</>, <quote>could not find pathkey item to
- sort</>, <quote>plan should not reference subplan's variable</>,
- or <quote>failed to assign all NestLoopParams to plan nodes</>.
- Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
- testing that exposed these problems.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL9_5_BR [2cb9ec1bc] 2015-06-22 18:53:27 -0400
-Branch: REL9_4_STABLE [d8f9ab776] 2015-06-22 18:53:27 -0400
-Branch: REL9_3_STABLE [673068588] 2015-06-22 18:53:27 -0400
-Branch: REL9_2_STABLE [e538e510e] 2015-06-22 18:53:27 -0400
--->
-
- <listitem>
- <para>
- Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
- on large inheritance sets (Tom Lane, Dean Rasheed)
- </para>
- </listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [96f6a0cb4] 2015-09-09 22:51:44 +0900
-Branch: REL9_5_STABLE [65f37b3e9] 2015-09-09 22:52:28 +0900
-Branch: REL9_4_STABLE [2244c0652] 2015-09-09 22:52:35 +0900
-Branch: REL9_3_STABLE [47387732b] 2015-09-09 22:52:40 +0900
-Branch: REL9_2_STABLE [67518a141] 2015-09-09 23:01:10 +0900
-Branch: REL9_1_STABLE [60fe73b79] 2015-09-09 23:03:17 +0900
--->
-
- <listitem>
- <para>
- Ensure standby promotion trigger files are removed at postmaster
- startup (Michael Paquier, Fujii Masao)
- </para>
-
- <para>
- This prevents unwanted promotion from occurring if these files appear
- in a database backup that is used to initialize a new standby server.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d73d14c27] 2015-08-02 14:55:03 -0400
-Branch: REL9_5_STABLE [72697d2ba] 2015-08-02 14:55:04 -0400
-Branch: REL9_4_STABLE [c6d901292] 2015-08-02 14:55:05 -0400
-Branch: REL9_3_STABLE [fad824a88] 2015-08-02 14:54:44 -0400
-Branch: REL9_2_STABLE [20d1878b6] 2015-08-02 14:54:44 -0400
-Branch: REL9_1_STABLE [f1e84d3eb] 2015-08-02 14:54:44 -0400
-Branch: REL9_0_STABLE [8b53c087d] 2015-08-02 14:54:44 -0400
--->
-
- <listitem>
- <para>
- During postmaster shutdown, ensure that per-socket lock files are
- removed and listen sockets are closed before we remove
- the <filename>postmaster.pid</> file (Tom Lane)
- </para>
-
- <para>
- This avoids race-condition failures if an external script attempts to
- start a new postmaster as soon as <literal>pg_ctl stop</> returns.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL9_5_BR [48913db88] 2015-06-19 14:23:39 -0400
-Branch: REL9_4_STABLE [29722d79b] 2015-06-19 14:23:39 -0400
--->
-
- <listitem>
- <para>
- Ensure that the postmaster does not exit until all its child processes
- are gone, even in an immediate shutdown (Tom Lane)
- </para>
-
- <para>
- Like the previous item, this avoids possible race conditions against a
- subsequently-started postmaster.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [45811be94] 2015-07-09 13:22:22 -0400
-Branch: REL9_5_STABLE [193e02707] 2015-07-09 13:22:23 -0400
-Branch: REL9_4_STABLE [0d01c5b93] 2015-07-09 13:22:23 -0400
-Branch: REL9_3_STABLE [9c39d7ae0] 2015-07-09 13:22:23 -0400
-Branch: REL9_2_STABLE [97122b8a8] 2015-07-09 13:22:23 -0400
-Branch: REL9_1_STABLE [da1e7eb72] 2015-07-09 13:22:23 -0400
-Branch: REL9_0_STABLE [6718f07a0] 2015-07-09 13:22:23 -0400
--->
-
- <listitem>
- <para>
- Fix postmaster's handling of a startup-process crash during crash
- recovery (Tom Lane)
- </para>
-
- <para>
- If, during a crash recovery cycle, the startup process crashes without
- having restored database consistency, we'd try to launch a new startup
- process, which typically would just crash again, leading to an infinite
- loop.
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master Release: REL9_5_BR [667912aee] 2015-06-21 18:57:28 +0200
-Branch: REL9_4_STABLE [ec1408155] 2015-06-21 19:00:30 +0200
-Branch: REL9_3_STABLE [203193144] 2015-06-21 19:00:40 +0200
--->
-
- <listitem>
- <para>
- Make emergency autovacuuming for multixact wraparound more robust
- (Andres Freund)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d8f15c95b] 2015-07-28 17:34:23 -0400
-Branch: REL9_5_STABLE [116be6c17] 2015-07-28 17:34:00 -0400
-Branch: REL9_4_STABLE [082d4283b] 2015-07-28 17:34:00 -0400
-Branch: REL9_3_STABLE [47ee27521] 2015-07-28 17:34:00 -0400
-Branch: REL9_2_STABLE [1a2f95630] 2015-07-28 17:34:00 -0400
-Branch: REL9_1_STABLE [3f12041e7] 2015-07-28 17:34:00 -0400
-Branch: REL9_0_STABLE [f527c0a2a] 2015-07-28 17:34:00 -0400
--->
-
- <listitem>
- <para>
- Do not print a <literal>WARNING</> when an autovacuum worker is already
- gone when we attempt to signal it, and reduce log verbosity for such
- signals (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL9_5_BR [da1a9d0f5] 2015-06-19 12:44:36 -0300
-Branch: REL9_4_STABLE [cf733760e] 2015-06-19 12:44:35 -0300
-Branch: REL9_3_STABLE [5ac77a276] 2015-06-19 12:44:34 -0300
-Branch: REL9_2_STABLE [41acde2df] 2015-06-19 12:44:34 -0300
-Branch: REL9_1_STABLE [2fed5731a] 2015-06-19 12:44:33 -0300
-Branch: REL9_0_STABLE [d68df5e40] 2015-06-19 12:44:33 -0300
--->
-
- <listitem>
- <para>
- Prevent autovacuum launcher from sleeping unduly long if the server
- clock is moved backwards a large amount (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [e26692248] 2015-09-07 17:16:29 +0300
-Branch: REL9_5_STABLE [d592a8745] 2015-09-07 17:17:15 +0300
-Branch: REL9_4_STABLE [b6e367373] 2015-09-07 17:17:42 +0300
-Branch: REL9_3_STABLE [cd6f4248f] 2015-09-07 17:18:10 +0300
-Branch: REL9_2_STABLE [3ffbc4994] 2015-09-07 17:18:26 +0300
-Branch: REL9_1_STABLE [364c02357] 2015-09-07 17:18:45 +0300
-Branch: REL9_0_STABLE [a7496aee6] 2015-09-07 17:20:44 +0300
--->
-
- <listitem>
- <para>
- Ensure that cleanup of a GIN index's pending-insertions list is
- interruptable by cancel requests (Jeff Janes)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [334445179] 2015-07-27 12:30:26 +0300
-Branch: REL9_5_STABLE [202aea62a] 2015-07-27 12:31:05 +0300
-Branch: REL9_4_STABLE [746e7f1c1] 2015-07-27 12:32:08 +0300
-Branch: REL9_3_STABLE [bafe3b007] 2015-07-27 12:32:30 +0300
-Branch: REL9_2_STABLE [7658368cf] 2015-07-27 12:32:48 +0300
-Branch: REL9_1_STABLE [a471700e3] 2015-07-27 12:33:13 +0300
-Branch: REL9_0_STABLE [f87bf8480] 2015-07-27 12:33:18 +0300
--->
-
- <listitem>
- <para>
- Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
- </para>
-
- <para>
- Such a page might be left behind after a crash.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [023430abf] 2015-07-27 12:28:21 +0300
-Branch: REL9_5_STABLE [2fa8ba348] 2015-07-27 12:31:05 +0300
-Branch: REL9_4_STABLE [579b9f97c] 2015-07-27 12:32:08 +0300
-Branch: REL9_3_STABLE [863af3a37] 2015-07-27 12:32:30 +0300
-Branch: REL9_2_STABLE [f4297f8c5] 2015-07-27 12:32:48 +0300
--->
-
- <listitem>
- <para>
- Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
- Linnakangas)
- </para>
-
- <para>
- <command>VACUUM</> attempted to recycle such pages, but did so in a
- way that wasn't crash-safe.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [766dcfb16] 2015-07-23 01:29:59 +0300
-Branch: REL9_5_STABLE [a9b3a22aa] 2015-07-23 01:30:07 +0300
-Branch: REL9_4_STABLE [b7551339d] 2015-07-23 01:30:09 +0300
-Branch: REL9_3_STABLE [6ae9a0218] 2015-07-23 01:30:11 +0300
-Branch: REL9_2_STABLE [84330d0c1] 2015-07-23 01:30:15 +0300
-Branch: REL9_1_STABLE [e54e17aca] 2015-07-23 01:30:17 +0300
-Branch: REL9_0_STABLE [40ad78220] 2015-07-23 01:30:19 +0300
--->
-
- <listitem>
- <para>
- Fix off-by-one error that led to otherwise-harmless warnings
- about <quote>apparent wraparound</> in subtrans/multixact truncation
- (Thomas Munro)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2edb94911] 2015-08-18 19:22:37 -0400
-Branch: REL9_5_STABLE [4c3754ffe] 2015-08-18 19:22:37 -0400
-Branch: REL9_4_STABLE [928d0226e] 2015-08-18 19:22:38 -0400
-Branch: REL9_3_STABLE [8992e1acd] 2015-08-18 19:22:38 -0400
-Branch: REL9_2_STABLE [fb41bf4b5] 2015-08-18 19:22:38 -0400
-Branch: REL9_1_STABLE [17aa3c2d1] 2015-08-18 19:22:38 -0400
-Branch: REL9_0_STABLE [e41718fa1] 2015-08-18 19:22:38 -0400
--->
-
- <listitem>
- <para>
- Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
- types in <application>PL/pgSQL</>'s error context messages
- (Pavel Stehule, Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b631a46ed] 2015-09-29 10:52:22 -0400
-Branch: REL9_5_STABLE [a16b9b193] 2015-09-29 10:52:22 -0400
-Branch: REL9_4_STABLE [b62c870ff] 2015-09-29 10:52:22 -0400
-Branch: REL9_3_STABLE [f60b2e2d4] 2015-09-29 10:52:22 -0400
-Branch: REL9_2_STABLE [aae40cf13] 2015-09-29 10:52:22 -0400
-Branch: REL9_1_STABLE [ca6c2f863] 2015-09-29 10:52:22 -0400
--->
-
- <listitem>
- <para>
- Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
- message texts correctly (Alex Hunsaker)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [09b3d2725] 2015-08-21 11:19:33 -0400
-Branch: REL9_5_STABLE [20bef3fe2] 2015-08-21 11:19:40 -0400
-Branch: REL9_4_STABLE [f7ed465e0] 2015-08-21 11:19:44 -0400
-Branch: REL9_3_STABLE [461235bda] 2015-08-21 11:19:49 -0400
-Branch: REL9_2_STABLE [2f1d558bc] 2015-08-21 11:19:54 -0400
-Branch: REL9_1_STABLE [f2ae044ba] 2015-08-21 11:19:58 -0400
-Branch: master [f469f634a] 2015-08-21 12:21:37 -0400
-Branch: REL9_5_STABLE [19446280f] 2015-08-21 12:21:37 -0400
-Branch: REL9_4_STABLE [22b9ce798] 2015-08-21 12:21:37 -0400
-Branch: REL9_3_STABLE [59592efcf] 2015-08-21 12:21:37 -0400
-Branch: REL9_2_STABLE [dadef8af2] 2015-08-21 12:21:37 -0400
-Branch: REL9_1_STABLE [1d190d095] 2015-08-21 12:21:37 -0400
--->
-
- <listitem>
- <para>
- Fix <application>PL/Python</> crash when returning the string
- representation of a <type>record</> result (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [f8d67ca8d] 2015-07-20 14:10:07 +0200
-Branch: REL9_5_STABLE [b0b6f8d71] 2015-07-20 14:18:08 +0200
-Branch: REL9_4_STABLE [49c300040] 2015-07-20 14:18:08 +0200
-Branch: REL9_3_STABLE [b2efbb71d] 2015-07-20 14:18:08 +0200
-Branch: REL9_2_STABLE [3cb6ef998] 2015-07-20 14:18:08 +0200
-Branch: REL9_1_STABLE [14ade020f] 2015-07-20 14:18:08 +0200
-Branch: REL9_0_STABLE [4c11967e7] 2015-07-20 14:18:08 +0200
--->
-
- <listitem>
- <para>
- Fix some places in <application>PL/Tcl</> that neglected to check for
- failure of <function>malloc()</> calls (Michael Paquier, &Aacute;lvaro
- Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [cb3384a0c] 2015-08-02 22:12:33 +0300
-Branch: REL9_5_STABLE [ea8385df6] 2015-08-02 22:12:38 +0300
-Branch: REL9_4_STABLE [d7d4bd2c3] 2015-08-02 22:12:41 +0300
-Branch: REL9_3_STABLE [9d04a9824] 2015-08-02 22:12:45 +0300
-Branch: REL9_2_STABLE [56187c6fb] 2015-08-02 22:12:48 +0300
-Branch: REL9_1_STABLE [2d19a0e97] 2015-08-02 22:12:51 +0300
--->
-
- <listitem>
- <para>
- In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
- with 979 (Fabien Coelho)
- </para>
-
- <para>
- EANs beginning with 979 (but not 9790) are considered ISBNs, but they
- must be printed in the new 13-digit format, not the 10-digit format.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8bbe4cbd9] 2015-10-04 17:58:42 -0400
-Branch: REL9_5_STABLE [39a716d93] 2015-10-04 17:58:30 -0400
-Branch: REL9_4_STABLE [93840f96c] 2015-10-04 17:58:30 -0400
--->
-
- <listitem>
- <para>
- Improve <filename>contrib/pg_stat_statements</>' handling of
- query-text garbage collection (Peter Geoghegan)
- </para>
-
- <para>
- The external file containing query texts could bloat to very large
- sizes; once it got past 1GB attempts to trim it would fail, soon
- leading to situations where the file could not be read at all.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [76f965ff1] 2015-09-24 12:47:29 -0400
-Branch: REL9_5_STABLE [59d765b65] 2015-09-24 12:47:30 -0400
-Branch: REL9_4_STABLE [0da864c53] 2015-09-24 12:47:30 -0400
-Branch: REL9_3_STABLE [b7dcb2dd4] 2015-09-24 12:47:30 -0400
--->
-
- <listitem>
- <para>
- Improve <filename>contrib/postgres_fdw</>'s handling of
- collation-related decisions (Tom Lane)
- </para>
-
- <para>
- The main user-visible effect is expected to be that comparisons
- involving <type>varchar</> columns will be sent to the remote server
- for execution in more cases than before.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [414bef30b] 2015-07-07 18:44:59 +0300
-Branch: REL9_5_STABLE [28c38396e] 2015-07-07 18:47:25 +0300
-Branch: REL9_4_STABLE [992c6f0d2] 2015-07-07 18:45:17 +0300
-Branch: REL9_3_STABLE [fcdac5614] 2015-07-07 18:45:22 +0300
-Branch: REL9_2_STABLE [6d88c1fc5] 2015-07-07 18:45:24 +0300
-Branch: REL9_1_STABLE [dcbaf4b37] 2015-07-07 18:45:28 +0300
-Branch: REL9_0_STABLE [2b189c7ec] 2015-07-07 18:45:31 +0300
--->
-
- <listitem>
- <para>
- Improve <application>libpq</>'s handling of out-of-memory conditions
- (Michael Paquier, Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master Release: REL9_5_BR [82be1bf50] 2015-06-12 14:50:47 +0200
-Branch: REL9_4_STABLE [70767ac26] 2015-06-13 11:05:06 +0200
-Branch: REL9_3_STABLE [d65e5f832] 2015-06-13 11:08:16 +0200
-Branch: REL9_2_STABLE [1ea539ae3] 2015-06-13 11:13:59 +0200
-Branch: REL9_1_STABLE [866e7f591] 2015-06-13 11:15:09 +0200
-Branch: REL9_0_STABLE [4678be617] 2015-06-13 11:18:31 +0200
-Branch: master Release: REL9_5_BR [96ad72d1c] 2015-06-12 14:52:55 +0200
-Branch: REL9_4_STABLE [4f60d6658] 2015-06-13 11:04:58 +0200
-Branch: REL9_3_STABLE [31c06d4b6] 2015-06-13 11:13:16 +0200
-Branch: REL9_2_STABLE [ec311b1d8] 2015-06-13 11:14:07 +0200
-Branch: REL9_1_STABLE [a5238ced6] 2015-06-13 11:17:42 +0200
-Branch: REL9_0_STABLE [235bd4ccb] 2015-06-13 11:20:31 +0200
-Branch: master Release: REL9_5_BR [af0b49fc9] 2015-06-15 14:20:09 +0200
-Branch: REL9_4_STABLE [853222ce0] 2015-06-15 14:22:18 +0200
-Branch: REL9_3_STABLE [3e2a17eec] 2015-06-15 14:22:50 +0200
-Branch: REL9_2_STABLE [fd1ff4a13] 2015-06-15 14:23:04 +0200
-Branch: REL9_1_STABLE [a38f08bb9] 2015-06-15 14:23:17 +0200
-Branch: REL9_0_STABLE [abf92840a] 2015-06-15 14:23:30 +0200
-Branch: master Release: REL9_5_BR [94a484222] 2015-06-15 14:21:03 +0200
-Branch: REL9_4_STABLE [2a781b5bb] 2015-06-15 14:22:24 +0200
-Branch: REL9_3_STABLE [4130b2c1f] 2015-06-15 14:22:54 +0200
-Branch: REL9_2_STABLE [711cbaadd] 2015-06-15 14:23:07 +0200
-Branch: REL9_1_STABLE [6ab1a53dd] 2015-06-15 14:23:21 +0200
-Branch: REL9_0_STABLE [d278ff3b2] 2015-06-15 14:27:39 +0200
--->
-
- <listitem>
- <para>
- Fix memory leaks and missing out-of-memory checks
- in <application>ecpg</> (Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [4778a0bda] 2015-09-24 23:01:04 -0400
-Branch: REL9_5_STABLE [f1ee153dc] 2015-09-24 23:01:04 -0400
-Branch: REL9_4_STABLE [348dd2847] 2015-09-24 23:01:04 -0400
-Branch: REL9_3_STABLE [7e327ecd2] 2015-09-24 23:01:04 -0400
-Branch: REL9_2_STABLE [596c9e9ef] 2015-09-24 23:01:04 -0400
-Branch: REL9_1_STABLE [7ddadacec] 2015-09-24 23:01:04 -0400
-Branch: REL9_0_STABLE [c2d6ef14e] 2015-09-24 23:01:04 -0400
-Branch: master [6325527d8] 2015-09-25 00:00:33 -0400
-Branch: REL9_5_STABLE [da4af91ce] 2015-09-25 00:00:43 -0400
-Branch: REL9_4_STABLE [49917edad] 2015-09-25 00:00:51 -0400
-Branch: REL9_3_STABLE [9c547c939] 2015-09-25 00:00:58 -0400
-Branch: REL9_2_STABLE [60617d7d6] 2015-09-25 00:01:08 -0400
-Branch: REL9_1_STABLE [c48623d8d] 2015-09-25 00:01:14 -0400
-Branch: REL9_0_STABLE [71763ecff] 2015-09-25 00:01:20 -0400
-Branch: master [77130fc14] 2015-09-25 12:20:45 -0400
-Branch: REL9_5_STABLE [5eb702437] 2015-09-25 12:20:45 -0400
-Branch: REL9_4_STABLE [c961f401b] 2015-09-25 12:20:45 -0400
-Branch: REL9_3_STABLE [b7d17eca5] 2015-09-25 12:20:46 -0400
-Branch: REL9_2_STABLE [80fa54210] 2015-09-25 12:20:46 -0400
-Branch: REL9_1_STABLE [f88643476] 2015-09-25 12:20:46 -0400
-Branch: REL9_0_STABLE [98d8c75f9] 2015-09-25 12:20:46 -0400
--->
-
- <listitem>
- <para>
- Fix <application>psql</>'s code for locale-aware formatting of numeric
- output (Tom Lane)
- </para>
-
- <para>
- The formatting code invoked by <literal>\pset numericlocale on</>
- did the wrong thing for some uncommon cases such as numbers with an
- exponent but no decimal point. It could also mangle already-localized
- output from the <type>money</> data type.
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [e135c3d99] 2015-07-08 20:44:21 -0400
-Branch: REL9_5_STABLE [fb990ce6c] 2015-07-08 20:44:25 -0400
-Branch: REL9_4_STABLE [eb1525e89] 2015-07-08 20:44:26 -0400
-Branch: REL9_3_STABLE [49008d645] 2015-07-08 20:44:26 -0400
-Branch: REL9_2_STABLE [458ccbf2b] 2015-07-08 20:44:27 -0400
-Branch: REL9_1_STABLE [5f173a9f2] 2015-07-08 20:44:27 -0400
-Branch: REL9_0_STABLE [6087bf1a1] 2015-07-08 20:44:27 -0400
--->
-
- <listitem>
- <para>
- Prevent crash in <application>psql</>'s <command>\c</> command when
- there is no current connection (Noah Misch)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8ab4a6bd3] 2015-10-01 16:20:13 -0400
-Branch: REL9_5_STABLE [5ea47e8f2] 2015-10-01 16:20:15 -0400
-Branch: REL9_4_STABLE [35435af38] 2015-10-01 16:19:49 -0400
-Branch: REL9_3_STABLE [7e1e1c9d1] 2015-10-01 16:19:49 -0400
-Branch: REL9_2_STABLE [3756c65a0] 2015-10-01 16:19:49 -0400
--->
-
- <listitem>
- <para>
- Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
- check constraints correctly (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [caef94d59] 2015-07-25 17:14:36 -0400
-Branch: REL9_5_STABLE [08012455c] 2015-07-25 17:15:32 -0400
-Branch: REL9_4_STABLE [41ed5bb9a] 2015-07-25 17:15:48 -0400
-Branch: REL9_3_STABLE [84bf6ece1] 2015-07-25 17:16:03 -0400
-Branch: REL9_2_STABLE [aa1266d5f] 2015-07-25 17:16:14 -0400
-Branch: REL9_1_STABLE [af225551e] 2015-07-25 17:16:39 -0400
--->
-
- <listitem>
- <para>
- Fix selection of default <application>zlib</> compression level
- in <application>pg_dump</>'s directory output format (Andrew Dunstan)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [8346218c0] 2015-09-20 20:42:27 -0400
-Branch: REL9_5_STABLE [1be9d65e1] 2015-09-20 20:42:44 -0400
-Branch: REL9_4_STABLE [7496aba80] 2015-09-20 20:42:50 -0400
-Branch: REL9_3_STABLE [ea218a2ba] 2015-09-20 20:42:55 -0400
-Branch: REL9_2_STABLE [c94b65f67] 2015-09-20 20:43:47 -0400
-Branch: REL9_1_STABLE [5dc49efe9] 2015-09-20 20:44:23 -0400
-Branch: REL9_0_STABLE [24aed2124] 2015-09-20 20:44:34 -0400
--->
-
- <listitem>
- <para>
- Ensure that temporary files created during a <application>pg_dump</>
- run with <acronym>tar</>-format output are not world-readable (Michael
- Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [7f8d090b8] 2015-09-11 15:51:11 -0400
-Branch: REL9_5_STABLE [3243fce88] 2015-09-11 15:51:11 -0400
-Branch: REL9_4_STABLE [35d2fc1f2] 2015-09-11 15:51:11 -0400
-Branch: REL9_3_STABLE [ca445043e] 2015-09-11 15:51:10 -0400
-Branch: REL9_2_STABLE [befc63e84] 2015-09-11 15:51:10 -0400
-Branch: REL9_1_STABLE [c5391e933] 2015-09-11 15:51:10 -0400
-Branch: REL9_0_STABLE [52b07779d] 2015-09-11 15:51:10 -0400
--->
-
- <listitem>
- <para>
- Fix <application>pg_dump</> and <application>pg_upgrade</> to support
- cases where the <literal>postgres</> or <literal>template1</> database
- is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b861678f5] 2015-08-10 20:10:15 -0400
-Branch: REL9_5_STABLE [1cd468516] 2015-08-10 20:10:15 -0400
-Branch: REL9_4_STABLE [3352c23a6] 2015-08-10 20:10:16 -0400
-Branch: REL9_3_STABLE [75d02d787] 2015-08-10 20:10:16 -0400
-Branch: REL9_2_STABLE [be9ef396c] 2015-08-10 20:10:16 -0400
-Branch: REL9_1_STABLE [34f1a85e5] 2015-08-10 20:10:16 -0400
-Branch: REL9_0_STABLE [298d1f808] 2015-08-10 20:10:16 -0400
--->
-
- <listitem>
- <para>
- Fix <application>pg_dump</> to handle object privileges sanely when
- dumping from a server too old to have a particular privilege type
- (Tom Lane)
- </para>
-
- <para>
- When dumping data types from pre-9.2 servers, and when dumping
- functions or procedural languages from pre-7.3
- servers, <application>pg_dump</> would
- produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
- owner's grantable privileges and instead granted all privileges
- to <literal>PUBLIC</>. Since the privileges involved are
- just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
- problem, but it's certainly a surprising representation of the older
- systems' behavior. Fix it to leave the default privilege state alone
- in these cases.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3bdd7f90f] 2015-08-04 19:34:12 -0400
-Branch: REL9_5_STABLE [1f507c7e9] 2015-08-04 19:34:12 -0400
-Branch: REL9_4_STABLE [fa6e785fd] 2015-08-04 19:34:12 -0400
-Branch: REL9_3_STABLE [5da713f31] 2015-08-04 19:34:12 -0400
-Branch: REL9_2_STABLE [dae6e4601] 2015-08-04 19:34:12 -0400
-Branch: REL9_1_STABLE [270a877cc] 2015-08-04 19:34:12 -0400
-Branch: REL9_0_STABLE [5d175be17] 2015-08-04 19:34:12 -0400
--->
-
- <listitem>
- <para>
- Fix <application>pg_dump</> to dump shell types (Tom Lane)
- </para>
-
- <para>
- Shell types (that is, not-yet-fully-defined types) aren't useful for
- much, but nonetheless <application>pg_dump</> should dump them.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [bcc87b6b0] 2015-07-12 16:26:08 -0400
-Branch: REL9_5_STABLE [0e78a610f] 2015-07-12 16:26:18 -0400
-Branch: REL9_4_STABLE [1ed549387] 2015-07-12 16:25:51 -0400
-Branch: REL9_3_STABLE [faf686b54] 2015-07-12 16:25:52 -0400
-Branch: REL9_2_STABLE [a24ceea4b] 2015-07-12 16:25:52 -0400
-Branch: REL9_1_STABLE [e9a859b54] 2015-07-12 16:25:52 -0400
--->
-
- <listitem>
- <para>
- Fix assorted minor memory leaks in <application>pg_dump</> and other
- client-side programs (Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [9031ff91a] 2015-07-03 11:12:34 +0300
-Branch: REL9_5_STABLE [5174ca17a] 2015-07-03 11:15:55 +0300
-Branch: REL9_4_STABLE [9d6352aaa] 2015-07-03 11:15:27 +0300
--->
-
- <listitem>
- <para>
- Fix <application>pgbench</>'s progress-report behavior when a query,
- or <application>pgbench</> itself, gets stuck (Fabien Coelho)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_4_STABLE [747ca6697] 2015-08-29 16:34:30 -0400
--->
-
- <listitem>
- <para>
- Fix spinlock assembly code for Alpha hardware (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c41a1215f] 2015-08-29 16:09:25 -0400
-Branch: REL9_5_STABLE [ffbc387bf] 2015-08-29 16:09:25 -0400
-Branch: REL9_4_STABLE [3da9c060f] 2015-08-29 16:09:25 -0400
-Branch: REL9_3_STABLE [c355df54e] 2015-08-29 16:09:25 -0400
-Branch: REL9_2_STABLE [472680c57] 2015-08-29 16:09:25 -0400
-Branch: REL9_1_STABLE [14b497cfb] 2015-08-29 16:09:25 -0400
-Branch: REL9_0_STABLE [b5a22d8bb] 2015-08-29 16:09:25 -0400
--->
-
- <listitem>
- <para>
- Fix spinlock assembly code for PPC hardware to be compatible
- with <acronym>AIX</>'s native assembler (Tom Lane)
- </para>
-
- <para>
- Building with <application>gcc</> didn't work if <application>gcc</>
- had been configured to use the native assembler, which is becoming more
- common.
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [43d89a23d] 2015-07-17 03:01:14 -0400
-Branch: REL9_5_STABLE [eb3b93b53] 2015-07-17 03:01:29 -0400
-Branch: REL9_4_STABLE [f3f037e18] 2015-07-17 03:01:35 -0400
-Branch: REL9_3_STABLE [7319c0524] 2015-07-17 03:02:03 -0400
-Branch: REL9_2_STABLE [12073b9aa] 2015-07-17 03:02:18 -0400
-Branch: REL9_1_STABLE [76fa354c5] 2015-07-17 03:02:23 -0400
-Branch: REL9_0_STABLE [cdf596b1c] 2015-07-17 03:02:46 -0400
--->
-
- <listitem>
- <para>
- On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
- rather than just assuming it's safe to use (Noah Misch)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [bcd7c4120] 2015-07-15 21:00:26 -0400
-Branch: REL9_5_STABLE [c2b824e34] 2015-07-15 21:00:30 -0400
-Branch: REL9_4_STABLE [2405107b4] 2015-07-15 21:00:30 -0400
-Branch: REL9_3_STABLE [dc5075fed] 2015-07-15 21:00:30 -0400
-Branch: REL9_2_STABLE [690bec26c] 2015-07-15 21:00:31 -0400
-Branch: REL9_1_STABLE [1dd2b6b68] 2015-07-15 21:00:31 -0400
-Branch: REL9_0_STABLE [7803d5720] 2015-07-15 21:00:31 -0400
--->
-
- <listitem>
- <para>
- On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
- symbols to be resolved at runtime (Noah Misch)
- </para>
-
- <para>
- Perl relies on this ability in 5.8.0 and later.
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [c53f73879] 2015-07-29 22:49:48 -0400
-Branch: REL9_5_STABLE [a664d4790] 2015-07-29 22:52:43 -0400
-Branch: REL9_4_STABLE [76cf5f195] 2015-07-29 22:53:09 -0400
-Branch: REL9_3_STABLE [23e7ee962] 2015-07-29 22:53:40 -0400
-Branch: REL9_2_STABLE [0a89f3bc6] 2015-07-29 22:53:58 -0400
-Branch: REL9_1_STABLE [d20327a4f] 2015-07-29 22:54:03 -0400
-Branch: REL9_0_STABLE [2d8c136e7] 2015-07-29 22:54:08 -0400
--->
-
- <listitem>
- <para>
- Avoid use of inline functions when compiling with
- 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL9_5_BR [ab93f90cd] 2015-06-30 14:20:38 -0300
-Branch: REL9_4_STABLE [ef704ec06] 2015-06-30 14:20:38 -0300
-Branch: REL9_3_STABLE [c085e072f] 2015-06-30 14:20:38 -0300
-Branch: REL9_2_STABLE [c538d7363] 2015-06-30 14:20:38 -0300
-Branch: REL9_1_STABLE [a9f886f41] 2015-06-30 14:20:38 -0300
-Branch: REL9_0_STABLE [b185c42c1] 2015-06-30 14:20:37 -0300
--->
-
- <listitem>
- <para>
- Use <filename>librt</> for <function>sched_yield()</> when necessary,
- which it is on some Solaris versions (Oskari Saarenmaa)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [ec79978dd] 2015-08-14 20:23:13 -0400
-Branch: REL9_5_STABLE [f19ad6fbe] 2015-08-14 20:23:35 -0400
-Branch: REL9_4_STABLE [a0104e080] 2015-08-14 20:23:42 -0400
--->
-
- <listitem>
- <para>
- Translate encoding <literal>UHC</> as Windows code page 949
- (Noah Misch)
- </para>
-
- <para>
- This fixes presentation of non-ASCII log messages from processes that
- are not attached to any particular database, such as the postmaster.
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [43adc7a71] 2015-08-14 20:23:09 -0400
-Branch: REL9_5_STABLE [92516bf19] 2015-08-14 20:23:34 -0400
-Branch: REL9_4_STABLE [f988da953] 2015-08-14 20:23:41 -0400
--->
-
- <listitem>
- <para>
- On Windows, avoid failure when doing encoding conversion to UTF16
- outside a transaction, such as for log messages (Noah Misch)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master Release: REL9_5_BR [f0a264a36] 2015-06-20 12:09:29 -0400
-Branch: REL9_4_STABLE [b2ed1682d] 2015-06-20 12:10:56 -0400
--->
-
- <listitem>
- <para>
- Fix postmaster startup failure due to not
- copying <function>setlocale()</>'s return value (Noah Misch)
- </para>
-
- <para>
- This has been reported on Windows systems with the ANSI code page set
- to CP936 (<quote>Chinese (Simplified, PRC)</>), and may occur with
- other multibyte code pages.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [6c534fd68] 2015-07-06 22:18:26 +0300
-Branch: REL9_5_STABLE [e5460aa02] 2015-07-07 16:33:10 +0300
-Branch: REL9_4_STABLE [4dac5651b] 2015-07-07 16:31:52 +0300
-Branch: REL9_3_STABLE [880365a3c] 2015-07-07 16:37:16 +0300
-Branch: REL9_2_STABLE [a5273ef37] 2015-07-07 16:37:34 +0300
-Branch: REL9_1_STABLE [3b7cf4367] 2015-07-07 16:38:24 +0300
-Branch: REL9_0_STABLE [341b877d3] 2015-07-07 16:39:25 +0300
--->
-
- <listitem>
- <para>
- Fix Windows <filename>install.bat</> script to handle target directory
- names that contain spaces (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a5d489ccb] 2015-07-02 17:24:36 -0400
-Branch: REL9_5_STABLE [d1fec374f] 2015-07-05 12:01:01 -0400
-Branch: REL9_4_STABLE [60c38e62c] 2015-07-05 12:01:01 -0400
-Branch: REL9_3_STABLE [544e75814] 2015-07-05 12:01:01 -0400
-Branch: REL9_2_STABLE [89b8cf47b] 2015-07-05 12:01:01 -0400
-Branch: REL9_1_STABLE [9b00885d0] 2015-07-05 12:01:01 -0400
-Branch: REL9_0_STABLE [29ff43adf] 2015-07-05 12:01:02 -0400
--->
-
- <listitem>
- <para>
- Make the numeric form of the <productname>PostgreSQL</> version number
- (e.g., <literal>90405</>) readily available to extension Makefiles,
- as a variable named <varname>VERSION_NUM</> (Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [241e6844a] 2015-10-02 19:15:39 -0400
-Branch: REL9_5_STABLE [19b06cc66] 2015-10-02 19:15:49 -0400
-Branch: REL9_4_STABLE [8e45497a2] 2015-10-02 19:15:57 -0400
-Branch: REL9_3_STABLE [0f6a046b6] 2015-10-02 19:16:06 -0400
-Branch: REL9_2_STABLE [fd519c170] 2015-10-02 19:16:18 -0400
-Branch: REL9_1_STABLE [3a68e0a10] 2015-10-02 19:16:29 -0400
-Branch: REL9_0_STABLE [47ac95f37] 2015-10-02 19:16:37 -0400
--->
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2015g for
- DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
- Island, North Korea, Turkey, and Uruguay. There is a new zone name
- <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-4">
- <title>Release 9.4.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2015-06-12</para>
- </formalpara>
-
- <para>
- This release contains a small number of fixes from 9.4.3.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.4</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading an installation that was previously
- upgraded using a <application>pg_upgrade</> version between 9.3.0 and
- 9.3.4 inclusive, see the first changelog entry below.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.2,
- see <xref linkend="release-9-4-2">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [068cfadf9] 2015-06-05 09:31:57 -0400
-Branch: REL9_4_STABLE [b6a3444fa] 2015-06-05 09:33:52 -0400
-Branch: REL9_3_STABLE [2a9b01928] 2015-06-05 09:34:15 -0400
--->
-
- <listitem>
- <para>
- Fix possible failure to recover from an inconsistent database state
- (Robert Haas)
- </para>
-
- <para>
- Recent <productname>PostgreSQL</> releases introduced mechanisms to
- protect against multixact wraparound, but some of that code did not
- account for the possibility that it would need to run during crash
- recovery, when the database may not be in a consistent state. This
- could result in failure to restart after a crash, or failure to start
- up a secondary server. The lingering effects of a previously-fixed
- bug in <application>pg_upgrade</> could also cause such a failure, in
- installations that had used <application>pg_upgrade</> versions
- between 9.3.0 and 9.3.4.
- </para>
-
- <para>
- The <application>pg_upgrade</> bug in question was that it would
- set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
- if the true value should be higher. With the fixes introduced in
- this release, such a situation will result in immediate emergency
- autovacuuming until a correct <literal>oldestMultiXid</> value can
- be determined. If that would pose a hardship, users can avoid it by
- doing manual vacuuming <emphasis>before</> upgrading to this release.
- In detail:
-
- <orderedlist>
- <listitem>
- <para>
- Check whether <application>pg_controldata</> reports <quote>Latest
- checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
- to do.
- </para>
- </listitem>
- <listitem>
- <para>
- Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
- file named <filename>0000</>. If there is, there's nothing to do.
- </para>
- </listitem>
- <listitem>
- <para>
- Otherwise, for each table that has
- <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
- <command>VACUUM</> that table with
- both <xref linkend="guc-vacuum-multixact-freeze-min-age">
- and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
- zero. (You can use the vacuum cost delay parameters described
- in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
- the performance consequences for concurrent sessions.)
- </para>
- </listitem>
- </orderedlist>
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3b5565dd] 2015-06-07 15:32:09 -0400
-Branch: REL9_4_STABLE [be25a08a9] 2015-06-07 15:32:09 -0400
-Branch: REL9_3_STABLE [4f2458dd7] 2015-06-07 15:32:09 -0400
-Branch: REL9_2_STABLE [3e69a73b9] 2015-06-07 15:32:09 -0400
-Branch: REL9_1_STABLE [e06e56212] 2015-06-07 15:32:09 -0400
-Branch: REL9_0_STABLE [2fe1939b0] 2015-06-07 15:32:09 -0400
--->
-
- <listitem>
- <para>
- Fix rare failure to invalidate relation cache init file (Tom Lane)
- </para>
-
- <para>
- With just the wrong timing of concurrent activity, a <command>VACUUM
- FULL</> on a system catalog might fail to update the <quote>init file</>
- that's used to avoid cache-loading work for new sessions. This would
- result in later sessions being unable to access that catalog at all.
- This is a very ancient bug, but it's so hard to trigger that no
- reproducible case had been seen until recently.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ac23b711d] 2015-06-05 13:22:27 -0400
-Branch: REL9_4_STABLE [247263dc3] 2015-06-05 13:22:27 -0400
-Branch: REL9_3_STABLE [ac86eda63] 2015-06-05 13:22:27 -0400
-Branch: REL9_2_STABLE [04358dab2] 2015-06-05 13:22:27 -0400
-Branch: REL9_1_STABLE [002e7d144] 2015-06-05 13:22:27 -0400
-Branch: REL9_0_STABLE [dbd99c7f0] 2015-06-05 13:22:27 -0400
--->
-
- <listitem>
- <para>
- Avoid deadlock between incoming sessions and <literal>CREATE/DROP
- DATABASE</> (Tom Lane)
- </para>
-
- <para>
- A new session starting in a database that is the target of
- a <command>DROP DATABASE</> command, or is the template for
- a <command>CREATE DATABASE</> command, could cause the command to wait
- for five seconds and then fail, even if the new session would have
- exited before that.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3f59be836] 2015-06-03 11:59:10 -0400
-Branch: REL9_4_STABLE [f0a8515c4] 2015-06-03 11:58:47 -0400
-Branch: REL9_3_STABLE [d3fdec6ae] 2015-06-03 11:58:47 -0400
--->
-
- <listitem>
- <para>
- Improve planner's cost estimates for semi-joins and anti-joins with
- inner indexscans (Tom Lane, Tomas Vondra)
- </para>
-
- <para>
- This type of plan is quite cheap when all the join clauses are used
- as index scan conditions, even if the inner scan would nominally
- fetch many rows, because the executor will stop after obtaining one
- row. The planner only partially accounted for that effect, and would
- therefore overestimate the cost, leading it to possibly choose some
- other much less efficient plan type.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-3">
- <title>Release 9.4.3</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2015-06-04</para>
- </formalpara>
-
- <para>
- This release contains a small number of fixes from 9.4.2.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.3</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 9.4.2,
- see <xref linkend="release-9-4-2">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d8179b001] 2015-05-28 17:33:03 -0400
-Branch: REL9_4_STABLE [a3ae3db43] 2015-05-28 17:33:03 -0400
-Branch: REL9_3_STABLE [81f3d3b7c] 2015-05-28 17:33:03 -0400
-Branch: REL9_2_STABLE [aa8377e64] 2015-05-28 17:33:03 -0400
-Branch: REL9_1_STABLE [cb867853a] 2015-05-28 17:33:03 -0400
-Branch: REL9_0_STABLE [e4a04e5a4] 2015-05-28 17:33:03 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c07d8c963] 2015-05-29 13:05:16 -0400
-Branch: REL9_4_STABLE [dbde225b1] 2015-05-29 13:05:16 -0400
-Branch: REL9_3_STABLE [52fc94844] 2015-05-29 13:05:16 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [57e1138bc] 2015-05-29 15:11:36 -0400
-Branch: REL9_4_STABLE [70a4519b8] 2015-05-29 15:11:36 -0400
-Branch: REL9_3_STABLE [35dd1b51f] 2015-05-29 15:11:36 -0400
-Branch: REL9_2_STABLE [77642a819] 2015-05-29 15:11:36 -0400
-Branch: REL9_1_STABLE [9e79ca326] 2015-05-29 15:11:36 -0400
-Branch: REL9_0_STABLE [bf2f20c08] 2015-05-29 15:11:36 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1943c000b] 2015-05-29 17:02:58 -0400
-Branch: REL9_4_STABLE [99f50dd72] 2015-05-29 17:02:58 -0400
-Branch: REL9_3_STABLE [c2b68b1f7] 2015-05-29 17:02:58 -0400
--->
-
- <listitem>
- <para>
- Avoid failures while <function>fsync</>'ing data directory during
- crash restart (Abhijit Menon-Sen, Tom Lane)
- </para>
-
- <para>
- In the previous minor releases we added a patch to <function>fsync</>
- everything in the data directory after a crash. Unfortunately its
- response to any error condition was to fail, thereby preventing the
- server from starting up, even when the problem was quite harmless.
- An example is that an unwritable file in the data directory would
- prevent restart on some platforms; but it is common to make SSL
- certificate files unwritable by the server. Revise this behavior so
- that permissions failures are ignored altogether, and other types of
- failures are logged but do not prevent continuing.
- </para>
-
- <para>
- Also apply the same rules in <literal>initdb --sync-only</>.
- This case is less critical but it should act similarly.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f46edf479] 2015-05-28 11:24:37 -0400
-Branch: REL9_4_STABLE [d4a9f5519] 2015-05-28 11:24:37 -0400
-Branch: REL9_3_STABLE [27bae8d96] 2015-05-28 11:24:37 -0400
-Branch: REL9_2_STABLE [f3c67aad4] 2015-05-28 11:24:37 -0400
--->
-
- <listitem>
- <para>
- Fix <function>pg_get_functiondef()</> to show
- functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
- </para>
- </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [5302760a5] 2015-05-22 10:21:41 -0400
-Branch: REL9_4_STABLE [9b74f32cd] 2015-05-22 10:31:29 -0400
--->
-
- <listitem>
- <para>
- Fix <function>pushJsonbValue()</> to unpack <type>jbvBinary</>
- objects (Andrew Dunstan)
- </para>
-
- <para>
- This change does not affect any behavior in the core code as of 9.4,
- but it avoids a corner case for possible third-party callers.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [86832eb89] 2015-05-26 22:14:59 -0400
-Branch: REL9_4_STABLE [79f0f7cab] 2015-05-26 22:14:59 -0400
-Branch: REL9_3_STABLE [9e980e7d0] 2015-05-26 22:14:59 -0400
-Branch: REL9_2_STABLE [1b1457120] 2015-05-26 22:14:59 -0400
-Branch: REL9_1_STABLE [5585cc707] 2015-05-26 22:14:59 -0400
-Branch: REL9_0_STABLE [b06649b7f] 2015-05-26 22:15:00 -0400
--->
-
- <listitem>
- <para>
- Remove <application>configure</>'s check prohibiting linking to a
- threaded <application>libpython</>
- on <systemitem class="osname">OpenBSD</> (Tom Lane)
- </para>
-
- <para>
- The failure this restriction was meant to prevent seems to not be a
- problem anymore on current <systemitem class="osname">OpenBSD</>
- versions.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-2">
- <title>Release 9.4.2</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2015-05-22</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.1.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.2</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you use <filename>contrib/citext</>'s
- <function>regexp_matches()</> functions, see the changelog entry below
- about that.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 9.4.1,
- see <xref linkend="release-9-4-1">.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [b0ce38503] 2015-05-18 10:02:31 -0400
-Branch: REL9_4_STABLE [7a0d48ac7] 2015-05-18 10:02:35 -0400
-Branch: REL9_3_STABLE [f4c12b415] 2015-05-18 10:02:36 -0400
-Branch: REL9_2_STABLE [439ff9b6b] 2015-05-18 10:02:37 -0400
-Branch: REL9_1_STABLE [6675ab595] 2015-05-18 10:02:38 -0400
-Branch: REL9_0_STABLE [648e41a6e] 2015-05-18 10:02:38 -0400
--->
-
- <listitem>
- <para>
- Avoid possible crash when client disconnects just before the
- authentication timeout expires (Benkocs Norbert Attila)
- </para>
-
- <para>
- If the timeout interrupt fired partway through the session shutdown
- sequence, SSL-related state would be freed twice, typically causing a
- crash and hence denial of service to other sessions. Experimentation
- shows that an unauthenticated remote attacker could trigger the bug
- somewhat consistently, hence treat as security issue.
- (CVE-2015-3165)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [cac18a76b] 2015-05-18 10:02:31 -0400
-Branch: REL9_4_STABLE [f7c4fe7d9] 2015-05-18 10:02:35 -0400
-Branch: REL9_3_STABLE [d5abbd114] 2015-05-18 10:02:36 -0400
-Branch: REL9_2_STABLE [1e6652aea] 2015-05-18 10:02:37 -0400
-Branch: REL9_1_STABLE [b544dcdad] 2015-05-18 10:02:38 -0400
-Branch: REL9_0_STABLE [19f7adc01] 2015-05-18 10:02:38 -0400
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [16304a013] 2015-05-18 10:02:31 -0400
-Branch: REL9_4_STABLE [2e3bd0665] 2015-05-18 10:02:35 -0400
-Branch: REL9_3_STABLE [34d21e770] 2015-05-18 10:02:36 -0400
-Branch: REL9_2_STABLE [82b7393eb] 2015-05-18 10:02:37 -0400
-Branch: REL9_1_STABLE [e58f042d9] 2015-05-18 10:02:38 -0400
-Branch: REL9_0_STABLE [b08c7aff7] 2015-05-18 10:02:38 -0400
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [fd97bd411] 2015-05-18 10:02:31 -0400
-Branch: REL9_4_STABLE [ca325941d] 2015-05-18 10:02:35 -0400
-Branch: REL9_3_STABLE [c669915fd] 2015-05-18 10:02:37 -0400
-Branch: REL9_2_STABLE [01272d95a] 2015-05-18 10:02:37 -0400
-Branch: REL9_1_STABLE [2cb9f2cab] 2015-05-18 10:02:38 -0400
-Branch: REL9_0_STABLE [9b5e831e3] 2015-05-18 10:02:38 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0c071936e] 2015-05-19 18:19:38 -0400
-Branch: REL9_4_STABLE [2eb2fcd56] 2015-05-19 18:16:19 -0400
-Branch: REL9_3_STABLE [13341276e] 2015-05-19 18:16:58 -0400
-Branch: REL9_2_STABLE [221f7a949] 2015-05-19 18:17:42 -0400
-Branch: REL9_1_STABLE [0510cff6e] 2015-05-19 18:18:16 -0400
-Branch: REL9_0_STABLE [cf893530a] 2015-05-19 18:18:56 -0400
--->
-
- <listitem>
- <para>
- Improve detection of system-call failures (Noah Misch)
- </para>
-
- <para>
- Our replacement implementation of <function>snprintf()</> failed to
- check for errors reported by the underlying system library calls;
- the main case that might be missed is out-of-memory situations.
- In the worst case this might lead to information exposure, due to our
- code assuming that a buffer had been overwritten when it hadn't been.
- Also, there were a few places in which security-relevant calls of other
- system library functions did not check for failure.
- </para>
-
- <para>
- It remains possible that some calls of the <function>*printf()</>
- family of functions are vulnerable to information disclosure if an
- out-of-memory error occurs at just the wrong time. We judge the risk
- to not be large, but will continue analysis in this area.
- (CVE-2015-3166)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [85270ac7a] 2015-05-18 10:02:31 -0400
-Branch: REL9_4_STABLE [fba1fb4ef] 2015-05-18 10:02:35 -0400
-Branch: REL9_3_STABLE [7b758b7d6] 2015-05-18 10:02:37 -0400
-Branch: REL9_2_STABLE [0ba200431] 2015-05-18 10:02:37 -0400
-Branch: REL9_1_STABLE [e5981aebd] 2015-05-18 10:02:38 -0400
-Branch: REL9_0_STABLE [b84e5c017] 2015-05-18 10:02:39 -0400
--->
-
- <listitem>
- <para>
- In <filename>contrib/pgcrypto</>, uniformly report decryption failures
- as <quote>Wrong key or corrupt data</> (Noah Misch)
- </para>
-
- <para>
- Previously, some cases of decryption with an incorrect key could report
- other error message texts. It has been shown that such variance in
- error reports can aid attackers in recovering keys from other systems.
- While it's unknown whether <filename>pgcrypto</>'s specific behaviors
- are likewise exploitable, it seems better to avoid the risk by using a
- one-size-fits-all message.
- (CVE-2015-3167)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [b69bf30b9] 2015-04-28 11:32:53 -0300
-Branch: REL9_4_STABLE [942542cbb] 2015-04-28 11:32:53 -0300
-Branch: REL9_3_STABLE [e2eda4b11] 2015-04-28 11:32:53 -0300
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [669c7d20e] 2015-04-30 13:55:06 -0300
-Branch: REL9_4_STABLE [7140e11d8] 2015-04-30 13:55:06 -0300
-Branch: REL9_3_STABLE [e60581fdf] 2015-04-30 13:55:06 -0300
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [7be47c56a] 2015-05-07 11:19:31 -0400
-Branch: REL9_4_STABLE [32c50af4c] 2015-05-07 11:13:55 -0400
-Branch: REL9_3_STABLE [83fbd9b59] 2015-05-07 11:16:41 -0400
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [312747c22] 2015-05-10 21:34:26 -0400
-Branch: REL9_4_STABLE [7b3f0f8b8] 2015-05-10 21:47:28 -0400
-Branch: REL9_3_STABLE [24aa77ec9] 2015-05-10 21:47:41 -0400
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [f6a6c46d7] 2015-05-10 22:21:20 -0400
-Branch: REL9_4_STABLE [ded891916] 2015-05-10 22:45:27 -0400
-Branch: REL9_3_STABLE [5bbac7ec1] 2015-05-10 22:45:42 -0400
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [53bb309d2] 2015-05-08 12:53:00 -0400
-Branch: REL9_4_STABLE [3ecab37d9] 2015-05-08 12:53:30 -0400
-Branch: REL9_3_STABLE [596fb5aa7] 2015-05-08 12:55:14 -0400
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [04e6d3b87] 2015-05-11 10:51:14 -0400
-Branch: REL9_4_STABLE [8ec1a3a54] 2015-05-11 10:56:19 -0400
-Branch: REL9_3_STABLE [543fbecee] 2015-05-11 10:56:32 -0400
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [b4d4ce1d5] 2015-05-11 12:15:50 -0400
-Branch: REL9_4_STABLE [ea70595a3] 2015-05-11 12:16:35 -0400
-Branch: REL9_3_STABLE [ddebd2119] 2015-05-11 12:16:51 -0400
--->
-
- <listitem>
- <para>
- Protect against wraparound of multixact member IDs
- (&Aacute;lvaro Herrera, Robert Haas, Thomas Munro)
- </para>
-
- <para>
- Under certain usage patterns, the existing defenses against this might
- be insufficient, allowing <filename>pg_multixact/members</> files to be
- removed too early, resulting in data loss.
- The fix for this includes modifying the server to fail transactions
- that would result in overwriting old multixact member ID data, and
- improving autovacuum to ensure it will act proactively to prevent
- multixact member ID wraparound, as it does for transaction ID
- wraparound.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b22527f29] 2015-05-05 15:51:22 -0400
-Branch: REL9_4_STABLE [b1ec45994] 2015-05-05 15:50:53 -0400
-Branch: REL9_3_STABLE [ffac9f65d] 2015-05-05 15:50:53 -0400
-Branch: REL9_2_STABLE [d4070d10c] 2015-05-05 15:50:53 -0400
-Branch: REL9_1_STABLE [801e250a8] 2015-05-05 15:50:53 -0400
--->
-
- <listitem>
- <para>
- Fix incorrect declaration of <filename>contrib/citext</>'s
- <function>regexp_matches()</> functions (Tom Lane)
- </para>
-
- <para>
- These functions should return <type>setof text[]</>, like the core
- functions they are wrappers for; but they were incorrectly declared as
- returning just <type>text[]</>. This mistake had two results: first,
- if there was no match you got a scalar null result, whereas what you
- should get is an empty set (zero rows). Second, the <literal>g</> flag
- was effectively ignored, since you would get only one result array even
- if there were multiple matches.
- </para>
-
- <para>
- While the latter behavior is clearly a bug, there might be applications
- depending on the former behavior; therefore the function declarations
- will not be changed by default until <productname>PostgreSQL</> 9.5.
- In pre-9.5 branches, the old behavior exists in version 1.0 of
- the <literal>citext</> extension, while we have provided corrected
- declarations in version 1.1 (which is <emphasis>not</> installed by
- default). To adopt the fix in pre-9.5 branches, execute
- <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
- which <literal>citext</> is installed. (You can also <quote>update</>
- back to 1.0 if you need to undo that.) Be aware that either update
- direction will require dropping and recreating any views or rules that
- use <filename>citext</>'s <function>regexp_matches()</> functions.
- </para>
- </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [bda76c1c8] 2015-02-26 12:25:21 -0500
-Branch: REL9_4_STABLE [79afe6e66] 2015-02-26 12:34:43 -0500
--->
-
- <listitem>
- <para>
- Render infinite dates and timestamps as <literal>infinity</> when
- converting to <type>json</>, rather than throwing an error
- (Andrew Dunstan)
- </para>
- </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [3c000fd9a] 2015-05-04 12:38:58 -0400
-Branch: REL9_4_STABLE [997066f44] 2015-05-04 12:43:16 -0400
--->
-
- <listitem>
- <para>
- Fix <type>json</>/<type>jsonb</>'s <function>populate_record()</>
- and <function>to_record()</> functions to handle empty input properly
- (Andrew Dunstan)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [20781765f] 2015-05-11 12:25:43 -0400
-Branch: REL9_4_STABLE [4d3d9719d] 2015-05-11 12:25:44 -0400
-Branch: REL9_3_STABLE [7d09fdf82] 2015-05-11 12:25:45 -0400
-Branch: REL9_2_STABLE [46f9acd3e] 2015-05-11 12:25:28 -0400
-Branch: REL9_1_STABLE [dd75518d5] 2015-05-11 12:25:28 -0400
-Branch: REL9_0_STABLE [b93c8eaf8] 2015-05-11 12:25:28 -0400
--->
-
- <listitem>
- <para>
- Fix incorrect checking of deferred exclusion constraints after a HOT
- update (Tom Lane)
- </para>
-
- <para>
- If a new row that potentially violates a deferred exclusion constraint
- is HOT-updated (that is, no indexed columns change and the row can be
- stored back onto the same table page) later in the same transaction,
- the exclusion constraint would be reported as violated when the check
- finally occurred, even if the row(s) the new row originally conflicted
- with had been deleted.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a4820434c] 2015-05-03 11:30:24 -0400
-Branch: REL9_4_STABLE [79edb2981] 2015-05-03 11:30:24 -0400
--->
-
- <listitem>
- <para>
- Fix behavior when changing foreign key constraint deferrability status
- with <literal>ALTER TABLE ... ALTER CONSTRAINT</> (Tom Lane)
- </para>
-
- <para>
- Operations later in the same session or concurrent sessions might not
- honor the status change promptly.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b514a7460] 2015-02-28 12:43:04 -0500
-Branch: REL9_4_STABLE [fdacbf9e8] 2015-02-28 12:43:04 -0500
-Branch: REL9_3_STABLE [1b558782b] 2015-02-28 12:43:04 -0500
-Branch: REL9_2_STABLE [6f419958a] 2015-02-28 12:43:04 -0500
--->
-
- <listitem>
- <para>
- Fix planning of star-schema-style queries (Tom Lane)
- </para>
-
- <para>
- Sometimes, efficient scanning of a large table requires that index
- parameters be provided from more than one other table (commonly,
- dimension tables whose keys are needed to index a large fact table).
- The planner should be able to find such plans, but an overly
- restrictive search heuristic prevented it.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3cf868601] 2015-04-25 16:44:27 -0400
-Branch: REL9_4_STABLE [5f3d1909c] 2015-04-25 16:44:27 -0400
-Branch: REL9_3_STABLE [3e47d0b2a] 2015-04-25 16:44:27 -0400
-Branch: REL9_2_STABLE [950f80dd5] 2015-04-25 16:44:27 -0400
-Branch: REL9_1_STABLE [2e38198f6] 2015-04-25 16:44:27 -0400
-Branch: REL9_0_STABLE [985da346e] 2015-04-25 16:44:27 -0400
--->
-
- <listitem>
- <para>
- Prevent improper reordering of antijoins (NOT EXISTS joins) versus
- other outer joins (Tom Lane)
- </para>
-
- <para>
- This oversight in the planner has been observed to cause <quote>could
- not find RelOptInfo for given relids</> errors, but it seems possible
- that sometimes an incorrect query plan might get past that consistency
- check and result in silently-wrong query output.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ca6805338] 2015-04-04 19:55:15 -0400
-Branch: REL9_4_STABLE [1d71d36ff] 2015-04-04 19:55:15 -0400
-Branch: REL9_3_STABLE [e105df208] 2015-04-04 19:55:15 -0400
-Branch: REL9_2_STABLE [b7d493bf7] 2015-04-04 19:55:15 -0400
-Branch: REL9_1_STABLE [3b5d67102] 2015-04-04 19:55:15 -0400
-Branch: REL9_0_STABLE [da8819194] 2015-04-04 19:55:15 -0400
--->
-
- <listitem>
- <para>
- Fix incorrect matching of subexpressions in outer-join plan nodes
- (Tom Lane)
- </para>
-
- <para>
- Previously, if textually identical non-strict subexpressions were used
- both above and below an outer join, the planner might try to re-use
- the value computed below the join, which would be incorrect because the
- executor would force the value to NULL in case of an unmatched outer row.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1a179f36f] 2015-02-10 20:37:19 -0500
-Branch: REL9_4_STABLE [433c79d2c] 2015-02-10 20:37:22 -0500
-Branch: REL9_3_STABLE [672abc402] 2015-02-10 20:37:24 -0500
-Branch: REL9_2_STABLE [0d083103f] 2015-02-10 20:37:26 -0500
-Branch: REL9_1_STABLE [52579d507] 2015-02-10 20:37:29 -0500
-Branch: REL9_0_STABLE [72bbca27e] 2015-02-10 20:37:31 -0500
--->
-
- <listitem>
- <para>
- Fix GEQO planner to cope with failure of its join order heuristic
- (Tom Lane)
- </para>
-
- <para>
- This oversight has been seen to lead to <quote>failed to join all
- relations together</> errors in queries involving <literal>LATERAL</>,
- and that might happen in other cases as well.
- </para>
- </listitem>
-
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [6f9bd50ea] 2015-02-25 21:36:29 -0500
-Branch: REL9_4_STABLE [f16270ade] 2015-02-25 21:36:40 -0500
--->
-
- <listitem>
- <para>
- Ensure that row locking occurs properly when the target of
- an <command>UPDATE</> or <command>DELETE</> is a security-barrier view
- (Stephen Frost)
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [dfbaed459] 2015-04-28 00:17:43 +0200
-Branch: REL9_4_STABLE [fd3dfc236] 2015-04-28 00:18:04 +0200
--->
-
- <listitem>
- <para>
- Use a file opened for read/write when syncing replication slot data
- during database startup (Andres Freund)
- </para>
-
- <para>
- On some platforms, the previous coding could result in errors like
- <quote>could not fsync file "pg_replslot/...": Bad file descriptor</>.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [2c47fe16a] 2015-04-23 21:39:35 +0300
-Branch: REL9_4_STABLE [438a062d5] 2015-04-23 21:35:10 +0300
-Branch: REL9_3_STABLE [f73ebd766] 2015-04-23 21:36:24 +0300
-Branch: REL9_2_STABLE [d3f5d2892] 2015-04-23 21:36:50 +0300
-Branch: REL9_1_STABLE [e8528a8f5] 2015-04-23 21:36:59 +0300
-Branch: REL9_0_STABLE [223a94680] 2015-04-23 21:37:09 +0300
--->
-
- <listitem>
- <para>
- Fix possible deadlock at startup
- when <literal>max_prepared_transactions</> is too small
- (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [b2a5545bd] 2015-04-13 16:53:49 +0300
-Branch: REL9_4_STABLE [d72792d02] 2015-04-13 17:22:21 +0300
-Branch: REL9_3_STABLE [a800267e4] 2015-04-13 17:22:35 +0300
-Branch: REL9_2_STABLE [cc2939f44] 2015-04-13 17:26:59 +0300
-Branch: REL9_1_STABLE [ad2925e20] 2015-04-13 17:26:49 +0300
-Branch: REL9_0_STABLE [5b6938186] 2015-04-13 17:26:35 +0300
--->
-
- <listitem>
- <para>
- Don't archive useless preallocated WAL files after a timeline switch
- (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [2ce439f33] 2015-05-04 14:13:53 -0400
-Branch: REL9_4_STABLE [d8ac77ab1] 2015-05-04 14:19:32 -0400
-Branch: REL9_3_STABLE [14de825de] 2015-05-04 12:27:55 -0400
-Branch: REL9_2_STABLE [2bc339716] 2015-05-04 12:41:53 -0400
-Branch: REL9_1_STABLE [4b71d28d5] 2015-05-04 12:47:11 -0400
-Branch: REL9_0_STABLE [30ba0d0c2] 2015-05-04 14:04:53 -0400
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [456ff0863] 2015-05-05 09:29:49 -0400
-Branch: REL9_4_STABLE [603fe0181] 2015-05-05 09:16:39 -0400
-Branch: REL9_3_STABLE [6fd666954] 2015-05-05 09:19:39 -0400
-Branch: REL9_2_STABLE [53e1498c6] 2015-05-05 09:22:51 -0400
-Branch: REL9_1_STABLE [6ee1a7738] 2015-05-05 09:25:51 -0400
-Branch: REL9_0_STABLE [262fbcb9d] 2015-05-05 09:30:07 -0400
--->
-
- <listitem>
- <para>
- Recursively <function>fsync()</> the data directory after a crash
- (Abhijit Menon-Sen, Robert Haas)
- </para>
-
- <para>
- This ensures consistency if another crash occurs shortly later. (The
- second crash would have to be a system-level crash, not just a database
- crash, for there to be a problem.)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [5df64f298] 2015-04-08 13:19:49 -0300
-Branch: REL9_4_STABLE [ec01c1c0a] 2015-04-08 13:19:49 -0300
-Branch: REL9_3_STABLE [0d6c9e061] 2015-04-08 13:19:49 -0300
-Branch: REL9_2_STABLE [37dc228e8] 2015-04-08 13:19:49 -0300
-Branch: REL9_1_STABLE [cf5d3f274] 2015-04-08 13:19:49 -0300
-Branch: REL9_0_STABLE [595bc97b5] 2015-04-08 13:19:49 -0300
--->
-
- <listitem>
- <para>
- Fix autovacuum launcher's possible failure to shut down, if an error
- occurs after it receives SIGTERM (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [bc49d9324] 2015-04-03 00:07:29 -0400
-Branch: REL9_4_STABLE [ee0d06c0b] 2015-04-03 00:07:29 -0400
--->
-
- <listitem>
- <para>
- Fix failure to handle invalidation messages for system catalogs
- early in session startup (Tom Lane)
- </para>
-
- <para>
- This oversight could result in failures in sessions that start
- concurrently with a <command>VACUUM FULL</> on a system catalog.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [701dcc983] 2015-03-30 13:05:27 -0400
-Branch: REL9_4_STABLE [2897e069c] 2015-03-30 13:05:35 -0400
--->
-
- <listitem>
- <para>
- Fix crash in <function>BackendIdGetTransactionIds()</> when trying
- to get status for a backend process that just exited (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [bc208a5a2] 2015-02-23 16:14:14 +0100
-Branch: REL9_4_STABLE [89629f289] 2015-02-23 16:14:14 +0100
-Branch: REL9_3_STABLE [a6ddff812] 2015-02-23 16:14:15 +0100
-Branch: REL9_2_STABLE [c76e6dd7a] 2015-02-23 16:14:15 +0100
-Branch: REL9_1_STABLE [25576bee2] 2015-02-23 16:14:15 +0100
-Branch: REL9_0_STABLE [87b7fcc87] 2015-02-23 16:14:16 +0100
--->
-
- <listitem>
- <para>
- Cope with unexpected signals in <function>LockBufferForCleanup()</>
- (Andres Freund)
- </para>
-
- <para>
- This oversight could result in spurious errors about <quote>multiple
- backends attempting to wait for pincount 1</>.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [08361cea2] 2015-02-15 23:26:45 -0500
-Branch: REL9_4_STABLE [1bf32972e] 2015-02-15 23:26:45 -0500
-Branch: REL9_3_STABLE [4662ba5a2] 2015-02-15 23:26:46 -0500
-Branch: REL9_2_STABLE [effcaa4c2] 2015-02-15 23:26:46 -0500
--->
-
- <listitem>
- <para>
- Fix crash when doing <literal>COPY IN</> to a table with check
- constraints that contain whole-row references (Tom Lane)
- </para>
-
- <para>
- The known failure case only crashes in 9.4 and up, but there is very
- similar code in 9.3 and 9.2, so back-patch those branches as well.
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [fd6a3f3ad] 2015-02-26 12:50:07 +0100
-Branch: REL9_4_STABLE [d72115112] 2015-02-26 12:50:07 +0100
-Branch: REL9_3_STABLE [abce8dc7d] 2015-02-26 12:50:07 +0100
-Branch: REL9_2_STABLE [d67076529] 2015-02-26 12:50:07 +0100
-Branch: REL9_1_STABLE [5c8dabecd] 2015-02-26 12:50:08 +0100
-Branch: REL9_0_STABLE [82e0d6eb5] 2015-02-26 12:50:08 +0100
--->
-
- <listitem>
- <para>
- Avoid waiting for WAL flush or synchronous replication during commit of
- a transaction that was read-only so far as the user is concerned
- (Andres Freund)
- </para>
-
- <para>
- Previously, a delay could occur at commit in transactions that had
- written WAL due to HOT page pruning, leading to undesirable effects
- such as sessions getting stuck at startup if all synchronous replicas
- are down. Sessions have also been observed to get stuck in catchup
- interrupt processing when using synchronous replication; this will fix
- that problem as well.
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [87cec51d3] 2015-03-23 16:51:11 +0100
-Branch: REL9_4_STABLE [16be9737c] 2015-03-23 16:52:17 +0100
--->
-
- <listitem>
- <para>
- Avoid busy-waiting with short <literal>recovery_min_apply_delay</>
- values (Andres Freund)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: REL9_4_STABLE [462a2f1f0] 2015-05-13 09:53:50 +0300
-Branch: REL9_3_STABLE [96b676cc6] 2015-05-13 09:54:06 +0300
-Branch: REL9_2_STABLE [1a99d392c] 2015-05-13 10:06:52 +0300
-Branch: REL9_1_STABLE [f6c4a8690] 2015-05-13 10:06:47 +0300
-Branch: REL9_0_STABLE [bd1cfde70] 2015-05-13 10:06:38 +0300
--->
-
- <listitem>
- <para>
- Fix crash when manipulating hash indexes on temporary tables
- (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ed9cc2b5d] 2015-03-30 16:40:05 -0400
-Branch: REL9_4_STABLE [a6a8bf5cd] 2015-03-30 16:40:05 -0400
-Branch: REL9_3_STABLE [246bbf65c] 2015-03-30 16:40:05 -0400
-Branch: REL9_2_STABLE [f155466fe] 2015-03-30 16:40:05 -0400
-Branch: REL9_1_STABLE [46bfe44e8] 2015-03-30 16:40:05 -0400
-Branch: REL9_0_STABLE [8f3c57721] 2015-03-30 16:40:05 -0400
--->
-
- <listitem>
- <para>
- Fix possible failure during hash index bucket split, if other processes
- are modifying the index concurrently (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [26d2c5dc8] 2015-03-12 15:34:32 +0100
-Branch: REL9_4_STABLE [d81072026] 2015-03-12 15:40:07 +0100
--->
-
- <listitem>
- <para>
- Fix memory leaks in GIN index vacuum (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e4cbfd673] 2015-03-29 15:04:09 -0400
-Branch: REL9_4_STABLE [f444de5e3] 2015-03-29 15:04:18 -0400
-Branch: REL9_3_STABLE [995a664c8] 2015-03-29 15:04:24 -0400
-Branch: REL9_2_STABLE [d12afe114] 2015-03-29 15:04:28 -0400
-Branch: REL9_1_STABLE [ab02d35e0] 2015-03-29 15:04:33 -0400
-Branch: REL9_0_STABLE [152c94632] 2015-03-29 15:04:38 -0400
--->
-
- <listitem>
- <para>
- Check for interrupts while analyzing index expressions (Jeff Janes)
- </para>
-
- <para>
- <command>ANALYZE</> executes index expressions many times; if there are
- slow functions in such an expression, it's desirable to be able to
- cancel the <command>ANALYZE</> before that loop finishes.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [443fd0540] 2015-03-12 13:39:09 -0400
-Branch: REL9_4_STABLE [32269be59] 2015-03-12 13:39:10 -0400
-Branch: REL9_3_STABLE [5bdf3cf5a] 2015-03-12 13:38:49 -0400
-Branch: REL9_2_STABLE [590fc5d96] 2015-03-12 13:38:49 -0400
-Branch: REL9_1_STABLE [4a4fd2b0c] 2015-03-12 13:38:49 -0400
--->
-
- <listitem>
- <para>
- Ensure <structfield>tableoid</> of a foreign table is reported
- correctly when a <literal>READ COMMITTED</> recheck occurs after
- locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
- or <command>DELETE</> (Etsuro Fujita)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [cf34e373f] 2015-03-05 18:03:16 -0300
-Branch: REL9_4_STABLE [749977634] 2015-03-05 18:03:16 -0300
-Branch: REL9_3_STABLE [5cf400003] 2015-03-05 18:03:16 -0300
-Branch: REL9_2_STABLE [e166e6441] 2015-03-05 18:03:16 -0300
-Branch: REL9_1_STABLE [8167ef8e2] 2015-03-05 18:03:16 -0300
-Branch: REL9_0_STABLE [71b8e8e6c] 2015-03-05 18:03:16 -0300
--->
-
- <listitem>
- <para>
- Add the name of the target server to object description strings for
- foreign-server user mappings (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [0d906798f] 2015-02-18 14:28:11 -0300
-Branch: REL9_4_STABLE [66463a3cf] 2015-02-18 14:28:12 -0300
-Branch: REL9_3_STABLE [a196e67f9] 2015-02-18 14:28:12 -0300
--->
-
- <listitem>
- <para>
- Include the schema name in object identity strings for conversions
- (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: REL9_4_STABLE [c106f397d] 2015-05-08 19:39:52 -0400
-Branch: REL9_3_STABLE [3de791ee7] 2015-05-08 19:40:06 -0400
-Branch: REL9_2_STABLE [21cb21de2] 2015-05-08 19:40:09 -0400
-Branch: REL9_1_STABLE [edfef090a] 2015-05-08 19:40:11 -0400
-Branch: REL9_0_STABLE [c981e5999] 2015-05-08 19:40:15 -0400
--->
-
- <listitem>
- <para>
- Recommend setting <literal>include_realm</> to 1 when using
- Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
- </para>
-
- <para>
- Without this, identically-named users from different realms cannot be
- distinguished. For the moment this is only a documentation change, but
- it will become the default setting in <productname>PostgreSQL</> 9.5.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [cb66f495f] 2015-02-16 16:18:31 -0500
-Branch: REL9_4_STABLE [23291a796] 2015-02-16 16:17:59 -0500
-Branch: REL9_3_STABLE [7bc6e5954] 2015-02-16 16:18:04 -0500
-Branch: REL9_2_STABLE [3913b897d] 2015-02-16 16:18:08 -0500
-Branch: REL9_1_STABLE [2df854f84] 2015-02-16 16:18:12 -0500
-Branch: REL9_0_STABLE [c99ef9aff] 2015-02-16 16:18:17 -0500
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2e105def0] 2015-02-17 12:49:18 -0500
-Branch: REL9_4_STABLE [a271c9260] 2015-02-17 12:49:18 -0500
-Branch: REL9_3_STABLE [4ea2d2ddb] 2015-02-17 12:49:18 -0500
-Branch: REL9_2_STABLE [d068609b9] 2015-02-17 12:49:44 -0500
-Branch: REL9_1_STABLE [64e045838] 2015-02-17 12:49:46 -0500
-Branch: REL9_0_STABLE [e48ce4f33] 2015-02-17 12:49:18 -0500
--->
-
- <listitem>
- <para>
- Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
- IPv4-in-IPv6 addresses (Tom Lane)
- </para>
-
- <para>
- This hack was added in 2003 in response to a report that some Linux
- kernels of the time would report IPv4 connections as having
- IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
- 9.0. The lack of any field complaints since then shows that it's not
- needed anymore. Now we have reports that the broken code causes
- crashes on some systems, so let's just remove it rather than fix it.
- (Had we chosen to fix it, that would make for a subtle and potentially
- security-sensitive change in the effective meaning of
- IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
- thing to do in minor releases.)
- </para>
- </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [bf740ce9e] 2015-03-19 11:04:09 -0400
-Branch: REL9_4_STABLE [76d07a2a0] 2015-03-19 11:08:54 -0400
--->
-
- <listitem>
- <para>
- Fix status reporting for terminated background workers that were never
- actually started (Robert Haas)
- </para>
- </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [b3a5e76e1] 2015-04-02 14:38:06 -0400
-Branch: REL9_4_STABLE [a1f4ade01] 2015-04-02 14:39:18 -0400
--->
-
- <listitem>
- <para>
- After a database crash, don't restart background workers that are
- marked <literal>BGW_NEVER_RESTART</> (Amit Khandekar)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [ff16b40f8] 2015-02-06 11:26:50 +0200
-Branch: REL9_4_STABLE [3bc4c6942] 2015-02-06 11:27:12 +0200
-Branch: REL9_3_STABLE [5f0ba4abb] 2015-02-06 11:32:16 +0200
-Branch: REL9_2_STABLE [2af568c6b] 2015-02-06 11:32:37 +0200
-Branch: REL9_1_STABLE [0d36d9f2b] 2015-02-06 11:32:42 +0200
--->
-
- <listitem>
- <para>
- Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
- replication command (Heikki Linnakangas)
- </para>
-
- <para>
- This avoids a possible startup failure
- in <application>pg_receivexlog</>.
- </para>
- </listitem>
-
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [1a241d22a] 2015-05-07 15:04:13 +0200
-Branch: REL9_4_STABLE [43ed06816] 2015-05-07 15:09:21 +0200
-Branch: REL9_3_STABLE [ba3caee84] 2015-05-07 15:09:32 +0200
-Branch: REL9_2_STABLE [447e16581] 2015-05-07 15:09:42 +0200
-Branch: REL9_1_STABLE [b9ded1529] 2015-05-07 15:09:53 +0200
-Branch: REL9_0_STABLE [78ce2dc8e] 2015-05-07 15:10:01 +0200
--->
-
- <listitem>
- <para>
- While shutting down service on Windows, periodically send status
- updates to the Service Control Manager to prevent it from killing the
- service too soon; and ensure that <application>pg_ctl</> will wait for
- shutdown (Krystian Bigaj)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [2a3f6e368] 2015-02-23 13:34:21 +0200
-Branch: REL9_4_STABLE [0214a61e0] 2015-02-23 13:32:39 +0200
-Branch: REL9_3_STABLE [cdf813c59] 2015-02-23 13:32:42 +0200
-Branch: REL9_2_STABLE [22c9c8a7e] 2015-02-23 13:32:46 +0200
-Branch: REL9_1_STABLE [7052abbb6] 2015-02-23 13:32:50 +0200
-Branch: REL9_0_STABLE [8878eaaa8] 2015-02-23 13:32:53 +0200
--->
-
- <listitem>
- <para>
- Reduce risk of network deadlock when using <application>libpq</>'s
- non-blocking mode (Heikki Linnakangas)
- </para>
-
- <para>
- When sending large volumes of data, it's important to drain the input
- buffer every so often, in case the server has sent enough response data
- to cause it to block on output. (A typical scenario is that the server
- is sending a stream of NOTICE messages during <literal>COPY FROM
- STDIN</>.) This worked properly in the normal blocking mode, but not
- so much in non-blocking mode. We've modified <application>libpq</>
- to opportunistically drain input when it can, but a full defense
- against this problem requires application cooperation: the application
- should watch for socket read-ready as well as write-ready conditions,
- and be sure to call <function>PQconsumeInput()</> upon read-ready.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b26e20814] 2015-02-21 12:59:54 -0500
-Branch: REL9_4_STABLE [9c15a778a] 2015-02-21 12:59:35 -0500
-Branch: REL9_3_STABLE [f389b6e0a] 2015-02-21 12:59:39 -0500
-Branch: REL9_2_STABLE [83c3115dd] 2015-02-21 12:59:43 -0500
--->
-
- <listitem>
- <para>
- In <application>libpq</>, fix misparsing of empty values in URI
- connection strings (Thomas Fanghaenel)
- </para>
- </listitem>
-
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [1f393fc92] 2015-02-10 12:04:10 +0100
-Branch: REL9_4_STABLE [66c4ea8cb] 2015-02-11 10:57:02 +0100
-Branch: REL9_3_STABLE [1a321fea7] 2015-02-11 11:13:11 +0100
-Branch: REL9_2_STABLE [9be9ac425] 2015-02-11 11:14:14 +0100
-Branch: REL9_1_STABLE [32e633195] 2015-02-11 11:27:21 +0100
-Branch: REL9_0_STABLE [ce2fcc58e] 2015-02-11 11:30:11 +0100
--->
-
- <listitem>
- <para>
- Fix array handling in <application>ecpg</> (Michael Meskes)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [fcef16172] 2015-04-01 20:00:07 -0300
-Branch: REL9_4_STABLE [a44e54cf4] 2015-04-01 20:00:07 -0300
-Branch: REL9_3_STABLE [f4540cae1] 2015-04-01 20:00:07 -0300
-Branch: REL9_2_STABLE [d4bacdcb9] 2015-04-01 20:00:07 -0300
-Branch: REL9_1_STABLE [276591bc4] 2015-04-01 20:00:07 -0300
-Branch: REL9_0_STABLE [557fcfae3] 2015-04-01 20:00:07 -0300
--->
-
- <listitem>
- <para>
- Fix <application>psql</> to sanely handle URIs and conninfo strings as
- the first parameter to <command>\connect</>
- (David Fetter, Andrew Dunstan, &Aacute;lvaro Herrera)
- </para>
-
- <para>
- This syntax has been accepted (but undocumented) for a long time, but
- previously some parameters might be taken from the old connection
- instead of the given string, which was agreed to be undesirable.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [df9ebf1ee] 2015-03-14 13:43:00 -0400
-Branch: REL9_4_STABLE [f50b5c7d0] 2015-03-14 13:43:08 -0400
-Branch: REL9_3_STABLE [2cb76fa6f] 2015-03-14 13:43:13 -0400
-Branch: REL9_2_STABLE [309ff2ad0] 2015-03-14 13:43:17 -0400
-Branch: REL9_1_STABLE [043fe5c5a] 2015-03-14 13:43:21 -0400
-Branch: REL9_0_STABLE [396ef6fd8] 2015-03-14 13:43:26 -0400
--->
-
- <listitem>
- <para>
- Suppress incorrect complaints from <application>psql</> on some
- platforms that it failed to write <filename>~/.psql_history</> at exit
- (Tom Lane)
- </para>
-
- <para>
- This misbehavior was caused by a workaround for a bug in very old
- (pre-2006) versions of <application>libedit</>. We fixed it by
- removing the workaround, which will cause a similar failure to appear
- for anyone still using such versions of <application>libedit</>.
- Recommendation: upgrade that library, or use <application>libreadline</>.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9feefedf9] 2015-02-10 22:38:15 -0500
-Branch: REL9_4_STABLE [a592e5883] 2015-02-10 22:38:17 -0500
-Branch: REL9_3_STABLE [a4e871caa] 2015-02-10 22:38:20 -0500
-Branch: REL9_2_STABLE [2593c7039] 2015-02-10 22:38:22 -0500
-Branch: REL9_1_STABLE [14794f9b8] 2015-02-10 22:38:26 -0500
-Branch: REL9_0_STABLE [8e70f3c40] 2015-02-10 22:38:29 -0500
--->
-
- <listitem>
- <para>
- Fix <application>pg_dump</>'s rule for deciding which casts are
- system-provided casts that should not be dumped (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0e7e355f2] 2015-02-18 11:43:00 -0500
-Branch: REL9_4_STABLE [a75dfb73e] 2015-02-18 11:43:00 -0500
-Branch: REL9_3_STABLE [a7ad5cf0c] 2015-02-18 11:43:00 -0500
-Branch: REL9_2_STABLE [c86f8f361] 2015-02-18 11:43:00 -0500
-Branch: REL9_1_STABLE [b0d53b2e3] 2015-02-18 11:43:00 -0500
--->
-
- <listitem>
- <para>
- In <application>pg_dump</>, fix failure to honor <literal>-Z</>
- compression level option together with <literal>-Fd</>
- (Michael Paquier)
- </para>
- </listitem>
-
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [ebd092bc2] 2015-03-02 14:12:21 -0500
-Branch: REL9_4_STABLE [c05fa3433] 2015-03-02 14:12:28 -0500
-Branch: REL9_3_STABLE [43d81f16a] 2015-03-02 14:12:33 -0500
-Branch: REL9_2_STABLE [d13bbfabb] 2015-03-02 14:12:38 -0500
-Branch: REL9_1_STABLE [dcb467b8e] 2015-03-02 14:12:43 -0500
--->
-
- <listitem>
- <para>
- Make <application>pg_dump</> consider foreign key relationships
- between extension configuration tables while choosing dump order
- (Gilles Darold, Michael Paquier, Stephen Frost)
- </para>
-
- <para>
- This oversight could result in producing dumps that fail to reload
- because foreign key constraints are transiently violated.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e3bfe6d84] 2015-03-06 13:27:46 -0500
-Branch: REL9_4_STABLE [629f8613f] 2015-03-06 13:27:46 -0500
-Branch: REL9_3_STABLE [d645273cf] 2015-03-06 13:27:46 -0500
--->
-
- <listitem>
- <para>
- Avoid possible <application>pg_dump</> failure when concurrent sessions
- are creating and dropping temporary functions (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e9f1c01b7] 2015-02-25 12:01:12 -0500
-Branch: REL9_4_STABLE [2164a0de2] 2015-02-25 12:01:12 -0500
-Branch: REL9_3_STABLE [f864fe074] 2015-02-25 12:01:12 -0500
-Branch: REL9_2_STABLE [be8801e9c] 2015-02-25 12:01:12 -0500
-Branch: REL9_1_STABLE [f7b41902a] 2015-02-25 12:01:12 -0500
-Branch: REL9_0_STABLE [7a501bcbf] 2015-02-25 12:01:12 -0500
--->
-
- <listitem>
- <para>
- Fix dumping of views that are just <literal>VALUES(...)</> but have
- column aliases (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [b2f95c34f] 2015-05-01 13:03:23 -0400
-Branch: REL9_4_STABLE [70fac4844] 2015-05-01 13:03:23 -0400
--->
-
- <listitem>
- <para>
- Ensure that a view's replication identity is correctly set
- to <literal>nothing</> during dump/restore (Marko Tiikkaja)
- </para>
-
- <para>
- Previously, if the view was involved in a circular dependency,
- it might wind up with an incorrect replication identity property.
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [4c5e06004] 2015-05-16 00:40:18 -0400
-Branch: REL9_4_STABLE [387a3e46c] 2015-05-16 00:40:18 -0400
-Branch: REL9_3_STABLE [bffbeec0c] 2015-05-16 00:40:18 -0400
-Branch: REL9_2_STABLE [affc04d16] 2015-05-16 00:40:18 -0400
-Branch: REL9_1_STABLE [acd75b264] 2015-05-16 00:40:18 -0400
-Branch: REL9_0_STABLE [df161c94e] 2015-05-16 00:40:18 -0400
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: REL9_4_STABLE [5f6539635] 2015-05-16 15:16:28 -0400
-Branch: REL9_3_STABLE [4e9935979] 2015-05-16 15:16:28 -0400
--->
-
- <listitem>
- <para>
- In <application>pg_upgrade</>, force timeline 1 in the new cluster
- (Bruce Momjian)
- </para>
-
- <para>
- This change prevents upgrade failures caused by bogus complaints about
- missing WAL history files.
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [fb694d959] 2015-05-16 00:10:03 -0400
-Branch: REL9_4_STABLE [31f5d3f35] 2015-05-16 00:10:03 -0400
-Branch: REL9_3_STABLE [4cfba5369] 2015-05-16 00:10:03 -0400
-Branch: REL9_2_STABLE [2a55e7134] 2015-05-16 00:10:03 -0400
-Branch: REL9_1_STABLE [321db7123] 2015-05-16 00:10:03 -0400
-Branch: REL9_0_STABLE [2194aa92b] 2015-05-16 00:10:03 -0400
--->
-
- <listitem>
- <para>
- In <application>pg_upgrade</>, check for improperly non-connectable
- databases before proceeding
- (Bruce Momjian)
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [056764b10] 2015-02-11 22:06:04 -0500
-Branch: REL9_4_STABLE [5eef3c61e] 2015-02-11 22:06:04 -0500
-Branch: REL9_3_STABLE [9ecd51da7] 2015-02-11 22:06:04 -0500
-Branch: REL9_2_STABLE [66f5217f5] 2015-02-11 22:06:04 -0500
-Branch: REL9_1_STABLE [08aaae40e] 2015-02-11 22:06:04 -0500
-Branch: REL9_0_STABLE [4ae178f60] 2015-02-11 22:06:04 -0500
--->
-
- <listitem>
- <para>
- In <application>pg_upgrade</>, quote directory paths
- properly in the generated <literal>delete_old_cluster</> script
- (Bruce Momjian)
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [866f3017a] 2015-02-11 21:02:44 -0500
-Branch: REL9_4_STABLE [c7bc5be11] 2015-02-11 21:02:36 -0500
-Branch: REL9_3_STABLE [e20523f8f] 2015-02-11 21:02:28 -0500
-Branch: REL9_2_STABLE [d99cf27b7] 2015-02-11 21:02:12 -0500
-Branch: REL9_1_STABLE [55179b03e] 2015-02-11 21:02:07 -0500
-Branch: REL9_0_STABLE [85dac37ee] 2015-02-11 21:02:06 -0500
--->
-
- <listitem>
- <para>
- In <application>pg_upgrade</>, preserve database-level freezing info
- properly
- (Bruce Momjian)
- </para>
-
- <para>
- This oversight could cause missing-clog-file errors for tables within
- the <literal>postgres</> and <literal>template1</> databases.
- </para>
- </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [fa1e5afa8] 2015-03-30 17:07:52 -0400
-Branch: REL9_4_STABLE [2366761bf] 2015-03-30 17:16:57 -0400
-Branch: REL9_3_STABLE [0904eb3e1] 2015-03-30 17:17:17 -0400
-Branch: REL9_2_STABLE [948566313] 2015-03-30 17:17:39 -0400
-Branch: REL9_1_STABLE [22b3f5b26] 2015-03-30 17:17:54 -0400
-Branch: REL9_0_STABLE [bf22a8e58] 2015-03-30 17:18:10 -0400
--->
-
- <listitem>
- <para>
- Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
- restricted privileges on Windows, so that they don't fail when run by
- an administrator (Muhammad Asif Naeem)
- </para>
- </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [5d6c2405f] 2015-02-17 10:19:30 -0500
-Branch: REL9_4_STABLE [5e49c98e0] 2015-02-17 10:50:49 -0500
-Branch: REL9_3_STABLE [9a90ec9cf] 2015-02-17 10:54:29 -0500
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: REL9_2_STABLE [319406c2a] 2015-02-17 11:02:46 -0500
-Branch: REL9_1_STABLE [d7d294f59] 2015-02-17 11:08:40 -0500
--->
-
- <listitem>
- <para>
- Improve handling of <function>readdir()</> failures when scanning
- directories in <application>initdb</> and <application>pg_basebackup</>
- (Marco Nenciarini)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8d1f23900] 2015-03-15 23:22:03 -0400
-Branch: REL9_4_STABLE [904e8b627] 2015-03-15 23:22:03 -0400
-Branch: REL9_3_STABLE [83587a075] 2015-03-15 23:22:03 -0400
-Branch: REL9_2_STABLE [8582ae7aa] 2015-03-15 23:22:03 -0400
-Branch: REL9_1_STABLE [9288645b5] 2015-03-15 23:22:03 -0400
-Branch: REL9_0_STABLE [40b0c10b7] 2015-03-15 23:22:03 -0400
--->
-
- <listitem>
- <para>
- Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [33e879c4e] 2015-02-13 23:56:25 +0200
-Branch: REL9_4_STABLE [56a23a83f] 2015-02-13 23:56:57 +0200
-Branch: REL9_3_STABLE [6ef5d894a] 2015-02-13 23:57:05 +0200
-Branch: REL9_2_STABLE [a0d84da1d] 2015-02-13 23:57:25 +0200
-Branch: REL9_1_STABLE [ebdc2e1e2] 2015-02-13 23:57:28 +0200
-Branch: REL9_0_STABLE [61165fae0] 2015-02-13 23:57:35 +0200
--->
-
- <listitem>
- <para>
- Fix compile failure on Sparc V8 machines (Rob Rowan)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [91f4a5a97] 2015-03-14 14:08:45 -0400
-Branch: REL9_4_STABLE [c415c13b7] 2015-03-14 14:08:45 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [73b416b2e] 2015-04-05 13:01:59 -0400
-Branch: REL9_4_STABLE [8972a152c] 2015-04-05 13:01:55 -0400
-Branch: REL9_3_STABLE [6347bdb31] 2015-04-05 13:01:55 -0400
--->
-
- <listitem>
- <para>
- Silence some build warnings on macOS (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9d366c1f3] 2015-05-15 19:35:29 -0400
-Branch: REL9_4_STABLE [d0ddcf62e] 2015-05-15 19:35:51 -0400
-Branch: REL9_3_STABLE [4fd69e412] 2015-05-15 19:35:58 -0400
-Branch: REL9_2_STABLE [2a63434f0] 2015-05-15 19:36:06 -0400
-Branch: REL9_1_STABLE [436f35609] 2015-05-15 19:36:13 -0400
-Branch: REL9_0_STABLE [3c3749a3b] 2015-05-15 19:36:20 -0400
--->
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2015d
- for DST law changes in Egypt, Mongolia, and Palestine, plus historical
- changes in Canada and Chile. Also adopt revised zone abbreviations for
- the America/Adak zone (HST/HDT not HAST/HADT).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4-1">
- <title>Release 9.4.1</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2015-02-05</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 9.4.0.
- For information about new features in the 9.4 major release, see
- <xref linkend="release-9-4">.
- </para>
-
- <sect2>
- <title>Migration to Version 9.4.1</title>
-
- <para>
- A dump/restore is not required for those running 9.4.X.
- </para>
-
- <para>
- However, if you are a Windows user and are using the <quote>Norwegian
- (Bokm&aring;l)</> locale, manual action is needed after the upgrade to
- replace any <quote>Norwegian (Bokm&aring;l)_Norway</>
- or <quote>norwegian-bokmal</> locale names stored
- in <productname>PostgreSQL</> system catalogs with the plain-ASCII
- alias <quote>Norwegian_Norway</>. For details see
- <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
-Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
-Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
-Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
-Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
-Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
-Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
-Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
-Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
-Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
-Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
--->
-
- <listitem>
- <para>
- Fix buffer overruns in <function>to_char()</>
- (Bruce Momjian)
- </para>
-
- <para>
- When <function>to_char()</> processes a numeric formatting template
- calling for a large number of digits, <productname>PostgreSQL</>
- would read past the end of a buffer. When processing a crafted
- timestamp formatting template, <productname>PostgreSQL</> would write
- past the end of a buffer. Either case could crash the server.
- We have not ruled out the possibility of attacks that lead to
- privilege escalation, though they seem unlikely.
- (CVE-2015-0241)
- </para>
- </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
-Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
-Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
-Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
-Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
-Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
--->
-
- <listitem>
- <para>
- Fix buffer overrun in replacement <function>*printf()</> functions
- (Tom Lane)
- </para>
-
- <para>
- <productname>PostgreSQL</> includes a replacement implementation
- of <function>printf</> and related functions. This code will overrun
- a stack buffer when formatting a floating point number (conversion
- specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
- <literal>g</> or <literal>G</>) with requested precision greater than
- about 500. This will crash the server, and we have not ruled out the
- possibility of attacks that lead to privilege escalation.
- A database user can trigger such a buffer overrun through
- the <function>to_char()</> SQL function. While that is the only
- affected core <productname>PostgreSQL</> functionality, extension
- modules that use printf-family functions may be at risk as well.
- </para>
-
- <para>
- This issue primarily affects <productname>PostgreSQL</> on Windows.
- <productname>PostgreSQL</> uses the system implementation of these
- functions where adequate, which it is on other modern platforms.
- (CVE-2015-0242)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
-Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
-Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
-Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
-Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
-Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
-Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
-Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
-Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
-Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
-Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
--->
-
- <listitem>
- <para>
- Fix buffer overruns in <filename>contrib/pgcrypto</>
- (Marko Tiikkaja, Noah Misch)
- </para>
-
- <para>
- Errors in memory size tracking within the <filename>pgcrypto</>
- module permitted stack buffer overruns and improper dependence on the
- contents of uninitialized memory. The buffer overrun cases can
- crash the server, and we have not ruled out the possibility of
- attacks that lead to privilege escalation.
- (CVE-2015-0243)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
-Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
-Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
-Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
-Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
-Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
--->
-
- <listitem>
- <para>
- Fix possible loss of frontend/backend protocol synchronization after
- an error
- (Heikki Linnakangas)
- </para>
-
- <para>
- If any error occurred while the server was in the middle of reading a
- protocol message from the client, it could lose synchronization and
- incorrectly try to interpret part of the message's data as a new
- protocol message. An attacker able to submit crafted binary data
- within a command parameter might succeed in injecting his own SQL
- commands this way. Statement timeout and query cancellation are the
- most likely sources of errors triggering this scenario. Particularly
- vulnerable are applications that use a timeout and also submit
- arbitrary user-crafted data as binary query parameters. Disabling
- statement timeout will reduce, but not eliminate, the risk of
- exploit. Our thanks to Emil Lenngren for reporting this issue.
- (CVE-2015-0244)
- </para>
- </listitem>
-
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
-Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
-Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
-Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
-Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
-Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
--->
-
- <listitem>
- <para>
- Fix information leak via constraint-violation error messages
- (Stephen Frost)
- </para>
-
- <para>
- Some server error messages show the values of columns that violate
- a constraint, such as a unique constraint. If the user does not have
- <literal>SELECT</> privilege on all columns of the table, this could
- mean exposing values that the user should not be able to see. Adjust
- the code so that values are displayed only when they came from the SQL
- command or could be selected by the user.
- (CVE-2014-8161)
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
-Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
-Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
-Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
-Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
-Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
--->
-
- <listitem>
- <para>
- Lock down regression testing's temporary installations on Windows
- (Noah Misch)
- </para>
-
- <para>
- Use SSPI authentication to allow connections only from the OS user
- who launched the test suite. This closes on Windows the same
- vulnerability previously closed on other platforms, namely that other
- users might be able to connect to the test postmaster.
- (CVE-2014-0067)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
-Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
-Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
-Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
-Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
-Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
--->
-
- <listitem>
- <para>
- Cope with the Windows locale named <quote>Norwegian (Bokm&aring;l)</>
- (Heikki Linnakangas)
- </para>
-
- <para>
- Non-ASCII locale names are problematic since it's not clear what
- encoding they should be represented in. Map the troublesome locale
- name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
- </para>
-
- <para>
- 9.4.0 mapped the troublesome name to <quote>norwegian-bokmal</>,
- but that turns out not to work on all Windows configurations.
- <quote>Norwegian_Norway</> is now recommended instead.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
-Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
-Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
-Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
-Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
-Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
--->
-
- <listitem>
- <para>
- Fix use-of-already-freed-memory problem in EvalPlanQual processing
- (Tom Lane)
- </para>
-
- <para>
- In <literal>READ COMMITTED</> mode, queries that lock or update
- recently-updated rows could crash as a result of this bug.
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
-Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
-Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
--->
-
- <listitem>
- <para>
- Avoid possible deadlock while trying to acquire tuple locks
- in EvalPlanQual processing (&Aacute;lvaro Herrera, Mark Kirkwood)
- </para>
- </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
-Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
-Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
--->
-
- <listitem>
- <para>
- Fix failure to wait when a transaction tries to acquire a <literal>FOR
- NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
- currently hold <literal>FOR SHARE</> locks (&Aacute;lvaro Herrera)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
-Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
-Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
--->
-
- <listitem>
- <para>
- Improve performance of <command>EXPLAIN</> with large range tables
- (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [451d28081] 2015-01-30 14:44:56 -0500
-Branch: REL9_4_STABLE [4cbf390d5] 2015-01-30 14:44:49 -0500
--->
-
- <listitem>
- <para>
- Fix <type>jsonb</> Unicode escape processing, and in consequence
- disallow <literal>\u0000</> (Tom Lane)
- </para>
-
- <para>
- Previously, the JSON Unicode escape <literal>\u0000</> was accepted
- and was stored as those six characters; but that is indistinguishable
- from what is stored for the input <literal>\\u0000</>, resulting in
- ambiguity. Moreover, in cases where de-escaped textual output is
- expected, such as the <literal>-&gt;&gt;</> operator, the sequence was
- printed as <literal>\u0000</>, which does not meet the expectation
- that JSON escaping would be removed. (Consistent behavior would
- require emitting a zero byte, but <productname>PostgreSQL</> does not
- support zero bytes embedded in text strings.) 9.4.0 included an
- ill-advised attempt to improve this situation by adjusting JSON output
- conversion rules; but of course that could not fix the fundamental
- ambiguity, and it turned out to break other usages of Unicode escape
- sequences. Revert that, and to avoid the core problem,
- reject <literal>\u0000</> in <type>jsonb</> input.
- </para>
-
- <para>
- If a <type>jsonb</> column contains a <literal>\u0000</> value stored
- with 9.4.0, it will henceforth read out as though it
- were <literal>\\u0000</>, which is the other valid interpretation of
- the data stored by 9.4.0 for this case.
- </para>
-
- <para>
- The <type>json</> type did not have the storage-ambiguity problem, but
- it did have the problem of inconsistent de-escaped textual output.
- Therefore <literal>\u0000</> will now also be rejected
- in <type>json</> values when conversion to de-escaped form is
- required. This change does not break the ability to
- store <literal>\u0000</> in <type>json</> columns so long as no
- processing is done on the values. This is exactly parallel to the
- cases in which non-ASCII Unicode escapes are allowed when the database
- encoding is not UTF8.
- </para>
- </listitem>
-
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
-Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
-Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
-Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
-Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
-Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
--->
-
- <listitem>
- <para>
- Fix namespace handling in <function>xpath()</> (Ali Akbar)
- </para>
-
- <para>
- Previously, the <type>xml</> value resulting from
- an <function>xpath()</> call would not have namespace declarations if
- the namespace declarations were attached to an ancestor element in the
- input <type>xml</> value, rather than to the specific element being
- returned. Propagate the ancestral declaration so that the result is
- correct when considered in isolation.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
-Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
-Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
--->
-
- <listitem>
- <para>
- Fix assorted oversights in range-operator selectivity estimation
- (Emre Hasegeli)
- </para>
-
- <para>
- This patch fixes corner-case <quote>unexpected operator NNNN</> planner
- errors, and improves the selectivity estimates for some other cases.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [930fd6845] 2014-12-30 14:53:11 +0200
-Branch: REL9_4_STABLE [4e241f7cd] 2014-12-30 14:53:03 +0200
--->
-
- <listitem>
- <para>
- Revert unintended reduction in maximum size of a GIN index item
- (Heikki Linnakangas)
- </para>
-
- <para>
- 9.4.0 could fail with <quote>index row size exceeds maximum</> errors
- for data that previous versions would accept.
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [68fa75f31] 2015-01-30 17:58:23 +0100
-Branch: REL9_4_STABLE [dc40ca696] 2015-01-30 17:59:17 +0100
--->
-
- <listitem>
- <para>
- Fix query-duration memory leak during repeated GIN index rescans
- (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [31ed42b9a] 2015-01-29 19:35:55 +0200
-Branch: REL9_4_STABLE [28a37deab] 2015-01-29 19:37:29 +0200
-Branch: REL9_3_STABLE [1c2774f37] 2015-01-29 19:37:27 +0200
-Branch: REL9_2_STABLE [61729e99d] 2015-01-29 19:37:25 +0200
-Branch: REL9_1_STABLE [37e0f13f2] 2015-01-29 19:37:22 +0200
--->
-
- <listitem>
- <para>
- Fix possible crash when using
- nonzero <varname>gin_fuzzy_search_limit</> (Heikki Linnakangas)
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [3fabed070] 2015-01-07 00:19:37 +0100
-Branch: REL9_4_STABLE [7da102154] 2015-01-07 00:24:58 +0100
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [31912d01d] 2015-01-07 00:18:00 +0100
-Branch: REL9_4_STABLE [84911ff51] 2015-01-07 00:24:47 +0100
--->
-
- <listitem>
- <para>
- Assorted fixes for logical decoding (Andres Freund)
- </para>
- </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [49b04188f] 2015-01-15 20:52:41 +0200
-Branch: REL9_4_STABLE [b337d9657] 2015-01-15 20:52:18 +0200
--->
-
- <listitem>
- <para>
- Fix incorrect replay of WAL parameter change records that report
- changes in the <varname>wal_log_hints</> setting (Petr Jelinek)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
-Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
-Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
-Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
-Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
-Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
--->
-
- <listitem>
- <para>
- Change <quote>pgstat wait timeout</> warning message to be LOG level,
- and rephrase it to be more understandable (Tom Lane)
- </para>
-
- <para>
- This message was originally thought to be essentially a can't-happen
- case, but it occurs often enough on our slower buildfarm members to be
- a nuisance. Reduce it to LOG level, and expend a bit more effort on
- the wording: it now reads <quote>using stale statistics instead of
- current ones because stats collector is not responding</>.
- </para>
- </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [894459e59] 2015-01-07 22:35:44 -0500
-Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
-Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
-Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
-Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
-Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
--->
-
- <listitem>
- <para>
- Warn if macOS's <function>setlocale()</> starts an unwanted extra
- thread inside the postmaster (Noah Misch)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [080eabe2e] 2015-01-11 12:35:44 -0500
-Branch: REL9_4_STABLE [733728ff3] 2015-01-11 12:35:47 -0500
--->
-
- <listitem>
- <para>
- Fix <application>libpq</>'s behavior when <filename>/etc/passwd</>
- isn't readable (Tom Lane)
- </para>
-
- <para>
- While doing <function>PQsetdbLogin()</>, <application>libpq</>
- attempts to ascertain the user's operating system name, which on most
- Unix platforms involves reading <filename>/etc/passwd</>. As of 9.4,
- failure to do that was treated as a hard error. Restore the previous
- behavior, which was to fail only if the application does not provide a
- database role name to connect as. This supports operation in chroot
- environments that lack an <filename>/etc/passwd</> file.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [28551797a] 2014-12-31 12:18:50 -0500
-Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
-Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
-Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
-Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
-Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
--->
-
- <listitem>
- <para>
- Improve consistency of parsing of <application>psql</>'s special
- variables (Tom Lane)
- </para>
-
- <para>
- Allow variant spellings of <literal>on</> and <literal>off</> (such
- as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
- and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
- values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
- <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
- <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
- all values for all these variables case-insensitively; previously
- there was a mishmash of case-sensitive and case-insensitive behaviors.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
-Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
-Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
--->
-
- <listitem>
- <para>
- Fix <application>pg_dump</> to handle comments on event triggers
- without failing (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Kevin Grittner <kgrittn@postgresql.org>
-Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
-Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
-Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
--->
-
- <listitem>
- <para>
- Allow parallel <application>pg_dump</> to
- use <option>--serializable-deferrable</> (Kevin Grittner)
- </para>
- </listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
-Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
-Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
-Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
-Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
--->
-
- <listitem>
- <para>
- Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
- being archived again when the standby is promoted (Andres Freund)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [37507962c] 2015-01-29 20:18:33 -0500
-Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
-Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
-Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
-Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
-Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
--->
-
- <listitem>
- <para>
- Handle unexpected query results, especially NULLs, safely in
- <filename>contrib/tablefunc</>'s <function>connectby()</>
- (Michael Paquier)
- </para>
-
- <para>
- <function>connectby()</> previously crashed if it encountered a NULL
- key value. It now prints that row but doesn't recurse further.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
-Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
-Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
-Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
-Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
-Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
-Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
-Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
-Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
-Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
-Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
-Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
-Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
-Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
-Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
-Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
-Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
-Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
-Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
-Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
-Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
-Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
-Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
-Author: Tatsuo Ishii <ishii@postgresql.org>
-Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
-Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
-Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
-Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
-Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
-Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [66709133c] 2014-12-16 15:35:33 -0500
-Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
-Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
-Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
-Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
-Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
-Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
-Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
-Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
-Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
-Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
-Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
-Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
-Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
-Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
-Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
--->
-
- <listitem>
- <para>
- Numerous cleanups of warnings from Coverity static code analyzer
- (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
- </para>
-
- <para>
- These changes are mostly cosmetic but in some cases fix corner-case
- bugs, for example a crash rather than a proper error report after an
- out-of-memory failure. None are believed to represent security
- issues.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [85a2a8903] 2015-01-14 11:08:13 -0500
-Branch: REL9_4_STABLE [adb355106] 2015-01-14 11:08:17 -0500
--->
-
- <listitem>
- <para>
- Allow <varname>CFLAGS</> from <application>configure</>'s environment
- to override automatically-supplied <varname>CFLAGS</> (Tom Lane)
- </para>
-
- <para>
- Previously, <application>configure</> would add any switches that it
- chose of its own accord to the end of the
- user-specified <varname>CFLAGS</> string. Since most compilers
- process switches left-to-right, this meant that configure's choices
- would override the user-specified flags in case of conflicts. That
- should work the other way around, so adjust the logic to put the
- user's string at the end not the beginning.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
-Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
-Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
-Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
-Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
-Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
--->
-
- <listitem>
- <para>
- Make <application>pg_regress</> remove any temporary installation it
- created upon successful exit (Tom Lane)
- </para>
-
- <para>
- This results in a very substantial reduction in disk space usage
- during <literal>make check-world</>, since that sequence involves
- creation of numerous temporary installations.
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5b89473d8] 2014-12-24 16:35:23 -0500
-Branch: REL9_4_STABLE [068024719] 2014-12-24 16:35:34 -0500
--->
-
- <listitem>
- <para>
- Add CST (China Standard Time) to our lists of timezone abbreviations
- (Tom Lane)
- </para>
- </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [08bd0c581] 2015-01-30 22:45:44 -0500
-Branch: REL9_4_STABLE [c2b06ab17] 2015-01-30 22:45:58 -0500
--->
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</> release 2015a
- for DST law changes in Chile and Mexico, plus historical changes in
- Iceland.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-9-4">
- <title>Release 9.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2014-12-18</para>
- </formalpara>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- Major enhancements in <productname>PostgreSQL</> 9.4 include:
- </para>
-
- <!-- This list duplicates items below, but without authors or details-->
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <link linkend="datatype-json"><type>jsonb</></link>, a more
- capable and efficient data type for storing <acronym>JSON</> data
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
- for changing <filename>postgresql.conf</> configuration file entries
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
- commands
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <link linkend="rules-materializedviews">materialized views</>
- to be refreshed without blocking concurrent reads
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add support for <link linkend="logicaldecoding">logical decoding</>
- of WAL data, to allow database changes to be streamed out in a
- customizable format
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <link linkend="bgworker">background worker processes</>
- to be dynamically registered, started and terminated
- </para>
- </listitem>
-
- </itemizedlist>
-
- <para>
- The above items are explained in more detail in the sections below.
- </para>
-
- </sect2>
-
- <sect2>
-
- <title>Migration to Version 9.4</title>
-
- <para>
- A dump/restore using <xref linkend="app-pg-dumpall">, or use
- of <xref linkend="pgupgrade">, is required for those wishing to migrate
- data from any previous release.
- </para>
-
- <para>
- Version 9.4 contains a number of changes that may affect compatibility
- with previous releases. Observe the following incompatibilities:
- </para>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Tighten checks for multidimensional <link
- linkend="arrays">array</link> input (Bruce Momjian)
- </para>
-
- <para>
- Previously, an input array string that started with a single-element
- sub-array could later contain multi-element sub-arrays,
- e.g. <literal>'{{1}, {2,3}}'::int[]</> would be accepted.
- </para>
- </listitem>
-
- <listitem>
- <para>
- When converting values of type <type>date</>, <type>timestamp</>
- or <type>timestamptz</>
- to <link linkend="datatype-json"><type>JSON</type></link>, render the
- values in a format compliant with ISO 8601 (Andrew Dunstan)
- </para>
-
- <para>
- Previously such values were rendered according to the current
- <xref linkend="guc-datestyle"> setting; but many JSON processors
- require timestamps to be in ISO 8601 format. If necessary, the
- previous behavior can be obtained by explicitly casting the datetime
- value to <type>text</> before passing it to the JSON conversion
- function.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <link linkend="functions-json-op-table"><type>json</type>
- <literal>#&gt;</> <type>text[]</></link> path extraction operator now
- returns its lefthand input, not NULL, if the array is empty (Tom Lane)
- </para>
-
- <para>
- This is consistent with the notion that this represents zero
- applications of the simple field/element extraction
- operator <literal>-&gt;</>. Similarly, <type>json</type>
- <literal>#&gt;&gt;</> <type>text[]</> with an empty array merely
- coerces its lefthand input to text.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Corner cases in
- the <link linkend="functions-json-op-table"><type>JSON</type>
- field/element/path extraction operators</link> now return NULL rather
- than raising an error (Tom Lane)
- </para>
-
- <para>
- For example, applying field extraction to a JSON array now yields NULL
- not an error. This is more consistent (since some comparable cases such
- as no-such-field already returned NULL), and it makes it safe to create
- expression indexes that use these operators, since they will now not
- throw errors for any valid JSON input.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Cause consecutive whitespace in <link
- linkend="functions-formatting-table"><function>to_timestamp()</></link>
- and <function>to_date()</> format strings to consume a corresponding
- number of characters in the input string (whitespace or not), then
- conditionally consume adjacent whitespace, if not in <literal>FX</>
- mode (Jeevan Chalke)
- </para>
-
- <para>
- Previously, consecutive whitespace characters in a non-<literal>FX</>
- format string behaved like a single whitespace character and consumed
- all adjacent whitespace in the input string. For example, previously
- a format string of three spaces would consume only the first space in
- <literal>' 12'</>, but it will now consume all three characters.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <link
- linkend="textsearch-functions-table"><function>ts_rank_cd()</></link>
- to ignore stripped lexemes (Alex Hill)
- </para>
-
- <para>
- Previously, stripped lexemes were treated as if they had a default
- location, producing a rank of dubious usefulness.
- </para>
- </listitem>
-
- <listitem>
- <para>
- For functions declared to
- take <link linkend="xfunc-sql-variadic-functions"><literal>VARIADIC
- "any"</></link>, an actual parameter marked as <literal>VARIADIC</>
- must be of a determinable array type (Pavel Stehule)
- </para>
-
- <para>
- Such parameters can no longer be written as an undecorated string
- literal or <literal>NULL</>; a cast to an appropriate array data type
- will now be required. Note that this does not affect parameters not
- marked <literal>VARIADIC</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that whole-row variables expose the expected column names
- to functions that pay attention to column names within composite
- arguments (Tom Lane)
- </para>
-
- <para>
- Constructs like <literal>row_to_json(tab.*)</> now always emit column
- names that match the column aliases visible for table <literal>tab</>
- at the point of the call. In previous releases the emitted column
- names would sometimes be the table's actual column names regardless
- of any aliases assigned in the query.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <xref linkend="sql-discard"> now also discards sequence-related state
- (Fabr&iacute;zio de Royes Mello, Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rename <link linkend="SQL-EXPLAIN"><command>EXPLAIN
- ANALYZE</></link>'s <quote>total runtime</quote> output
- to <quote>execution time</quote> (Tom Lane)
- </para>
-
- <para>
- Now that planning time is also reported, the previous name was
- confusing.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <link linkend="SQL-SHOW"><command>SHOW TIME ZONE</></link> now
- outputs simple numeric UTC offsets in <acronym>POSIX</> timezone
- format (Tom Lane)
- </para>
-
- <para>
- Previously, such timezone settings were displayed as <link
- linkend="datatype-interval-output"><type>interval</></link> values.
- The new output is properly interpreted by <command>SET TIME ZONE</>
- when passed as a simple string, whereas the old output required
- special treatment to be re-parsed correctly.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Foreign data wrappers that support updating foreign tables must
- consider the possible presence of <literal>AFTER ROW</> triggers
- (Noah Misch)
- </para>
-
- <para>
- When an <literal>AFTER ROW</> trigger is present, all columns of the
- table must be returned by updating actions, since the trigger might
- inspect any or all of them. Previously, foreign tables never had
- triggers, so the FDW might optimize away fetching columns not mentioned
- in the <literal>RETURNING</> clause (if any).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent <link
- linkend="ddl-constraints-check-constraints"><literal>CHECK</></link>
- constraints from referencing system columns, except
- <structfield>tableoid</> (Amit Kapila)
- </para>
-
- <para>
- Previously such check constraints were allowed, but they would often
- cause errors during restores.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use the last specified <link linkend="recovery-target-settings">recovery
- target parameter</link> if multiple target parameters are specified
- (Heikki Linnakangas)
- </para>
-
- <para>
- Previously, there was an undocumented precedence order among
- the <literal>recovery_target_<replaceable>xxx</></literal> parameters.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, automatically preserve quotes in command strings supplied
- by the user (Heikki Linnakangas)
- </para>
-
- <para>
- User commands that did their own quote preservation might need
- adjustment. This is likely to be an issue for commands used in
- <xref linkend="guc-archive-command">, <xref linkend="restore-command">,
- and <link linkend="sql-copy"><command>COPY TO/FROM PROGRAM</></link>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove catalog column <link
- linkend="catalog-pg-class"><structfield>pg_class.reltoastidxid</></link>
- (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove catalog column <link
- linkend="catalog-pg-rewrite"><structfield>pg_rewrite.ev_attr</></link>
- (Kevin Grittner)
- </para>
-
- <para>
- Per-column rules have not been supported since
- <application>PostgreSQL</> 7.3.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove native support for <application>Kerberos</> authentication
- (<option>--with-krb5</>, etc)
- (Magnus Hagander)
- </para>
-
- <para>
- The supported way to use <application>Kerberos</> authentication is
- with <acronym>GSSAPI</>. The native code has been deprecated since
- <productname>PostgreSQL</> 8.3.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <application>PL/Python</>, handle domains over arrays like the
- underlying array type (Rodolfo Campero)
- </para>
-
- <para>
- Previously such values were treated as strings.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make libpq's <link
- linkend="libpq-pqconnectdbparams"><function>PQconnectdbParams()</></link>
- and <link
- linkend="libpq-pqpingparams"><function>PQpingParams()</></link>
- functions process zero-length strings as defaults (Adrian
- Vondendriesch)
- </para>
-
- <para>
- Previously, these functions treated zero-length string values as
- selecting the default in only some cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Change empty arrays returned by the <xref linkend="intarray"> module
- to be zero-dimensional arrays (Bruce Momjian)
- </para>
-
- <para>
- Previously, empty arrays were returned as zero-length one-dimensional
- arrays, whose text representation looked the same as zero-dimensional
- arrays (<literal>{}</>), but they acted differently in array
- operations. <application>intarray</>'s behavior in this area now
- matches the built-in array operators.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <xref linkend="pgupgrade"> now uses <option>-U</>
- or <option>--username</> to specify the user name (Bruce Momjian)
- </para>
-
- <para>
- Previously this option was spelled <option>-u</> or <option>--user</>,
- but that was inconsistent with other tools.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <para>
- Below you will find a detailed account of the changes between
- <productname>PostgreSQL</productname> 9.4 and the previous major
- release.
- </para>
-
- <sect3>
- <title>Server</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Allow <link linkend="bgworker">background worker processes</link>
- to be dynamically registered, started and terminated (Robert Haas)
- </para>
-
- <para>
- The new <filename>worker_spi</> module shows an example of use
- of this feature.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow dynamic allocation of shared memory segments (Robert Haas,
- Amit Kapila)
- </para>
-
- <para>
- This feature is illustrated in the <filename>test_shm_mq</filename>
- module.
- </para>
- </listitem>
-
- <listitem>
- <para>
- During crash recovery or immediate shutdown, send uncatchable
- termination signals (<systemitem>SIGKILL</>) to child processes
- that do not shut down promptly (MauMau, &Aacute;lvaro Herrera)
- </para>
-
- <para>
- This reduces the likelihood of leaving orphaned child processes
- behind after <xref linkend="app-postmaster"> shutdown, as well
- as ensuring that crash recovery can proceed if some child processes
- have become <quote>stuck</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve randomness of the database system identifier (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <xref linkend="SQL-VACUUM"> properly report dead but
- not-yet-removable rows to the statistics collector (Hari Babu)
- </para>
-
- <para>
- Previously these were reported as live rows.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title>Indexes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Reduce <link linkend="GIN"><acronym>GIN</></link> index size
- (Alexander Korotkov, Heikki Linnakangas)
- </para>
-
- <para>
- Indexes upgraded via <xref linkend="pgupgrade"> will work fine
- but will still be in the old, larger <acronym>GIN</> format.
- Use <xref linkend="SQL-REINDEX"> to recreate old GIN indexes in the
- new format.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve speed of multi-key <link
- linkend="GIN"><acronym>GIN</></link> lookups (Alexander Korotkov,
- Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <link linkend="GiST"><acronym>GiST</></link> index support
- for <link linkend="datatype-inet"><type>inet</></link> and
- <link linkend="datatype-cidr"><type>cidr</></link> data types
- (Emre Hasegeli)
- </para>
-
- <para>
- Such indexes improve <link
- linkend="cidr-inet-operators-table">subnet and supernet</link>
- lookups and ordering comparisons.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix rare race condition in B-tree page deletion (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make the handling of interrupted B-tree page splits more robust
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>General Performance</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Allow multiple backends to insert
- into <link linkend="wal"><acronym>WAL</></link> buffers
- concurrently (Heikki Linnakangas)
- </para>
-
- <para>
- This improves parallel write performance.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Conditionally write only the modified portion of updated rows to
- <link linkend="wal"><acronym>WAL</></link> (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve performance of aggregate functions used as <link
- linkend="syntax-window-functions">window functions</link>
- (David Rowley, Florian Pflug, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve speed of aggregates that
- use <link linkend="datatype-numeric"><type>numeric</></link> state
- values (Hadi Moshayedi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Attempt to <link linkend="vacuum-for-wraparound">freeze</link>
- tuples when tables are rewritten with <xref
- linkend="SQL-CLUSTER"> or <link
- linkend="SQL-VACUUM"><command>VACUUM FULL</></link> (Robert Haas,
- Andres Freund)
- </para>
-
- <para>
- This can avoid the need to freeze the tuples in the future.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve speed of <xref linkend="SQL-COPY"> with default <link
- linkend="functions-sequence-table"><function>nextval()</></link>
- columns (Simon Riggs)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve speed of accessing many different <link
- linkend="SQL-CREATESEQUENCE">sequences</link> in the same session
- (David Rowley)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Raise hard limit on the number of tuples held in memory during sorting
- and B-tree index builds (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce memory allocated by <application>PL/pgSQL</>
- <xref linkend="SQL-DO"> blocks (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make the planner more aggressive about extracting restriction clauses
- from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Disallow pushing volatile <literal>WHERE</> clauses down
- into <literal>DISTINCT</> subqueries (Tom Lane)
- </para>
-
- <para>
- Pushing down a <literal>WHERE</> clause can produce a more
- efficient plan overall, but at the cost of evaluating the clause
- more often than is implied by the text of the query; so don't do it
- if the clause contains any volatile functions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Auto-resize the catalog caches (Heikki Linnakangas)
- </para>
-
- <para>
- This reduces memory consumption for sessions accessing only a few
- tables, and improves performance for sessions accessing many tables.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Monitoring</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <xref linkend="pg-stat-archiver-view"> system view to
- report <link linkend="wal"><acronym>WAL</></link> archiver activity
- (Gabriele Bartolini)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <structfield>n_mod_since_analyze</> columns to
- <xref linkend="pg-stat-all-tables-view"> and related system views
- (Mark Kirkwood)
- </para>
-
- <para>
- These columns expose the system's estimate of the number of changed
- tuples since the table's last <xref linkend="sql-analyze">. This
- estimate drives decisions about when to auto-analyze.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <structfield>backend_xid</> and <structfield>backend_xmin</>
- columns to the system view <xref linkend="pg-stat-activity-view">,
- and a <structfield>backend_xmin</> column to
- <xref linkend="pg-stat-replication-view"> (Christian Kruse)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><acronym>SSL</></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add support for <acronym>SSL</> <acronym>ECDH</> key exchange
- (Marko Kreen)
- </para>
-
- <para>
- This allows use of Elliptic Curve keys for server authentication.
- Such keys are faster and have better security than <acronym>RSA</>
- keys. The new configuration parameter
- <xref linkend="guc-ssl-ecdh-curve">
- controls which curve is used for <acronym>ECDH</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve the default <xref linkend="guc-ssl-ciphers"> setting
- (Marko Kreen)
- </para>
- </listitem>
-
- <listitem>
- <para>
- By default, the server not the client now controls the preference
- order of <acronym>SSL</> ciphers
- (Marko Kreen)
- </para>
-
- <para>
- Previously, the order specified by <xref linkend="guc-ssl-ciphers">
- was usually ignored in favor of client-side defaults, which are not
- configurable in most <productname>PostgreSQL</> clients. If
- desired, the old behavior can be restored via the new configuration
- parameter <xref linkend="guc-ssl-prefer-server-ciphers">.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <xref linkend="guc-log-connections"> show <acronym>SSL</>
- encryption information (Andreas Kunert)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <acronym>SSL</> renegotiation handling (&Aacute;lvaro
- Herrera)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Server Settings</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
- for changing <filename>postgresql.conf</> configuration file entries
- (Amit Kapila)
- </para>
-
- <para>
- Previously such settings could only be changed by manually
- editing <filename>postgresql.conf</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="guc-autovacuum-work-mem"> configuration parameter
- to control the amount of memory used by autovacuum workers
- (Peter Geoghegan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="guc-huge-pages"> parameter to allow using huge
- memory pages on Linux (Christian Kruse, Richard Poole, Abhijit
- Menon-Sen)
- </para>
-
- <para>
- This can improve performance on large-memory systems.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="guc-max-worker-processes"> parameter
- to limit the number of background workers (Robert Haas)
- </para>
-
- <para>
- This is helpful in configuring a standby server to have the
- required number of worker processes (the same as the primary).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add superuser-only <xref linkend="guc-session-preload-libraries">
- parameter to load libraries at session start (Peter Eisentraut)
- </para>
-
- <para>
- In contrast to <xref linkend="guc-local-preload-libraries">, this
- parameter can load any shared library, not just those in
- the <filename>$libdir/plugins</> directory.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="guc-wal-log-hints"> parameter to enable WAL
- logging of hint-bit changes (Sawada Masahiko)
- </para>
-
- <para>
- Hint bit changes are not normally logged, except when checksums are
- enabled. This is useful for external tools
- like <application>pg_rewind</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Increase the default settings of <xref linkend="guc-work-mem">
- and <xref linkend="guc-maintenance-work-mem"> by four times (Bruce
- Momjian)
- </para>
-
- <para>
- The new defaults are 4MB and 64MB respectively.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Increase the default setting of <xref
- linkend="guc-effective-cache-size">
- to 4GB (Bruce Momjian, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <function>printf</function>-style space padding to be
- specified in <xref linkend="guc-log-line-prefix"> (David Rowley)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow terabyte units (<literal>TB</>) to be used when specifying
- configuration variable values (Simon Riggs)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Show <acronym>PID</>s of lock holders and waiters and improve
- information about relations in <xref linkend="guc-log-lock-waits">
- log messages (Christian Kruse)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce server logging level when loading shared libraries (Peter
- Geoghegan)
- </para>
-
- <para>
- The previous level was <literal>LOG</>, which was too verbose
- for libraries loaded per-session.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, make <literal>SQL_ASCII</>-encoded databases and server
- processes (e.g., <xref linkend="app-postmaster">) emit messages in
- the character encoding of the server's Windows user locale
- (Alexander Law, Noah Misch)
- </para>
-
- <para>
- Previously these messages were output in the Windows
- <acronym>ANSI</> code page.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Replication and Recovery</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <link linkend="streaming-replication-slots">replication
- slots</link> to coordinate activity on streaming standbys with the
- node they are streaming from (Andres Freund, Robert Haas)
- </para>
-
- <para>
- Replication slots allow preservation of resources like
- <acronym>WAL</> files on the primary until they are no longer
- needed by standby servers.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add recovery parameter <xref linkend="recovery-min-apply-delay">
- to delay replication (Robert Haas, Fabr&iacute;zio de Royes Mello,
- Simon Riggs)
- </para>
-
- <para>
- Delaying replay on standby servers can be useful for recovering
- from user errors.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="recovery-target">
- option <option>immediate</> to stop <link
- linkend="wal"><acronym>WAL</></link> recovery as soon as a
- consistent state is reached (MauMau, Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve recovery target processing (Heikki Linnakangas)
- </para>
-
- <para>
- The timestamp reported
- by <link linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link>
- now reflects already-committed records, not transactions about to
- be committed. Recovering to a restore point now replays the restore
- point, rather than stopping just before the restore point.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <link
- linkend="functions-admin-backup-table"><function>pg_switch_xlog()</></link>
- now clears any unused trailing space in the old <acronym>WAL</> file
- (Heikki Linnakangas)
- </para>
-
- <para>
- This improves the compression ratio for <acronym>WAL</> files.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Report failure return codes from <link
- linkend="archive-recovery-settings">external recovery commands</>
- (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce spinlock contention during <acronym>WAL</> replay (Heikki
- Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Write <acronym>WAL</> records of running transactions more
- frequently (Andres Freund)
- </para>
-
- <para>
- This allows standby servers to start faster and clean up resources
- more aggressively.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="logicaldecoding">Logical Decoding</></title>
-
- <para>
- Logical decoding allows database changes to be streamed in a
- configurable format. The data is read from
- the <link linkend="wal"><acronym>WAL</></link> and transformed into the
- desired target format. To implement this feature, the following changes
- were made:
- </para>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add support for <link linkend="logicaldecoding">logical decoding</>
- of WAL data, to allow database changes to be streamed out in a
- customizable format
- (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add new <xref linkend="guc-wal-level"> setting <option>logical</>
- to enable logical change-set encoding in <acronym>WAL</> (Andres
- Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add table-level parameter <link
- linkend="catalog-pg-class"><literal>REPLICA IDENTITY</></link>
- to control logical replication (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add relation option <link
- linkend="SQL-CREATETABLE-storage-parameters"><option>user_catalog_table</></link>
- to identify user-created tables involved in logical change-set
- encoding (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="app-pgrecvlogical"> application to receive
- logical-decoding data (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="test-decoding"> module to illustrate logical
- decoding at the <acronym>SQL</> level (Andres Freund)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Queries</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <link linkend="queries-tablefunctions"><literal>WITH
- ORDINALITY</></link> syntax to number the rows returned from a
- set-returning function in the <literal>FROM</> clause
- (Andrew Gierth, David Fetter)
- </para>
-
- <para>
- This is particularly useful for functions like
- <function>unnest()</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <link linkend="queries-tablefunctions"><literal>ROWS
- FROM()</></link> syntax to allow horizontal concatenation of
- set-returning functions in the <literal>FROM</> clause (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <xref linkend="SQL-SELECT"> to have
- an empty target list (Tom Lane)
- </para>
-
- <para>
- This was added so that views that select from a table with zero
- columns can be dumped and restored correctly.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <link linkend="SQL-SELECT"><literal>SELECT ... FOR UPDATE
- NOWAIT</></link> does not wait in corner cases involving
- already-concurrently-updated tuples (Craig Ringer and Thomas Munro)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Utility Commands</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <link linkend="SQL-DISCARD"><command>DISCARD
- SEQUENCES</></link> command to discard cached sequence-related state
- (Fabr&iacute;zio de Royes Mello, Robert Haas)
- </para>
-
- <para>
- <command>DISCARD ALL</> will now also discard such information.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <literal>FORCE NULL</> option
- to <link linkend="SQL-COPY"><command>COPY FROM</></link>, which
- causes quoted strings matching the specified null string to be
- converted to NULLs in <literal>CSV</> mode (Ian Barwick, Michael
- Paquier)
- </para>
-
- <para>
- Without this option, only unquoted matching strings will be imported
- as null values.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Issue warnings for commands used outside of transaction blocks
- when they can have no effect (Bruce Momjian)
- </para>
-
- <para>
- New warnings are issued for <command>SET
- LOCAL</>, <command>SET CONSTRAINTS</>, <command>SET TRANSACTION</> and
- <command>ABORT</> when used outside a transaction block.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><xref linkend="SQL-EXPLAIN"></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Make <command>EXPLAIN ANALYZE</> show planning time (Andreas
- Karlsson)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>EXPLAIN</> show the grouping columns in Agg and
- Group nodes (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>EXPLAIN ANALYZE</> show exact and lossy
- block counts in bitmap heap scans (Etsuro Fujita)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Views</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Allow a <link linkend="rules-materializedviews">materialized view</>
- to be refreshed without blocking other sessions from reading the view
- meanwhile (Kevin Grittner)
- </para>
-
- <para>
- This is done with <link
- linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH MATERIALIZED
- VIEW CONCURRENTLY</></link>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow views to be <link
- linkend="SQL-CREATEVIEW-updatable-views">automatically
- updated</link> even if they contain some non-updatable columns
- (Dean Rasheed)
- </para>
-
- <para>
- Previously the presence of non-updatable output columns such as
- expressions, literals, and function calls prevented automatic
- updates. Now <command>INSERT</>s, <command>UPDATE</>s and
- <command>DELETE</>s are supported, provided that they do not
- attempt to assign new values to any of the non-updatable columns.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow control over whether <command>INSERT</>s and
- <command>UPDATE</>s can add rows to an auto-updatable view that
- would not appear in the view (Dean Rasheed)
- </para>
-
- <para>
- This is controlled with the new <xref linkend="SQL-CREATEVIEW">
- clause <literal>WITH CHECK OPTION</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <link linkend="rules-privileges">security barrier views</>
- to be automatically updatable (Dean Rasheed)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Object Manipulation</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Support triggers on <link linkend="SQL-CREATEFOREIGNTABLE">foreign
- tables</> (Ronan Dunklau)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow moving groups of objects from one tablespace to another
- using the <literal>ALL IN TABLESPACE ... SET TABLESPACE</> form of
- <xref linkend="SQL-ALTERTABLE">, <xref linkend="SQL-ALTERINDEX">, or
- <xref linkend="SQL-ALTERMATERIALIZEDVIEW"> (Stephen Frost)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow changing foreign key constraint deferrability
- via <xref linkend="SQL-ALTERTABLE"> ... <literal>ALTER
- CONSTRAINT</> (Simon Riggs)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
- commands
- (Simon Riggs, Noah Misch, Robert Haas)
- </para>
-
- <para>
- Specifically, <literal>VALIDATE CONSTRAINT</>, <literal>CLUSTER
- ON</>, <literal>SET WITHOUT CLUSTER</>, <literal>ALTER COLUMN
- SET STATISTICS</>, <literal>ALTER COLUMN</> <literal>SET</>
- <option>(attribute_option)</>, <literal>ALTER COLUMN RESET</>
- <option>(attribute_option)</> no longer require <literal>ACCESS
- EXCLUSIVE</> locks.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow tablespace options to be set
- in <xref linkend="SQL-CREATETABLESPACE"> (Vik Fearing)
- </para>
-
- <para>
- Formerly these options could only be set
- via <xref linkend="SQL-ALTERTABLESPACE">.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <xref linkend="SQL-CREATEAGGREGATE"> to define the estimated
- size of the aggregate's transition state data (Hadi Moshayedi)
- </para>
-
- <para>
- Proper use of this feature allows the planner to better estimate
- how much memory will be used by aggregates.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>DROP IF EXISTS</> to avoid errors for non-existent
- objects in more cases (Pavel Stehule, Dean Rasheed)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve how system relations are identified (Andres Freund,
- Robert Haas)
- </para>
-
- <para>
- Previously, relations once moved into the <literal>pg_catalog</>
- schema could no longer be modified or dropped.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Data Types</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fully implement the <link
- linkend="datatype-line"><type>line</></link> data type (Peter
- Eisentraut)
- </para>
-
- <para>
- The line <emphasis>segment</> data type (<link
- linkend="datatype-lseg"><type>lseg</></link>) has always been
- fully supported. The previous <type>line</> data type (which was
- enabled only via a compile-time option) is not binary or
- dump-compatible with the new implementation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <link linkend="datatype-pg-lsn"><type>pg_lsn</></link>
- data type to represent a <acronym>WAL</> log sequence number
- (<acronym>LSN</>) (Robert Haas, Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow single-point <link
- linkend="datatype-polygon"><type>polygon</></link>s to be converted
- to <link linkend="datatype-circle"><type>circle</></link>s
- (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support time zone abbreviations that change UTC offset from time to
- time (Tom Lane)
- </para>
-
- <para>
- Previously, <productname>PostgreSQL</> assumed that the UTC offset
- associated with a time zone abbreviation (such as <literal>EST</>)
- never changes in the usage of any particular locale. However this
- assumption fails in the real world, so introduce the ability for a
- zone abbreviation to represent a UTC offset that sometimes changes.
- Update the zone abbreviation definition files to make use of this
- feature in timezone locales that have changed the UTC offset of their
- abbreviations since 1970 (according to the IANA timezone database).
- In such timezones, <productname>PostgreSQL</> will now associate the
- correct UTC offset with the abbreviation depending on the given date.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow 5+ digit years for non-<acronym>ISO</> <link
- linkend="datatype-datetime"><type>timestamp</></link> and
- <type>date</> strings, where appropriate (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add checks for overflow/underflow of <link
- linkend="datatype-datetime"><type>interval</></link> values
- (Bruce Momjian)
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="datatype-json"><acronym>JSON</></link></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <link linkend="datatype-json"><type>jsonb</></link>, a more
- capable and efficient data type for storing <acronym>JSON</> data
- (Oleg Bartunov, Teodor Sigaev, Alexander
- Korotkov, Peter Geoghegan, Andrew Dunstan)
- </para>
-
- <para>
- This new type allows faster access to values within a JSON
- document, and faster and more useful indexing of JSON columns.
- Scalar values in <type>jsonb</> documents are stored as appropriate
- scalar SQL types, and the JSON document structure is pre-parsed
- rather than being stored as text as in the original <type>json</>
- data type.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add new JSON functions to allow for the construction
- of arbitrarily complex JSON trees (Andrew Dunstan, Laurence Rowe)
- </para>
-
- <para>
- New functions include <link
- linkend="functions-json-processing-table"><function>json_array_elements_text()</></link>,
- <function>json_build_array()</>, <function>json_object()</>,
- <function>json_object_agg()</>, <function>json_to_record()</>,
- and <function>json_to_recordset()</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <link
- linkend="functions-json-processing-table"><function>json_typeof()</></link>
- to return the data type of a <type>json</> value (Andrew Tipton)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Functions</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <link
- linkend="functions-datetime-delay"><function>pg_sleep_for(interval)</></link>
- and <function>pg_sleep_until(timestamp)</> to specify
- delays more flexibly (Vik Fearing, Julien Rouhaud)
- </para>
-
- <para>
- The existing <function>pg_sleep()</> function only supports delays
- specified in seconds.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <link
- linkend="array-functions-table"><function>cardinality()</></link>
- function for arrays (Marko Tiikkaja)
- </para>
-
- <para>
- This returns the total number of elements in the array, or zero
- for an array with no elements.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <acronym>SQL</> functions to allow <link linkend="lo-funcs">large
- object reads/writes</link> at arbitrary offsets (Pavel Stehule)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <link
- linkend="array-functions-table"><function>unnest()</></link>
- to take multiple arguments, which are individually unnested then
- horizontally concatenated (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add functions to construct <type>time</>s, <type>date</>s,
- <type>timestamp</>s, <type>timestamptz</>s, and <type>interval</>s
- from individual values, rather than strings (Pavel Stehule)
- </para>
-
- <para>
- These functions' names are prefixed with <literal>make_</>,
- e.g. <link linkend="functions-datetime-table"><function>make_date()</></link>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <link
- linkend="functions-formatting-table"><function>to_char()</></link>'s
- <literal>TZ</> format specifier return a useful value for simple
- numeric time zone offsets (Tom Lane)
- </para>
-
- <para>
- Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</> returned
- an empty string if the <literal>timezone</> was set to a constant
- like <literal>-4</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add timezone offset format specifier <literal>OF</> to <link
- linkend="functions-formatting-table"><function>to_char()</></link>
- (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve the random seed used for <link
- linkend="functions-math-random-table"><function>random()</></link>
- (Honza Horak)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Tighten validity checking for Unicode code points in <link
- linkend="functions-string-other"><function>chr(int)</></link>
- (Tom Lane)
- </para>
-
- <para>
- This function now only accepts values that are valid UTF8 characters
- according to RFC 3629.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title>System Information Functions</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add functions for looking up objects in <structname>pg_class</>,
- <structname>pg_proc</>, <structname>pg_type</>, and
- <structname>pg_operator</> that do not generate errors for
- non-existent objects (Yugo Nagata, Nozomi Anzai,
- Robert Haas)
- </para>
-
- <para>
- For example, <link
- linkend="functions-info-catalog-table"><function>to_regclass()</></link>
- does a lookup in <structname>pg_class</> similarly to
- the <type>regclass</> input function, but it returns NULL for a
- non-existent object instead of failing.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add function <link
- linkend="functions-admin-dblocation"><function>pg_filenode_relation()</></link>
- to allow for more efficient lookup of relation names from filenodes
- (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <structfield>parameter_default</> column to <link
- linkend="infoschema-parameters"><structname>information_schema.parameters</></link>
- view (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <link
- linkend="infoschema-schemata"><structname>information_schema.schemata</></link>
- show all accessible schemas (Peter Eisentraut)
- </para>
-
- <para>
- Previously it only showed schemas owned by the current user.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Aggregates</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add control over which rows are passed
- into aggregate functions via the <link
- linkend="syntax-aggregates"><literal>FILTER</></link> clause
- (David Fetter)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support ordered-set (<link
- linkend="syntax-aggregates"><literal>WITHIN GROUP</></link>)
- aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add standard ordered-set aggregates <link
- linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
- <function>percentile_disc()</>, <function>mode()</>, <link
- linkend="functions-hypothetical-table"><function>rank()</></link>,
- <function>dense_rank()</>, <function>percent_rank()</>, and
- <function>cume_dist()</>
- (Atri Sharma, Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support <link
- linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</></link>
- aggregate functions (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow polymorphic aggregates to have non-polymorphic state data
- types (Tom Lane)
- </para>
- <para>
- This allows proper declaration in SQL of aggregates like the built-in
- aggregate <function>array_agg()</>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Server-Side Languages</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add event trigger support to <link linkend="plperl">PL/Perl</>
- and <link linkend="pltcl">PL/Tcl</> (Dimitri Fontaine)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Convert <link linkend="datatype-numeric"><type>numeric</></link>
- values to <type>decimal</> in <link linkend="plpython">PL/Python</link>
- (Szymon Guz, Ronan Dunklau)
- </para>
-
- <para>
- Previously such values were converted to Python <type>float</> values,
- risking loss of precision.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add ability to retrieve the current PL/pgSQL call stack
- using <link linkend="plpgsql-call-stack"><command>GET
- DIAGNOSTICS</></link>
- (Pavel Stehule, Stephen Frost)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add option <link
- linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</></link>
- to display the parameters passed to a query that violated a
- <literal>STRICT</> constraint (Marko Tiikkaja)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add variables <link
- linkend="plpgsql-extra-checks"><varname>plpgsql.extra_warnings</></link>
- and <varname>plpgsql.extra_errors</> to enable additional PL/pgSQL
- warnings and errors (Marko Tiikkaja, Petr Jelinek)
- </para>
-
- <para>
- Currently only warnings/errors about shadowed variables are available.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title><link linkend="libpq"><application>libpq</></link></title>
- <itemizedlist>
-
- <listitem>
- <para>
- Make libpq's <link
- linkend="libpq-pqconndefaults"><function>PQconndefaults()</></link>
- function ignore invalid service files (Steve Singer, Bruce Momjian)
- </para>
-
- <para>
- Previously it returned NULL if an incorrect service file was
- encountered.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Accept <acronym>TLS</> protocol versions beyond <literal>TLSv1</>
- in libpq (Marko Kreen)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Client Applications</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <xref linkend="APP-CREATEUSER"> option <option>-g</>
- to specify role membership (Christopher Browne)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <xref linkend="APP-VACUUMDB">
- option <option>--analyze-in-stages</> to analyze in stages of
- increasing granularity (Peter Eisentraut)
- </para>
-
- <para>
- This allows minimal statistics to be created quickly.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <xref linkend="APP-PGRESETXLOG"> with option <option>-n</>
- output current and potentially changed values (Rajeev Rastogi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <xref linkend="app-initdb"> throw error for incorrect locale
- settings, rather than silently falling back to a default choice
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <xref linkend="app-pg-ctl"> return exit code <literal>4</> for
- an inaccessible data directory (Amit Kapila, Bruce Momjian)
- </para>
-
- <para>
- This behavior more closely matches the Linux Standard Base
- (<acronym>LSB</>) Core Specification.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, ensure that a non-absolute <option>-D</> path
- specification is interpreted relative
- to <xref linkend="app-pg-ctl">'s current directory
- (Kumar Rajeev Rastogi)
- </para>
-
- <para>
- Previously it would be interpreted relative to whichever directory
- the underlying Windows service was started in.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <function>sizeof()</> in <link linkend="ecpg">ECPG</link>
- C array definitions (Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <link linkend="ecpg">ECPG</link> properly handle nesting
- of C-style comments in both C and <acronym>SQL</> text
- (Michael Meskes)
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><xref linkend="APP-PSQL"></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Suppress <quote>No rows</quote> output in <application>psql</> <link
- linkend="APP-PSQL-meta-commands"><option>expanded</></link>
- mode when the footer is disabled (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow Control-C to abort <application>psql</> when it's hung at
- connection startup (Peter Eisentraut)
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect5>
- <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Make <application>psql</>'s <command>\db+</> show tablespace options
- (Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>\do+</> display the functions
- that implement the operators (Marko Tiikkaja)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>\d+</> output an
- <literal>OID</> line only if an <literal>oid</literal> column
- exists in the table (Bruce Momjian)
- </para>
-
- <para>
- Previously, the presence or absence of an <literal>oid</literal>
- column was always reported.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>\d</> show disabled system triggers (Bruce
- Momjian)
- </para>
-
- <para>
- Previously, if you disabled all triggers, only user triggers
- would show as disabled.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>\copy</> to no longer require
- a space between <literal>stdin</> and a semicolon (Etsuro Fujita)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Output the row count at the end of <command>\copy</>, just
- like <command>COPY</> already did (Kumar Rajeev Rastogi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <command>\conninfo</> to display the
- server's <acronym>IP</> address for connections using
- <literal>hostaddr</> (Fujii Masao)
- </para>
-
- <para>
- Previously <command>\conninfo</> could not display the server's
- <acronym>IP</> address in such cases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Show the <acronym>SSL</> protocol version in
- <command>\conninfo</> (Marko Kreen)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add tab completion for <command>\pset</>
- (Pavel Stehule)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <command>\pset</> with no arguments
- to show all settings (Gilles Darold)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>\s</> display the name of the history file it wrote
- without converting it to an absolute path (Tom Lane)
- </para>
-
- <para>
- The code previously attempted to convert a relative file name to
- an absolute path for display, but frequently got it wrong.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
-
- </sect4>
-
- <sect4>
- <title><xref linkend="APP-PGDUMP"></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Allow <xref linkend="APP-PGRESTORE"> options
- <option>-I</>, <option>-P</>, <option>-T</> and <option>-n</>
- to be specified multiple times (Heikki Linnakangas)
- </para>
-
- <para>
- This allows multiple objects to be restored in one operation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Optionally add <literal>IF EXISTS</> clauses to the <command>DROP</>
- commands emitted when removing old objects during a restore (Pavel
- Stehule)
- </para>
-
- <para>
- This change prevents unnecessary errors when removing old objects.
- The new <option>--if-exists</> option
- for <xref linkend="APP-PGDUMP">, <xref linkend="APP-PG-DUMPALL">,
- and <xref linkend="APP-PGRESTORE"> is only available
- when <option>--clean</> is also specified.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><xref linkend="app-pgbasebackup"></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <application>pg_basebackup</> option <option>--xlogdir</>
- to specify the <filename>pg_xlog</> directory location (Haribabu
- Kommi)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <application>pg_basebackup</> to relocate tablespaces in
- the backup copy (Steeve Lennmark)
- </para>
-
- <para>
- This is particularly useful for using <application>pg_basebackup</>
- on the same machine as the primary.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow network-stream base backups to be throttled (Antonin Houska)
- </para>
-
- <para>
- This can be controlled with the <application>pg_basebackup</>
- <option>--max-rate</> parameter.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Source Code</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Improve the way tuples are frozen to preserve forensic information
- (Robert Haas, Andres Freund)
- </para>
-
- <para>
- This change removes the main objection to freezing tuples as soon
- as possible. Code that inspects tuple flag bits will need to be
- modified.
- </para>
- </listitem>
-
- <listitem>
- <para>
- No longer require function prototypes for functions marked with the
- <link linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</></link>
- macro (Peter Eisentraut)
- </para>
-
- <para>
- This change eliminates the need to write boilerplate prototypes.
- Note that the <function>PG_FUNCTION_INFO_V1</> macro must appear
- before the corresponding function definition to avoid compiler
- warnings.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove <varname>SnapshotNow</> and
- <function>HeapTupleSatisfiesNow()</> (Robert Haas)
- </para>
-
- <para>
- All existing uses have been switched to more appropriate snapshot
- types. Catalog scans now use <acronym>MVCC</> snapshots.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add an <acronym>API</> to allow memory allocations over one gigabyte
- (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <function>psprintf()</> to simplify memory allocation during
- string composition (Peter Eisentraut, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support <function>printf()</> size modifier <literal>z</> to
- print <type>size_t</> values (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Change <acronym>API</> of <function>appendStringInfoVA()</>
- to better use <function>vsnprintf()</> (David Rowley, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow new types of external toast datums to be created (Andres
- Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add single-reader, single-writer, lightweight shared message queue
- (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve spinlock speed on x86_64 <acronym>CPU</>s (Heikki
- Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove spinlock support for unsupported platforms
- <productname>SINIX</>, <productname>Sun3</>, and
- <productname>NS32K</> (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove <acronym>IRIX</> port (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce the number of semaphores required by
- <option>--disable-spinlocks</> builds (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Rewrite <application>duplicate_oids</> Unix shell script in
- <application>Perl</> (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add Test Anything Protocol (<acronym>TAP</>) tests for client
- programs (Peter Eisentraut)
- </para>
-
- <para>
- Currently, these tests are run by <literal>make check-world</>
- only if the <option>--enable-tap-tests</> option was given
- to <application>configure</>.
- This might become the default behavior in some future release.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add make targets <option>check-tests</> and
- <option>installcheck-tests</>, which allow selection of individual
- tests to be run (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove <option>maintainer-check</> makefile rule (Peter Eisentraut)
- </para>
-
- <para>
- The default build rules now include all the formerly-optional tests.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
- modules (C&eacute;dric Villemain, Andrew Dunstan, Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Upgrade to Autoconf 2.69 (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add a <application>configure</> flag that appends custom text to the
- <envar>PG_VERSION</> string (Oskari Saarenmaa)
- </para>
-
- <para>
- This is useful for packagers building custom binaries.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve DocBook <acronym>XML</> validity (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix various minor security and sanity issues reported by the
- <productname>Coverity</> scanner (Stephen Frost)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve detection of invalid memory usage when testing
- <productname>PostgreSQL</> with <application>Valgrind</>
- (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve sample <application>Emacs</> configuration file
- <filename>emacs.samples</> (Peter Eisentraut)
- </para>
-
- <para>
- Also add <filename>.dir-locals.el</> to the top of the source tree.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <application>pgindent</> to accept a command-line list
- of typedefs (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pgindent</> smarter about blank lines
- around preprocessor conditionals (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid most uses of <command>dlltool</command>
- in <productname>Cygwin</> and
- <productname>Mingw</> builds (Marco Atzeri, Hiroshi Inoue)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Support client-only installs in <acronym>MSVC</> (Windows) builds
- (MauMau)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Additional Modules</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add <xref linkend="pgprewarm"> extension to preload relation data
- into the shared buffer cache at server start (Robert Haas)
- </para>
-
- <para>
- This allows reaching full operating performance more quickly.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <acronym>UUID</> random number generator
- <function>gen_random_uuid()</> to <xref linkend="pgcrypto">
- (Oskari Saarenmaa)
- </para>
-
- <para>
- This allows creation of version 4 <acronym>UUID</>s without
- requiring installation of <xref linkend="uuid-ossp">.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <xref linkend="uuid-ossp"> to work with
- the <systemitem>BSD</> or <systemitem>e2fsprogs</> UUID libraries,
- not only the <systemitem>OSSP</> UUID library (Matteo Beccati)
- </para>
-
- <para>
- This improves the <application>uuid-ossp</> module's portability
- since it no longer has to have the increasingly-obsolete OSSP
- library. The module's name is now rather a misnomer, but we won't
- change it.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add option to <xref linkend="auto-explain"> to include trigger
- execution time (Horiguchi Kyotaro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <xref linkend="pgstattuple"> to not report rows from
- uncommitted transactions as dead (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <xref linkend="pgstattuple"> functions
- use <type>regclass</type>-type arguments (Satoshi Nagayasu)
- </para>
-
- <para>
- While <type>text</type>-type arguments are still supported, they
- may be removed in a future major release.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve consistency of <xref linkend="pgrowlocks"> output to honor
- snapshot rules more consistently (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed
- regular expression searches (Alexander Korotkov)
- </para>
-
- <para>
- This change discourages use of trigrams containing whitespace, which
- are usually less selective.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <xref linkend="pgxlogdump"> to report a live log stream
- with <option>--follow</> (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Store <xref linkend="cube"> data more compactly (Stas Kelvich)
- </para>
-
- <para>
- Existing data must be dumped/restored to use the new format.
- The old format can still be read.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reduce <xref linkend="vacuumlo"> client-side memory usage by using
- a cursor (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Dramatically reduce memory consumption
- in <xref linkend="pgupgrade"> (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Pass <xref linkend="pgupgrade">'s user name (<option>-U</>) option to
- generated analyze scripts (Bruce Momjian)
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><xref linkend="pgbench"></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Remove line length limit for <application>pgbench</> scripts (Sawada
- Masahiko)
- </para>
-
- <para>
- The previous line limit was <envar>BUFSIZ</>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add long option names to <application>pgbench</> (Fabien Coelho)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <application>pgbench</> option <option>--rate</> to control
- the transaction rate (Fabien Coelho)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <application>pgbench</> option <option>--progress</> to
- print periodic progress reports
- (Fabien Coelho)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><xref linkend="pgstatstatements"></title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Make <application>pg_stat_statements</> use a file, rather than
- shared memory, for query text storage (Peter Geoghegan)
- </para>
-
- <para>
- This removes the previous limitation on query text length, and
- allows a higher number of unique statements to be tracked by default.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow reporting of <application>pg_stat_statements</>'s internal
- query hash identifier (Daniel Farina, Sameer Thakur, Peter
- Geoghegan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add the ability to retrieve all <application>pg_stat_statements</>
- information except the query text (Peter Geoghegan)
- </para>
-
- <para>
- This allows monitoring tools to fetch query text only for
- just-created entries, improving performance during repeated querying
- of the statistics.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <application>pg_stat_statements</> ignore <command>DEALLOCATE</>
- commands (Fabien Coelho)
- </para>
-
- <para>
- It already ignored <command>PREPARE</>, as well as planning time in
- general, so this seems more consistent.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Save the statistics file into <filename>$PGDATA/pg_stat</> at server
- shutdown, rather than <filename>$PGDATA/global</> (Fujii Masao)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- </sect2>
- </sect1>