diff options
Diffstat (limited to 'doc/src/sgml/release-9.5.sgml')
-rw-r--r-- | doc/src/sgml/release-9.5.sgml | 11192 |
1 files changed, 0 insertions, 11192 deletions
diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml deleted file mode 100644 index ccd8eee3e37..00000000000 --- a/doc/src/sgml/release-9.5.sgml +++ /dev/null @@ -1,11192 +0,0 @@ -<!-- doc/src/sgml/release-9.5.sgml --> -<!-- See header comment in release.sgml about typical markup --> - - <sect1 id="release-9-5-15"> - <title>Release 9.5.15</title> - - <formalpara> - <title>Release date:</title> - <para>2018-11-08</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.14. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.15</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.5.13, - see <xref linkend="release-9-5-13"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix corner-case failures - in <function>has_<replaceable>foo</replaceable>_privilege()</function> - family of functions (Tom Lane) - </para> - - <para> - Return NULL rather than throwing an error when an invalid object OID - is provided. Some of these functions got that right already, but not - all. <function>has_column_privilege()</function> was additionally - capable of crashing on some platforms. - </para> - </listitem> - - <listitem> - <para> - Avoid O(N^2) slowdown in regular expression match/split functions on - long strings (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix parsing of standard multi-character operators that are immediately - followed by a comment or <literal>+</literal> or <literal>-</literal> - (Andrew Gierth) - </para> - - <para> - This oversight could lead to parse errors, or to incorrect assignment - of precedence. - </para> - </listitem> - - <listitem> - <para> - Avoid O(N^3) slowdown in lexer for long strings - of <literal>+</literal> or <literal>-</literal> characters - (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix mis-execution of SubPlans when the outer query is being scanned - backwards (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command> - after rewinding the referenced cursor (Tom Lane) - </para> - - <para> - A cursor that scans multiple relations (particularly an inheritance - tree) could produce wrong behavior if rewound to an earlier relation. - </para> - </listitem> - - <listitem> - <para> - Fix <function>EvalPlanQual</function> to handle conditionally-executed - InitPlans properly (Andrew Gierth, Tom Lane) - </para> - - <para> - This resulted in hard-to-reproduce crashes or wrong answers in - concurrent updates, if they contained code such as an uncorrelated - sub-<literal>SELECT</literal> inside a <literal>CASE</literal> - construct. - </para> - </listitem> - - <listitem> - <para> - Fix character-class checks to not fail on Windows for Unicode - characters above U+FFFF (Tom Lane, Kenji Uno) - </para> - - <para> - This bug affected full-text-search operations, as well - as <filename>contrib/ltree</filename> - and <filename>contrib/pg_trgm</filename>. - </para> - </listitem> - - <listitem> - <para> - Ensure that sequences owned by a foreign table are processed - by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut) - </para> - - <para> - The ownership change should propagate to such sequences as well, but - this was missed for foreign tables. - </para> - </listitem> - - <listitem> - <para> - Ensure that the server will process - already-received <literal>NOTIFY</literal> - and <literal>SIGTERM</literal> interrupts before waiting for client - input (Jeff Janes, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix over-allocation of space for <function>array_out()</function>'s - result string (Keiichi Hirobe) - </para> - </listitem> - - <listitem> - <para> - Fix memory leak in repeated SP-GiST index scans (Tom Lane) - </para> - - <para> - This is only known to amount to anything significant in cases where - an exclusion constraint using SP-GiST receives many new index entries - in a single command. - </para> - </listitem> - - <listitem> - <para> - Ensure that <function>ApplyLogicalMappingFile()</function> closes the - mapping file when done with it (Tomas Vondra) - </para> - - <para> - Previously, the file descriptor was leaked, eventually resulting in - failures during logical decoding. - </para> - </listitem> - - <listitem> - <para> - Fix logical decoding to handle cases where a mapped catalog table is - repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal> - (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Prevent starting the server with <varname>wal_level</varname> set - to too low a value to support an existing replication slot (Andres - Freund) - </para> - </listitem> - - <listitem> - <para> - Avoid crash if a utility command causes infinite recursion (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - When initializing a hot standby, cope with duplicate XIDs caused by - two-phase transactions on the master - (Michael Paquier, Konstantin Knizhnik) - </para> - </listitem> - - <listitem> - <para> - Fix event triggers to handle nested <command>ALTER TABLE</command> - commands (Michael Paquier, Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Propagate parent process's transaction and statement start timestamps - to parallel workers (Konstantin Knizhnik) - </para> - - <para> - This prevents misbehavior of functions such - as <function>transaction_timestamp()</function> when executed in a - worker. - </para> - </listitem> - - <listitem> - <para> - Fix WAL file recycling logic to work correctly on standby servers - (Michael Paquier) - </para> - - <para> - Depending on the setting of <varname>archive_mode</varname>, a standby - might fail to remove some WAL files that could be removed. - </para> - </listitem> - - <listitem> - <para> - Fix handling of commit-timestamp tracking during recovery - (Masahiko Sawada, Michael Paquier) - </para> - - <para> - If commit timestamp tracking has been turned on or off, recovery might - fail due to trying to fetch the commit timestamp for a transaction - that did not record it. - </para> - </listitem> - - <listitem> - <para> - Randomize the <function>random()</function> seed in bootstrap and - standalone backends, and in <application>initdb</application> - (Noah Misch) - </para> - - <para> - The main practical effect of this change is that it avoids a scenario - where <application>initdb</application> might mistakenly conclude that - POSIX shared memory is not available, due to name collisions caused by - always using the same random seed. - </para> - </listitem> - - <listitem> - <para> - Allow DSM allocation to be interrupted (Chris Travers) - </para> - </listitem> - - <listitem> - <para> - Properly handle turning <varname>full_page_writes</varname> on - dynamically (Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> - <para> - Avoid possible buffer overrun when replaying GIN page recompression - from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian) - </para> - </listitem> - - <listitem> - <para> - Fix missed fsync of a replication slot's directory (Konstantin - Knizhnik, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix unexpected timeouts when - using <varname>wal_sender_timeout</varname> on a slow server - (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - Ensure that hot standby processes use the correct WAL consistency - point (Alexander Kukushkin, Michael Paquier) - </para> - - <para> - This prevents possible misbehavior just after a standby server has - reached a consistent database state during WAL replay. - </para> - </listitem> - - <listitem> - <para> - Ensure background workers are stopped properly when the postmaster - receives a fast-shutdown request before completing database startup - (Alexander Kukushkin) - </para> - </listitem> - - <listitem> - <para> - Don't run atexit callbacks when servicing <literal>SIGQUIT</literal> - (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Don't record foreign-server user mappings as members of extensions - (Tom Lane) - </para> - - <para> - If <command>CREATE USER MAPPING</command> is executed in an extension - script, an extension dependency was created for the user mapping, - which is unexpected. Roles can't be extension members, so user - mappings shouldn't be either. - </para> - </listitem> - - <listitem> - <para> - Make syslogger more robust against failures in opening CSV log files - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <application>psql</application>, as well as documentation - examples, to call <function>PQconsumeInput()</function> before - each <function>PQnotifies()</function> call (Tom Lane) - </para> - - <para> - This fixes cases in which <application>psql</application> would not - report receipt of a <literal>NOTIFY</literal> message until after the - next command. - </para> - </listitem> - - <listitem> - <para> - Fix possible inconsistency in <application>pg_dump</application>'s - sorting of dissimilar object names (Jacob Champion) - </para> - </listitem> - - <listitem> - <para> - Ensure that <application>pg_restore</application> will schema-qualify - the table name when - emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal> - commands (Tom Lane) - </para> - - <para> - This avoids failures due to the new policy of running restores with - restrictive search path. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</application> to handle event triggers in - extensions correctly (Haribabu Kommi) - </para> - - <para> - <application>pg_upgrade</application> failed to preserve an event - trigger's extension-membership status. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</application>'s cluster state check to - work correctly on a standby server (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Enforce type <type>cube</type>'s dimension limit in - all <filename>contrib/cube</filename> functions (Andrey Borodin) - </para> - - <para> - Previously, some cube-related functions could construct values that - would be rejected by <function>cube_in()</function>, leading to - dump/reload failures. - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/unaccent</filename>'s - <function>unaccent()</function> function to use - the <literal>unaccent</literal> text search dictionary that is in the - same schema as the function (Tom Lane) - </para> - - <para> - Previously it tried to look up the dictionary using the search path, - which could fail if the search path has a restrictive value. - </para> - </listitem> - - <listitem> - <para> - Fix build problems on macOS 10.14 (Mojave) (Tom Lane) - </para> - - <para> - Adjust <application>configure</application> to add - an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>; - without this, PL/Perl and PL/Tcl fail to configure or build on macOS - 10.14. The specific sysroot used can be overridden at configure time - or build time by setting the <varname>PG_SYSROOT</varname> variable in - the arguments of <application>configure</application> - or <application>make</application>. - </para> - - <para> - It is now recommended that Perl-related extensions - write <literal>$(perl_includespec)</literal> rather - than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler - flags. The latter continues to work on most platforms, but not recent - macOS. - </para> - - <para> - Also, it should no longer be necessary to - specify <option>--with-tclconfig</option> manually to get PL/Tcl to - build on recent macOS releases. - </para> - </listitem> - - <listitem> - <para> - Fix MSVC build and regression-test scripts to work on recent Perl - versions (Andrew Dunstan) - </para> - - <para> - Perl no longer includes the current directory in its search path - by default; work around that. - </para> - </listitem> - - <listitem> - <para> - On Windows, allow the regression tests to be run by an Administrator - account (Andrew Dunstan) - </para> - - <para> - To do this safely, <application>pg_regress</application> now gives up - any such privileges at startup. - </para> - </listitem> - - <listitem> -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: REL9_5_STABLE [f6c268c48] 2018-09-11 16:09:46 -0400 -Branch: REL9_4_STABLE [19acfd652] 2018-09-11 16:03:42 -0400 -Branch: REL9_3_STABLE [48c978f3e] 2018-09-11 16:05:20 -0400 -Branch: REL9_4_STABLE [9ca32a6eb] 2018-09-11 15:44:42 -0400 -Branch: REL9_3_STABLE [048257832] 2018-09-11 15:46:35 -0400 -Branch: REL9_4_STABLE [86e247583] 2018-09-12 12:24:11 -0400 -Branch: REL9_3_STABLE [520711d6e] 2018-09-12 12:25:57 -0400 ---> - <para> - Support building on Windows with Visual Studio 2015 or Visual Studio 2017 - (Michael Paquier, Haribabu Kommi) - </para> - </listitem> - - <listitem> - <para> - Allow btree comparison functions to return <literal>INT_MIN</literal> - (Tom Lane) - </para> - - <para> - Up to now, we've forbidden datatype-specific comparison functions from - returning <literal>INT_MIN</literal>, which allows callers to invert - the sort order just by negating the comparison result. However, this - was never safe for comparison functions that directly return the - result of <function>memcmp()</function>, <function>strcmp()</function>, - etc, as POSIX doesn't place any such restriction on those functions. - At least some recent versions of <function>memcmp()</function> can - return <literal>INT_MIN</literal>, causing incorrect sort ordering. - Hence, we've removed this restriction. Callers must now use - the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to - invert the sort order. - </para> - </listitem> - - <listitem> - <para> - Fix recursion hazard in shared-invalidation message processing - (Tom Lane) - </para> - - <para> - This error could, for example, result in failure to access a system - catalog or index that had just been processed by <command>VACUUM - FULL</command>. - </para> - - <para> - This change adds a new result code - for <function>LockAcquire</function>, which might possibly affect - external callers of that function, though only very unusual usage - patterns would have an issue with it. The API - of <function>LockAcquireExtended</function> is also changed. - </para> - </listitem> - - <listitem> - <para> - Save and restore SPI's global variables - during <function>SPI_connect()</function> - and <function>SPI_finish()</function> (Chapman Flack, Tom Lane) - </para> - - <para> - This prevents possible interference when one SPI-using function calls - another. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [1245561df] 2018-10-12 14:49:33 -0400 -Branch: REL9_4_STABLE [ec185747a] 2018-10-12 14:49:33 -0400 -Branch: REL9_3_STABLE [01187f32c] 2018-10-12 14:49:33 -0400 ---> - <para> - Provide <literal>ALLOCSET_DEFAULT_SIZES</literal> and sibling macros - in back branches (Tom Lane) - </para> - - <para> - These macros have existed since 9.6, but there were requests to add - them to older branches to allow extensions to rely on them without - branch-specific coding. - </para> - </listitem> - - <listitem> - <para> - Avoid using potentially-under-aligned page buffers (Tom Lane) - </para> - - <para> - Invent new union types <type>PGAlignedBlock</type> - and <type>PGAlignedXLogBlock</type>, and use these in place of plain - char arrays, ensuring that the compiler can't place the buffer at a - misaligned start address. This fixes potential core dumps on - alignment-picky platforms, and may improve performance even on - platforms that allow misalignment. - </para> - </listitem> - - <listitem> - <para> - Make <filename>src/port/snprintf.c</filename> follow the C99 - standard's definition of <function>snprintf()</function>'s result - value (Tom Lane) - </para> - - <para> - On platforms where this code is used (mostly Windows), its pre-C99 - behavior could lead to failure to detect buffer overrun, if the - calling code assumed C99 semantics. - </para> - </listitem> - - <listitem> - <para> - When building on i386 with the <application>clang</application> - compiler, require <option>-msse2</option> to be used (Andres Freund) - </para> - - <para> - This avoids problems with missed floating point overflow checks. - </para> - </listitem> - - <listitem> - <para> - Fix <application>configure</application>'s detection of the result - type of <function>strerror_r()</function> (Tom Lane) - </para> - - <para> - The previous coding got the wrong answer when building - with <application>icc</application> on Linux (and perhaps in other - cases), leading to <application>libpq</application> not returning - useful error messages for system-reported errors. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia - (Volgograd), plus historical corrections for China, Hawaii, Japan, - Macau, and North Korea. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-14"> - <title>Release 9.5.14</title> - - <formalpara> - <title>Release date:</title> - <para>2018-08-09</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.13. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.14</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.5.13, - see <xref linkend="release-9-5-13"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix failure to reset <application>libpq</application>'s state fully - between connection attempts (Tom Lane) - </para> - - <para> - An unprivileged user of <filename>dblink</filename> - or <filename>postgres_fdw</filename> could bypass the checks intended - to prevent use of server-side credentials, such as - a <filename>~/.pgpass</filename> file owned by the operating-system - user running the server. Servers allowing peer authentication on - local connections are particularly vulnerable. Other attacks such - as SQL injection into a <filename>postgres_fdw</filename> session - are also possible. - Attacking <filename>postgres_fdw</filename> in this way requires the - ability to create a foreign server object with selected connection - parameters, but any user with access to <filename>dblink</filename> - could exploit the problem. - In general, an attacker with the ability to select the connection - parameters for a <application>libpq</application>-using application - could cause mischief, though other plausible attack scenarios are - harder to think of. - Our thanks to Andrew Krasichkov for reporting this issue. - (CVE-2018-10915) - </para> - </listitem> - - <listitem> - <para> - Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view - that isn't just <literal>SELECT * FROM ...</literal> - (Dean Rasheed, Amit Langote) - </para> - - <para> - Erroneous expansion of an updatable view could lead to crashes - or <quote>attribute ... has the wrong type</quote> errors, if the - view's <literal>SELECT</literal> list doesn't match one-to-one with - the underlying table's columns. - Furthermore, this bug could be leveraged to allow updates of columns - that an attacking user lacks <literal>UPDATE</literal> privilege for, - if that user has <literal>INSERT</literal> and <literal>UPDATE</literal> - privileges for some other column(s) of the table. - Any user could also use it for disclosure of server memory. - (CVE-2018-10925) - </para> - </listitem> - - <listitem> - <para> - Ensure that updates to the <structfield>relfrozenxid</structfield> - and <structfield>relminmxid</structfield> values - for <quote>nailed</quote> system catalogs are processed in a timely - fashion (Andres Freund) - </para> - - <para> - Overoptimistic caching rules could prevent these updates from being - seen by other sessions, leading to spurious errors and/or data - corruption. The problem was significantly worse for shared catalogs, - such as <structname>pg_authid</structname>, because the stale cache - data could persist into new sessions as well as existing ones. - </para> - </listitem> - - <listitem> - <para> - Fix case where a freshly-promoted standby crashes before having - completed its first post-recovery checkpoint (Michael Paquier, Kyotaro - Horiguchi, Pavan Deolasee, Álvaro Herrera) - </para> - - <para> - This led to a situation where the server did not think it had reached - a consistent database state during subsequent WAL replay, preventing - restart. - </para> - </listitem> - - <listitem> - <para> - Avoid emitting a bogus WAL record when recycling an all-zero btree - page (Amit Kapila) - </para> - - <para> - This mistake has been seen to cause assertion failures, and - potentially it could result in unnecessary query cancellations on hot - standby servers. - </para> - </listitem> - - <listitem> - <para> - During WAL replay, guard against corrupted record lengths exceeding - 1GB (Michael Paquier) - </para> - - <para> - Treat such a case as corrupt data. Previously, the code would try to - allocate space and get a hard error, making recovery impossible. - </para> - </listitem> - - <listitem> - <para> - When ending recovery, delay writing the timeline history file as long - as possible (Heikki Linnakangas) - </para> - - <para> - This avoids some situations where a failure during recovery cleanup - (such as a problem with a two-phase state file) led to inconsistent - timeline state on-disk. - </para> - </listitem> - - <listitem> - <para> - Improve performance of WAL replay for transactions that drop many - relations (Fujii Masao) - </para> - - <para> - This change reduces the number of times that shared buffers are - scanned, so that it is of most benefit when that setting is large. - </para> - </listitem> - - <listitem> - <para> - Improve performance of lock releasing in standby server WAL replay - (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Make logical WAL senders report streaming state correctly (Simon - Riggs, Sawada Masahiko) - </para> - - <para> - The code previously mis-detected whether or not it had caught up with - the upstream server. - </para> - </listitem> - - <listitem> - <para> - Fix bugs in snapshot handling during logical decoding, allowing wrong - decoding results in rare cases (Arseny Sher, Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Ensure a table's cached index list is correctly rebuilt after an index - creation fails partway through (Peter Geoghegan) - </para> - - <para> - Previously, the failed index's OID could remain in the list, causing - problems later in the same session. - </para> - </listitem> - - <listitem> - <para> - Fix mishandling of empty uncompressed posting list pages in GIN - indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov) - </para> - - <para> - This could result in an assertion failure after pg_upgrade of a - pre-9.4 GIN index (9.4 and later will not create such pages). - </para> - </listitem> - - <listitem> - <para> - Ensure that <command>VACUUM</command> will respond to signals - within btree page deletion loops (Andres Freund) - </para> - - <para> - Corrupted btree indexes could result in an infinite loop here, and - that previously wasn't interruptible without forcing a crash. - </para> - </listitem> - - <listitem> - <para> - Fix misoptimization of equivalence classes involving composite-type - columns (Tom Lane) - </para> - - <para> - This resulted in failure to recognize that an index on a composite - column could provide the sort order needed for a mergejoin on that - column. - </para> - </listitem> - - <listitem> - <para> - Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow - parameters (<literal>$<replaceable>n</replaceable></literal>), as the - standard expects (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix failure to schema-qualify some object names - in <function>getObjectDescription</function> output - (Kyotaro Horiguchi, Tom Lane) - </para> - - <para> - Names of collations, conversions, and text search objects - were not schema-qualified when they should be. - </para> - </listitem> - - <listitem> - <para> - Widen <command>COPY FROM</command>'s current-line-number counter - from 32 to 64 bits (David Rowley) - </para> - - <para> - This avoids two problems with input exceeding 4G lines: <literal>COPY - FROM WITH HEADER</literal> would drop a line every 4G lines, not only - the first line, and error reports could show a wrong line number. - </para> - </listitem> - - <listitem> - <para> - Add a string freeing function - to <application>ecpg</application>'s <filename>pgtypes</filename> - library, so that cross-module memory management problems can be - avoided on Windows (Takayuki Tsunakawa) - </para> - - <para> - On Windows, crashes can ensue if the <function>free</function> call - for a given chunk of memory is not made from the same DLL - that <function>malloc</function>'ed the memory. - The <filename>pgtypes</filename> library sometimes returns strings - that it expects the caller to free, making it impossible to follow - this rule. Add a <function>PGTYPESchar_free()</function> function - that just wraps <function>free</function>, allowing applications - to follow this rule. - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application>'s support for <type>long - long</type> variables on Windows, as well as other platforms that - declare <function>strtoll</function>/<function>strtoull</function> - nonstandardly or not at all (Dang Minh Huong, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix misidentification of SQL statement type in PL/pgSQL, when a rule - change causes a change in the semantics of a statement intra-session - (Tom Lane) - </para> - - <para> - This error led to assertion failures, or in rare cases, failure to - enforce the <literal>INTO STRICT</literal> option as expected. - </para> - </listitem> - - <listitem> - <para> - Fix password prompting in client programs so that echo is properly - disabled on Windows when <literal>stdin</literal> is not the - terminal (Matthew Stickney) - </para> - </listitem> - - <listitem> - <para> - Further fix mis-quoting of values for list-valued GUC variables in - dumps (Tom Lane) - </para> - - <para> - The previous fix for quoting of <varname>search_path</varname> and - other list-valued variables in <application>pg_dump</application> - output turned out to misbehave for empty-string list elements, and it - risked truncation of long file paths. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application>'s failure to - dump <literal>REPLICA IDENTITY</literal> properties for constraint - indexes (Tom Lane) - </para> - - <para> - Manually created unique indexes were properly marked, but not those - created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY - KEY</literal> constraints. - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_upgrade</application> check that the old server - was shut down cleanly (Bruce Momjian) - </para> - - <para> - The previous check could be fooled by an immediate-mode shutdown. - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/hstore_plperl</filename> to look through Perl - scalar references, and to not crash if it doesn't find a hash - reference where it expects one (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix crash in <filename>contrib/ltree</filename>'s - <function>lca()</function> function when the input array is empty - (Pierre Ducroquet) - </para> - </listitem> - - <listitem> - <para> - Fix various error-handling code paths in which an incorrect error code - might be reported (Michael Paquier, Tom Lane, Magnus Hagander) - </para> - </listitem> - - <listitem> - <para> - Rearrange makefiles to ensure that programs link to freshly-built - libraries (such as <filename>libpq.so</filename>) rather than ones - that might exist in the system library directories (Tom Lane) - </para> - - <para> - This avoids problems when building on platforms that supply old copies - of <productname>PostgreSQL</productname> libraries. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018e for DST law changes in North Korea, plus historical - corrections for Czechoslovakia. - </para> - - <para> - This update includes a redefinition of <quote>daylight savings</quote> - in Ireland, as well as for some past years in Namibia and - Czechoslovakia. In those jurisdictions, legally standard time is - observed in summer, and daylight savings time in winter, so that the - daylight savings offset is one hour behind standard time not one hour - ahead. This does not affect either the actual UTC offset or the - timezone abbreviations in use; the only known effect is that - the <structfield>is_dst</structfield> column in - the <structname>pg_timezone_names</structname> view will now be true - in winter and false in summer in these cases. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-13"> - <title>Release 9.5.13</title> - - <formalpara> - <title>Release date:</title> - <para>2018-05-10</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.12. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.13</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if the function marking mistakes mentioned in the first - changelog entry below affect you, you will want to take steps to - correct your database catalogs. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.12, - see <xref linkend="release-9-5-12"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix incorrect volatility markings on a few built-in functions - (Thomas Munro, Tom Lane) - </para> - - <para> - The functions - <function>query_to_xml</function>, - <function>cursor_to_xml</function>, - <function>cursor_to_xmlschema</function>, - <function>query_to_xmlschema</function>, and - <function>query_to_xml_and_xmlschema</function> - should be marked volatile because they execute user-supplied queries - that might contain volatile operations. They were not, leading to a - risk of incorrect query optimization. This has been repaired for new - installations by correcting the initial catalog data, but existing - installations will continue to contain the incorrect markings. - Practical use of these functions seems to pose little hazard, but in - case of trouble, it can be fixed by manually updating these - functions' <structname>pg_proc</structname> entries, for example - <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, - boolean, text) VOLATILE</literal>. (Note that that will need to be - done in each database of the installation.) Another option is - to <application>pg_upgrade</application> the database to a version - containing the corrected initial data. - </para> - </listitem> - - <listitem> - <para> - Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed - TOAST entries (Pavan Deolasee) - </para> - - <para> - Once the OID counter has wrapped around, it's possible to assign a - TOAST value whose OID matches a previously deleted entry in the same - TOAST table. If that entry were not yet vacuumed away, this resulted - in <quote>unexpected chunk number 0 (expected 1) for toast - value <replaceable>nnnnn</replaceable></quote> errors, which would - persist until the dead entry was removed - by <command>VACUUM</command>. Fix by not selecting such OIDs when - creating a new TOAST entry. - </para> - </listitem> - - <listitem> - <para> - Change <command>ANALYZE</command>'s algorithm for updating - <structname>pg_class</structname>.<structfield>reltuples</structfield> - (David Gould) - </para> - - <para> - Previously, pages not actually scanned by <command>ANALYZE</command> - were assumed to retain their old tuple density. In a large table - where <command>ANALYZE</command> samples only a small fraction of the - pages, this meant that the overall tuple density estimate could not - change very much, so that <structfield>reltuples</structfield> would - change nearly proportionally to changes in the table's physical size - (<structfield>relpages</structfield>) regardless of what was actually - happening in the table. This has been observed to result - in <structfield>reltuples</structfield> becoming so much larger than - reality as to effectively shut off autovacuuming. To fix, assume - that <command>ANALYZE</command>'s sample is a statistically unbiased - sample of the table (as it should be), and just extrapolate the - density observed within those pages to the whole table. - </para> - </listitem> - - <listitem> - <para> - Avoid deadlocks in concurrent <command>CREATE INDEX - CONCURRENTLY</command> commands that are run - under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE - READ</literal> transaction isolation (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW - CONCURRENTLY</command> (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail - when the referenced cursor uses an index-only-scan plan (Yugo Nagata, - Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix incorrect planning of join clauses pushed into parameterized - paths (Andrew Gierth, Tom Lane) - </para> - - <para> - This error could result in misclassifying a condition as - a <quote>join filter</quote> for an outer join when it should be a - plain <quote>filter</quote> condition, leading to incorrect join - output. - </para> - </listitem> - - <listitem> - <para> - Fix possibly incorrect generation of an index-only-scan plan when the - same table column appears in multiple index columns, and only some of - those index columns use operator classes that can return the column - value (Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> - <para> - Fix misoptimization of <literal>CHECK</literal> constraints having - provably-NULL subclauses of - top-level <literal>AND</literal>/<literal>OR</literal> conditions - (Tom Lane, Dean Rasheed) - </para> - - <para> - This could, for example, allow constraint exclusion to exclude a - child table that should not be excluded from a query. - </para> - </listitem> - - <listitem> - <para> - Fix executor crash due to double free in some <literal>GROUPING - SET</literal> usages (Peter Geoghegan) - </para> - </listitem> - - <listitem> - <para> - Avoid crash if a table rewrite event trigger is added concurrently - with a command that could call such a trigger (Álvaro Herrera, - Andrew Gierth, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Avoid failure if a query-cancel or session-termination interrupt - occurs while committing a prepared transaction (Stas Kelvich) - </para> - </listitem> - - <listitem> - <para> - Fix query-lifespan memory leakage in repeatedly executed hash joins - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix overly strict sanity check - in <function>heap_prepare_freeze_tuple</function> - (Álvaro Herrera) - </para> - - <para> - This could result in incorrect <quote>cannot freeze committed - xmax</quote> failures in databases that have - been <application>pg_upgrade</application>'d from 9.2 or earlier. - </para> - </listitem> - - <listitem> - <para> - Prevent dangling-pointer dereference when a C-coded before-update row - trigger returns the <quote>old</quote> tuple (Rushabh Lathia) - </para> - </listitem> - - <listitem> - <para> - Reduce locking during autovacuum worker scheduling (Jeff Janes) - </para> - - <para> - The previous behavior caused drastic loss of potential worker - concurrency in databases with many tables. - </para> - </listitem> - - <listitem> - <para> - Ensure client hostname is copied while copying - <structname>pg_stat_activity</structname> data to local memory - (Edmund Horner) - </para> - - <para> - Previously the supposedly-local snapshot contained a pointer into - shared memory, allowing the client hostname column to change - unexpectedly if any existing session disconnected. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect processing of multiple compound affixes - in <literal>ispell</literal> dictionaries (Arthur Zakirov) - </para> - </listitem> - - <listitem> - <para> - Fix collation-aware searches (that is, indexscans using inequality - operators) in SP-GiST indexes on text columns (Tom Lane) - </para> - - <para> - Such searches would return the wrong set of rows in most non-C - locales. - </para> - </listitem> - - <listitem> - <para> - Count the number of index tuples correctly during initial build of an - SP-GiST index (Tomas Vondra) - </para> - - <para> - Previously, the tuple count was reported to be the same as that of - the underlying table, which is wrong if the index is partial. - </para> - </listitem> - - <listitem> - <para> - Count the number of index tuples correctly during vacuuming of a - GiST index (Andrey Borodin) - </para> - - <para> - Previously it reported the estimated number of heap tuples, - which might be inaccurate, and is certainly wrong if the - index is partial. - </para> - </listitem> - - <listitem> - <para> - Fix a corner case where a streaming standby gets stuck at a WAL - continuation record (Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> - <para> - In logical decoding, avoid possible double processing of WAL data - when a walsender restarts (Craig Ringer) - </para> - </listitem> - - <listitem> - <para> - Allow <function>scalarltsel</function> - and <function>scalargtsel</function> to be used on non-core datatypes - (Tomas Vondra) - </para> - </listitem> - - <listitem> - <para> - Reduce <application>libpq</application>'s memory consumption when a - server error is reported after a large amount of query output has - been collected (Tom Lane) - </para> - - <para> - Discard the previous output before, not after, processing the error - message. On some platforms, notably Linux, this can make a - difference in the application's subsequent memory footprint. - </para> - </listitem> - - <listitem> - <para> - Fix double-free crashes in <application>ecpg</application> - (Patrick Krecker, Jeevan Ladhe) - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application> to handle <type>long long - int</type> variables correctly in MSVC builds (Michael Meskes, - Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix mis-quoting of values for list-valued GUC variables in dumps - (Michael Paquier, Tom Lane) - </para> - - <para> - The <varname>local_preload_libraries</varname>, - <varname>session_preload_libraries</varname>, - <varname>shared_preload_libraries</varname>, - and <varname>temp_tablespaces</varname> variables were not correctly - quoted in <application>pg_dump</application> output. This would - cause problems if settings for these variables appeared in - <command>CREATE FUNCTION ... SET</command> or <command>ALTER - DATABASE/ROLE ... SET</command> clauses. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_recvlogical</application> to not fail against - pre-v10 <productname>PostgreSQL</productname> servers - (Michael Paquier) - </para> - - <para> - A previous fix caused <application>pg_recvlogical</application> to - issue a command regardless of server version, but it should only be - issued to v10 and later servers. - </para> - </listitem> - - <listitem> - <para> - Ensure that <application>pg_rewind</application> deletes files on the - target server if they are deleted from the source server during the - run (Takayuki Tsunakawa) - </para> - - <para> - Failure to do this could result in data inconsistency on the target, - particularly if the file in question is a WAL segment. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_rewind</application> to handle tables in - non-default tablespaces correctly (Takayuki Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Fix overflow handling in <application>PL/pgSQL</application> - integer <command>FOR</command> loops (Tom Lane) - </para> - - <para> - The previous coding failed to detect overflow of the loop variable - on some non-gcc compilers, leading to an infinite loop. - </para> - </listitem> - - <listitem> - <para> - Adjust <application>PL/Python</application> regression tests to pass - under Python 3.7 (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Support testing <application>PL/Python</application> and related - modules when building with Python 3 and MSVC (Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [3c0e07a46] 2018-05-01 12:02:41 -0400 ---> - <para> - Support building with Microsoft Visual Studio 2015 (Michael Paquier) - </para> - - <para> - Various fixes needed for VS2015 compatibility were previously - back-patched into the 9.5 branch, but this one was missed. - </para> - </listitem> - - <listitem> - <para> - Rename internal <function>b64_encode</function> - and <function>b64_decode</function> functions to avoid conflict with - Solaris 11.4 built-in functions (Rainer Orth) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA tzcode release 2018e - (Tom Lane) - </para> - - <para> - This fixes the <application>zic</application> timezone data compiler - to cope with negative daylight-savings offsets. While - the <productname>PostgreSQL</productname> project will not - immediately ship such timezone data, <application>zic</application> - might be used with timezone data obtained directly from IANA, so it - seems prudent to update <application>zic</application> now. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018d for DST law changes in Palestine and Antarctica (Casey - Station), plus historical corrections for Portugal and its colonies, - as well as Enderbury, Jamaica, Turks & Caicos Islands, and - Uruguay. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-12"> - <title>Release 9.5.12</title> - - <formalpara> - <title>Release date:</title> - <para>2018-03-01</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.11. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.12</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you run an installation in which not all users are mutually - trusting, or if you maintain an application or extension that is - intended for use in arbitrary situations, it is strongly recommended - that you read the documentation changes described in the first changelog - entry below, and take suitable steps to ensure that your installation or - code is secure. - </para> - - <para> - Also, the changes described in the second changelog entry below may - cause functions used in index expressions or materialized views to fail - during auto-analyze, or when reloading from a dump. After upgrading, - monitor the server logs for such problems, and fix affected functions. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.10, - see <xref linkend="release-9-5-10"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Document how to configure installations and applications to guard - against search-path-dependent trojan-horse attacks from other users - (Noah Misch) - </para> - - <para> - Using a <varname>search_path</varname> setting that includes any - schemas writable by a hostile user enables that user to capture - control of queries and then run arbitrary SQL code with the - permissions of the attacked user. While it is possible to write - queries that are proof against such hijacking, it is notationally - tedious, and it's very easy to overlook holes. Therefore, we now - recommend configurations in which no untrusted schemas appear in - one's search path. Relevant documentation appears in - <xref linkend="ddl-schemas-patterns"/> (for database administrators and users), - <xref linkend="libpq-connect"/> (for application authors), - <xref linkend="extend-extensions-style"/> (for extension authors), and - <xref linkend="sql-createfunction"/> (for authors - of <literal>SECURITY DEFINER</literal> functions). - (CVE-2018-1058) - </para> - </listitem> - - <listitem> - <para> - Avoid use of insecure <varname>search_path</varname> settings - in <application>pg_dump</application> and other client programs - (Noah Misch, Tom Lane) - </para> - - <para> - <application>pg_dump</application>, - <application>pg_upgrade</application>, - <application>vacuumdb</application> and - other <productname>PostgreSQL</productname>-provided applications were - themselves vulnerable to the type of hijacking described in the previous - changelog entry; since these applications are commonly run by - superusers, they present particularly attractive targets. To make them - secure whether or not the installation as a whole has been secured, - modify them to include only the <structname>pg_catalog</structname> - schema in their <varname>search_path</varname> settings. - Autovacuum worker processes now do the same, as well. - </para> - - <para> - In cases where user-provided functions are indirectly executed by - these programs — for example, user-provided functions in index - expressions — the tighter <varname>search_path</varname> may - result in errors, which will need to be corrected by adjusting those - user-provided functions to not assume anything about what search path - they are invoked under. That has always been good practice, but now - it will be necessary for correct behavior. - (CVE-2018-1058) - </para> - </listitem> - - <listitem> - <para> - Fix misbehavior of concurrent-update rechecks with CTE references - appearing in subplans (Tom Lane) - </para> - - <para> - If a CTE (<literal>WITH</literal> clause reference) is used in an - InitPlan or SubPlan, and the query requires a recheck due to trying - to update or lock a concurrently-updated row, incorrect results could - be obtained. - </para> - </listitem> - - <listitem> - <para> - Fix planner failures with overlapping mergejoin clauses in an outer - join (Tom Lane) - </para> - - <para> - These mistakes led to <quote>left and right pathkeys do not match in - mergejoin</quote> or <quote>outer pathkeys do not match - mergeclauses</quote> planner errors in corner cases. - </para> - </listitem> - - <listitem> - <para> - Repair <application>pg_upgrade</application>'s failure to - preserve <structfield>relfrozenxid</structfield> for materialized - views (Tom Lane, Andres Freund) - </para> - - <para> - This oversight could lead to data corruption in materialized views - after an upgrade, manifesting as <quote>could not access status of - transaction</quote> or <quote>found xmin from before - relfrozenxid</quote> errors. The problem would be more likely to - occur in seldom-refreshed materialized views, or ones that were - maintained only with <command>REFRESH MATERIALIZED VIEW - CONCURRENTLY</command>. - </para> - - <para> - If such corruption is observed, it can be repaired by refreshing the - materialized view (without <literal>CONCURRENTLY</literal>). - </para> - </listitem> - - <listitem> - <para> - Fix incorrect reporting of PL/Python function names in - error <literal>CONTEXT</literal> stacks (Tom Lane) - </para> - - <para> - An error occurring within a nested PL/Python function call (that is, - one reached via a SPI query from another PL/Python function) would - result in a stack trace showing the inner function's name twice, - rather than the expected results. Also, an error in a nested - PL/Python <literal>DO</literal> block could result in a null pointer - dereference crash on some platforms. - </para> - </listitem> - - <listitem> - <para> - Allow <filename>contrib/auto_explain</filename>'s - <varname>log_min_duration</varname> setting to range up - to <literal>INT_MAX</literal>, or about 24 days instead of 35 minutes - (Tom Lane) - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-11"> - <title>Release 9.5.11</title> - - <formalpara> - <title>Release date:</title> - <para>2018-02-08</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.10. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.11</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.5.10, - see <xref linkend="release-9-5-10"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Ensure that all temporary files made - by <application>pg_upgrade</application> are non-world-readable - (Tom Lane, Noah Misch) - </para> - - <para> - <application>pg_upgrade</application> normally restricts its - temporary files to be readable and writable only by the calling user. - But the temporary file containing <literal>pg_dumpall -g</literal> - output would be group- or world-readable, or even writable, if the - user's <literal>umask</literal> setting allows. In typical usage on - multi-user machines, the <literal>umask</literal> and/or the working - directory's permissions would be tight enough to prevent problems; - but there may be people using <application>pg_upgrade</application> - in scenarios where this oversight would permit disclosure of database - passwords to unfriendly eyes. - (CVE-2018-1053) - </para> - </listitem> - - <listitem> - <para> - Fix vacuuming of tuples that were updated while key-share locked - (Andres Freund, Álvaro Herrera) - </para> - - <para> - In some cases <command>VACUUM</command> would fail to remove such - tuples even though they are now dead, leading to assorted data - corruption scenarios. - </para> - </listitem> - - <listitem> - <para> - Fix inadequate buffer locking in some LSN fetches (Jacob Champion, - Asim Praveen, Ashwin Agrawal) - </para> - - <para> - These errors could result in misbehavior under concurrent load. - The potential consequences have not been characterized fully. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect query results from cases involving flattening of - subqueries whose outputs are used in <literal>GROUPING SETS</literal> - (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Avoid unnecessary failure in a query on an inheritance tree that - occurs concurrently with some child table being removed from the tree - by <command>ALTER TABLE NO INHERIT</command> (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix spurious deadlock failures when multiple sessions are - running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes) - </para> - </listitem> - - <listitem> - <para> - Fix failures when an inheritance tree contains foreign child tables - (Etsuro Fujita) - </para> - - <para> - A mix of regular and foreign tables in an inheritance tree resulted in - creation of incorrect plans for <command>UPDATE</command> - and <command>DELETE</command> queries. This led to visible failures in - some cases, notably when there are row-level triggers on a foreign - child table. - </para> - </listitem> - - <listitem> - <para> - Repair failure with correlated sub-<literal>SELECT</literal> - inside <literal>VALUES</literal> inside a <literal>LATERAL</literal> - subquery (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <quote>could not devise a query plan for the given query</quote> - planner failure for some cases involving nested <literal>UNION - ALL</literal> inside a lateral subquery (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix logical decoding to correctly clean up disk files for crashed - transactions (Atsushi Torikoshi) - </para> - - <para> - Logical decoding may spill WAL records to disk for transactions - generating many WAL records. Normally these files are cleaned up - after the transaction's commit or abort record arrives; but if - no such record is ever seen, the removal code misbehaved. - </para> - </listitem> - - <listitem> - <para> - Fix walsender timeout failure and failure to respond to interrupts - when processing a large transaction (Petr Jelinek) - </para> - </listitem> - - <listitem> - <para> - Fix <function>has_sequence_privilege()</function> to - support <literal>WITH GRANT OPTION</literal> tests, - as other privilege-testing functions do (Joe Conway) - </para> - </listitem> - - <listitem> - <para> - In databases using UTF8 encoding, ignore any XML declaration that - asserts a different encoding (Pavel Stehule, Noah Misch) - </para> - - <para> - We always store XML strings in the database encoding, so allowing - libxml to act on a declaration of another encoding gave wrong results. - In encodings other than UTF8, we don't promise to support non-ASCII - XML data anyway, so retain the previous behavior for bug compatibility. - This change affects only <function>xpath()</function> and related - functions; other XML code paths already acted this way. - </para> - </listitem> - - <listitem> - <para> - Provide for forward compatibility with future minor protocol versions - (Robert Haas, Badrul Chowdhury) - </para> - - <para> - Up to now, <productname>PostgreSQL</productname> servers simply - rejected requests to use protocol versions newer than 3.0, so that - there was no functional difference between the major and minor parts - of the protocol version number. Allow clients to request versions 3.x - without failing, sending back a message showing that the server only - understands 3.0. This makes no difference at the moment, but - back-patching this change should allow speedier introduction of future - minor protocol upgrades. - </para> - </listitem> - - <listitem> - <para> - Cope with failure to start a parallel worker process - (Amit Kapila, Robert Haas) - </para> - - <para> - Parallel query previously tended to hang indefinitely if a worker - could not be started, as the result of <literal>fork()</literal> - failure or other low-probability problems. - </para> - </listitem> - - <listitem> - <para> - Avoid unsafe alignment assumptions when working - with <type>__int128</type> (Tom Lane) - </para> - - <para> - Typically, compilers assume that <type>__int128</type> variables are - aligned on 16-byte boundaries, but our memory allocation - infrastructure isn't prepared to guarantee that, and increasing the - setting of MAXALIGN seems infeasible for multiple reasons. Adjust the - code to allow use of <type>__int128</type> only when we can tell the - compiler to assume lesser alignment. The only known symptom of this - problem so far is crashes in some parallel aggregation queries. - </para> - </listitem> - - <listitem> - <para> - Prevent stack-overflow crashes when planning extremely deeply - nested set operations - (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>) - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix null-pointer crashes for some types of LDAP URLs appearing - in <filename>pg_hba.conf</filename> (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix sample <function>INSTR()</function> functions in the PL/pgSQL - documentation (Yugo Nagata, Tom Lane) - </para> - - <para> - These functions are stated to - be <trademark class="registered">Oracle</trademark> compatible, but - they weren't exactly. In particular, there was a discrepancy in the - interpretation of a negative third parameter: Oracle thinks that a - negative value indicates the last place where the target substring can - begin, whereas our functions took it as the last place where the - target can end. Also, Oracle throws an error for a zero or negative - fourth parameter, whereas our functions returned zero. - </para> - - <para> - The sample code has been adjusted to match Oracle's behavior more - precisely. Users who have copied this code into their applications - may wish to update their copies. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> to make ACL (permissions), - comment, and security label entries reliably identifiable in archive - output formats (Tom Lane) - </para> - - <para> - The <quote>tag</quote> portion of an ACL archive entry was usually - just the name of the associated object. Make it start with the object - type instead, bringing ACLs into line with the convention already used - for comment and security label archive entries. Also, fix the - comment and security label entries for the whole database, if present, - to make their tags start with <literal>DATABASE</literal> so that they - also follow this convention. This prevents false matches in code that - tries to identify large-object-related entries by seeing if the tag - starts with <literal>LARGE OBJECT</literal>. That could have resulted - in misclassifying entries as data rather than schema, with undesirable - results in a schema-only or data-only dump. - </para> - - <para> - Note that this change has user-visible results in the output - of <command>pg_restore --list</command>. - </para> - </listitem> - - <listitem> - <para> - Rename <application>pg_rewind</application>'s - <function>copy_file_range</function> function to avoid conflict - with new Linux system call of that name (Andres Freund) - </para> - - <para> - This change prevents build failures with newer glibc versions. - </para> - </listitem> - - <listitem> - <para> - In <application>ecpg</application>, detect indicator arrays that do - not have the correct length and report an error (David Rader) - </para> - </listitem> - - <listitem> - <para> - Avoid triggering a libc assertion - in <filename>contrib/hstore</filename>, due to use - of <function>memcpy()</function> with equal source and destination - pointers (Tomas Vondra) - </para> - </listitem> - - <listitem> - <para> - Provide modern examples of how to auto-start Postgres on macOS - (Tom Lane) - </para> - - <para> - The scripts in <filename>contrib/start-scripts/osx</filename> use - infrastructure that's been deprecated for over a decade, and which no - longer works at all in macOS releases of the last couple of years. - Add a new subdirectory <filename>contrib/start-scripts/macos</filename> - containing scripts that use the newer <application>launchd</application> - infrastructure. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect selection of configuration-specific libraries for - OpenSSL on Windows (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Support linking to MinGW-built versions of libperl (Noah Misch) - </para> - - <para> - This allows building PL/Perl with some common Perl distributions for - Windows. - </para> - </listitem> - - <listitem> - <para> - Fix MSVC build to test whether 32-bit libperl - needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch) - </para> - - <para> - Available Perl distributions are inconsistent about what they expect, - and lack any reliable means of reporting it, so resort to a build-time - test on what the library being used actually does. - </para> - </listitem> - - <listitem> - <para> - On Windows, install the crash dump handler earlier in postmaster - startup (Takayuki Tsunakawa) - </para> - - <para> - This may allow collection of a core dump for some early-startup - failures that did not produce a dump before. - </para> - </listitem> - - <listitem> - <para> - On Windows, avoid encoding-conversion-related crashes when emitting - messages very early in postmaster startup (Takayuki Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Use our existing Motorola 68K spinlock code on OpenBSD as - well as NetBSD (David Carlier) - </para> - </listitem> - - <listitem> - <para> - Add support for spinlocks on Motorola 88K (David Carlier) - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018c for DST law changes in Brazil, Sao Tome and Principe, - plus historical corrections for Bolivia, Japan, and South Sudan. - The <literal>US/Pacific-New</literal> zone has been removed (it was - only an alias for <literal>America/Los_Angeles</literal> anyway). - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-10"> - <title>Release 9.5.10</title> - - <formalpara> - <title>Release date:</title> - <para>2017-11-09</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.9. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.10</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you use BRIN indexes, see the fourth changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.8, - see <xref linkend="release-9-5-8"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Ensure that <literal>INSERT ... ON CONFLICT DO UPDATE</literal> checks - table permissions and RLS policies in all cases (Dean Rasheed) - </para> - - <para> - The update path of <literal>INSERT ... ON CONFLICT DO UPDATE</literal> - requires <literal>SELECT</literal> permission on the columns of the - arbiter index, but it failed to check for that in the case of an - arbiter specified by constraint name. - In addition, for a table with row level security enabled, it failed to - check updated rows against the table's <literal>SELECT</literal> - policies (regardless of how the arbiter index was specified). - (CVE-2017-15099) - </para> - </listitem> - - <listitem> - <para> - Fix crash due to rowtype mismatch - in <function>json{b}_populate_recordset()</function> - (Michael Paquier, Tom Lane) - </para> - - <para> - These functions used the result rowtype specified in the <literal>FROM - ... AS</literal> clause without checking that it matched the actual - rowtype of the supplied tuple value. If it didn't, that would usually - result in a crash, though disclosure of server memory contents seems - possible as well. - (CVE-2017-15098) - </para> - </listitem> - - <listitem> - <para> - Fix sample server-start scripts to become <literal>$PGUSER</literal> - before opening <literal>$PGLOG</literal> (Noah Misch) - </para> - - <para> - Previously, the postmaster log file was opened while still running as - root. The database owner could therefore mount an attack against - another system user by making <literal>$PGLOG</literal> be a symbolic - link to some other file, which would then become corrupted by appending - log messages. - </para> - - <para> - By default, these scripts are not installed anywhere. Users who have - made use of them will need to manually recopy them, or apply the same - changes to their modified versions. If the - existing <literal>$PGLOG</literal> file is root-owned, it will need to - be removed or renamed out of the way before restarting the server with - the corrected script. - (CVE-2017-12172) - </para> - </listitem> - - <listitem> - <para> - Fix BRIN index summarization to handle concurrent table extension - correctly (Álvaro Herrera) - </para> - - <para> - Previously, a race condition allowed some table rows to be omitted from - the index. It may be necessary to reindex existing BRIN indexes to - recover from past occurrences of this problem. - </para> - </listitem> - - <listitem> - <para> - Fix possible failures during concurrent updates of a BRIN index - (Tom Lane) - </para> - - <para> - These race conditions could result in errors like <quote>invalid index - offnum</quote> or <quote>inconsistent range map</quote>. - </para> - </listitem> - - <listitem> - <para> - Fix crash when logical decoding is invoked from a SPI-using function, - in particular any function written in a PL language - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <function>json_build_array()</function>, - <function>json_build_object()</function>, and their <type>jsonb</type> - equivalents to handle explicit <literal>VARIADIC</literal> arguments - correctly (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Properly reject attempts to convert infinite float values to - type <type>numeric</type> (Tom Lane, KaiGai Kohei) - </para> - - <para> - Previously the behavior was platform-dependent. - </para> - </listitem> - - <listitem> - <para> - Fix corner-case crashes when columns have been added to the end of a - view (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Record proper dependencies when a view or rule - contains <structname>FieldSelect</structname> - or <structname>FieldStore</structname> expression nodes (Tom Lane) - </para> - - <para> - Lack of these dependencies could allow a column or data - type <command>DROP</command> to go through when it ought to fail, - thereby causing later uses of the view or rule to get errors. - This patch does not do anything to protect existing views/rules, - only ones created in the future. - </para> - </listitem> - - <listitem> - <para> - Correctly detect hashability of range data types (Tom Lane) - </para> - - <para> - The planner mistakenly assumed that any range type could be hashed - for use in hash joins or hash aggregation, but actually it must check - whether the range's subtype has hash support. This does not affect any - of the built-in range types, since they're all hashable anyway. - </para> - </listitem> - - <listitem> - <para> - Correctly ignore <structname>RelabelType</structname> expression nodes - when determining relation distinctness (David Rowley) - </para> - - <para> - This allows the intended optimization to occur when a subquery has - a result column of type <type>varchar</type>. - </para> - </listitem> - - <listitem> - <para> - Fix low-probability loss of <command>NOTIFY</command> messages due to - XID wraparound (Marko Tiikkaja, Tom Lane) - </para> - - <para> - If a session executed no queries, but merely listened for - notifications, for more than 2 billion transactions, it started to miss - some notifications from concurrently-committing transactions. - </para> - </listitem> - - <listitem> - <para> - Avoid <systemitem>SIGBUS</systemitem> crash on Linux when a DSM memory - request exceeds the space available in <systemitem>tmpfs</systemitem> - (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Prevent low-probability crash in processing of nested trigger firings - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow <command>COPY</command>'s <literal>FREEZE</literal> option to - work when the transaction isolation level is <literal>REPEATABLE - READ</literal> or higher (Noah Misch) - </para> - - <para> - This case was unintentionally broken by a previous bug fix. - </para> - </listitem> - - <listitem> - <para> - Correctly restore the umask setting when file creation fails - in <command>COPY</command> or <function>lo_export()</function> - (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Give a better error message for duplicate column names - in <command>ANALYZE</command> (Nathan Bossart) - </para> - </listitem> - - <listitem> - <para> - Fix mis-parsing of the last line in a - non-newline-terminated <filename>pg_hba.conf</filename> file - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</application>'s matching of tablespace - paths to canonicalize both paths before comparing (Michael Paquier) - </para> - - <para> - This is particularly helpful on Windows. - </para> - </listitem> - - <listitem> - <para> - Fix <application>libpq</application> to not require user's home - directory to exist (Tom Lane) - </para> - - <para> - In v10, failure to find the home directory while trying to - read <filename>~/.pgpass</filename> was treated as a hard error, - but it should just cause that file to not be found. Both v10 and - previous release branches made the same mistake when - reading <filename>~/.pg_service.conf</filename>, though this was less - obvious since that file is not sought unless a service name is - specified. - </para> - </listitem> - - <listitem> - <para> - Fix <application>libpq</application> to guard against integer - overflow in the row count of a <structname>PGresult</structname> - (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application>'s handling of out-of-scope cursor - declarations with pointer or array variables (Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - In ecpglib, correctly handle backslashes in string literals depending - on whether <varname>standard_conforming_strings</varname> is set - (Tsunakawa Takayuki) - </para> - </listitem> - - <listitem> - <para> - Make ecpglib's Informix-compatibility mode ignore fractional digits in - integer input strings, as expected (Gao Zengqi, Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - Fix missing temp-install prerequisites - for <literal>check</literal>-like Make targets (Noah Misch) - </para> - - <para> - Some non-default test procedures that are meant to work - like <literal>make check</literal> failed to ensure that the temporary - installation was up to date. - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA release tzcode2017c - (Tom Lane) - </para> - - <para> - This fixes various issues; the only one likely to be user-visible - is that the default DST rules for a POSIX-style zone name, if - no <filename>posixrules</filename> file exists in the timezone data - directory, now match current US law rather than what it was a dozen - years ago. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus, - Sudan, Tonga, and Turks & Caicos Islands, plus historical - corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland, - Namibia, and Pago Pago. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-9"> - <title>Release 9.5.9</title> - - <formalpara> - <title>Release date:</title> - <para>2017-08-31</para> - </formalpara> - - <para> - This release contains a small number of fixes from 9.5.8. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.9</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.5.8, - see <xref linkend="release-9-5-8"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Show foreign tables - in <structname>information_schema</structname>.<structname>table_privileges</structname> - view (Peter Eisentraut) - </para> - - <para> - All other relevant <structname>information_schema</structname> views include - foreign tables, but this one ignored them. - </para> - - <para> - Since this view definition is installed by <application>initdb</application>, - merely upgrading will not fix the problem. If you need to fix this - in an existing installation, you can, as a superuser, do this - in <application>psql</application>: -<programlisting> -SET search_path TO information_schema; -CREATE OR REPLACE VIEW table_privileges AS - SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, - CAST(grantee.rolname AS sql_identifier) AS grantee, - CAST(current_database() AS sql_identifier) AS table_catalog, - CAST(nc.nspname AS sql_identifier) AS table_schema, - CAST(c.relname AS sql_identifier) AS table_name, - CAST(c.prtype AS character_data) AS privilege_type, - CAST( - CASE WHEN - -- object owner always has grant options - pg_has_role(grantee.oid, c.relowner, 'USAGE') - OR c.grantable - THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, - CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy - - FROM ( - SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class - ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), - pg_namespace nc, - pg_authid u_grantor, - ( - SELECT oid, rolname FROM pg_authid - UNION ALL - SELECT 0::oid, 'PUBLIC' - ) AS grantee (oid, rolname) - - WHERE c.relnamespace = nc.oid - AND c.relkind IN ('r', 'v', 'f') - AND c.grantee = grantee.oid - AND c.grantor = u_grantor.oid - AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') - AND (pg_has_role(u_grantor.oid, 'USAGE') - OR pg_has_role(grantee.oid, 'USAGE') - OR grantee.rolname = 'PUBLIC'); -</programlisting> - This must be repeated in each database to be fixed, - including <literal>template0</literal>. - </para> - </listitem> - - <listitem> - <para> - Clean up handling of a fatal exit (e.g., due to receipt - of <systemitem>SIGTERM</systemitem>) that occurs while trying to execute - a <command>ROLLBACK</command> of a failed transaction (Tom Lane) - </para> - - <para> - This situation could result in an assertion failure. In production - builds, the exit would still occur, but it would log an unexpected - message about <quote>cannot drop active portal</quote>. - </para> - </listitem> - - <listitem> - <para> - Remove assertion that could trigger during a fatal exit (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Correctly identify columns that are of a range type or domain type over - a composite type or domain type being searched for (Tom Lane) - </para> - - <para> - Certain <command>ALTER</command> commands that change the definition of a - composite type or domain type are supposed to fail if there are any - stored values of that type in the database, because they lack the - infrastructure needed to update or check such values. Previously, - these checks could miss relevant values that are wrapped inside range - types or sub-domains, possibly allowing the database to become - inconsistent. - </para> - </listitem> - - <listitem> - <para> - Fix crash in <application>pg_restore</application> when using parallel mode and - using a list file to select a subset of items to restore - (Fabrízio de Royes Mello) - </para> - </listitem> - - <listitem> - <para> - Change <application>ecpg</application>'s parser to allow <literal>RETURNING</literal> - clauses without attached C variables (Michael Meskes) - </para> - - <para> - This allows <application>ecpg</application> programs to contain SQL constructs - that use <literal>RETURNING</literal> internally (for example, inside a CTE) - rather than using it to define values to be returned to the client. - </para> - </listitem> - - <listitem> - <para> - Improve selection of compiler flags for PL/Perl on Windows (Tom Lane) - </para> - - <para> - This fix avoids possible crashes of PL/Perl due to inconsistent - assumptions about the width of <type>time_t</type> values. - A side-effect that may be visible to extension developers is - that <literal>_USE_32BIT_TIME_T</literal> is no longer defined globally - in <productname>PostgreSQL</productname> Windows builds. This is not expected - to cause problems, because type <type>time_t</type> is not used - in any <productname>PostgreSQL</productname> API definitions. - </para> - </listitem> - - <listitem> - <para> - Fix <literal>make check</literal> to behave correctly when invoked via a - non-GNU make program (Thomas Munro) - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-8"> - <title>Release 9.5.8</title> - - <formalpara> - <title>Release date:</title> - <para>2017-08-10</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.7. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.8</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you use foreign data servers that make use of user - passwords for authentication, see the first changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.7, - see <xref linkend="release-9-5-7"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Further restrict visibility - of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to - protect passwords stored as user mapping options - (Noah Misch) - </para> - - <para> - The fix for CVE-2017-7486 was incorrect: it allowed a user - to see the options in her own user mapping, even if she did not - have <literal>USAGE</literal> permission on the associated foreign server. - Such options might include a password that had been provided by the - server owner rather than the user herself. - Since <structname>information_schema.user_mapping_options</structname> does not - show the options in such cases, <structname>pg_user_mappings</structname> - should not either. - (CVE-2017-7547) - </para> - - <para> - By itself, this patch will only fix the behavior in newly initdb'd - databases. If you wish to apply this change in an existing database, - you will need to do the following: - </para> - - <procedure> - <step> - <para> - Restart the postmaster after adding <literal>allow_system_table_mods - = true</literal> to <filename>postgresql.conf</filename>. (In versions - supporting <command>ALTER SYSTEM</command>, you can use that to make the - configuration change, but you'll still need a restart.) - </para> - </step> - - <step> - <para> - In <emphasis>each</emphasis> database of the cluster, - run the following commands as superuser: -<programlisting> -SET search_path = pg_catalog; -CREATE OR REPLACE VIEW pg_user_mappings AS - SELECT - U.oid AS umid, - S.oid AS srvid, - S.srvname AS srvname, - U.umuser AS umuser, - CASE WHEN U.umuser = 0 THEN - 'public' - ELSE - A.rolname - END AS usename, - CASE WHEN (U.umuser <> 0 AND A.rolname = current_user - AND (pg_has_role(S.srvowner, 'USAGE') - OR has_server_privilege(S.oid, 'USAGE'))) - OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) - OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) - THEN U.umoptions - ELSE NULL END AS umoptions - FROM pg_user_mapping U - LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN - pg_foreign_server S ON (U.umserver = S.oid); -</programlisting> - </para> - </step> - - <step> - <para> - Do not forget to include the <literal>template0</literal> - and <literal>template1</literal> databases, or the vulnerability will still - exist in databases you create later. To fix <literal>template0</literal>, - you'll need to temporarily make it accept connections. - In <productname>PostgreSQL</productname> 9.5 and later, you can use -<programlisting> -ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; -</programlisting> - and then after fixing <literal>template0</literal>, undo that with -<programlisting> -ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; -</programlisting> - In prior versions, instead use -<programlisting> -UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; -UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; -</programlisting> - </para> - </step> - - <step> - <para> - Finally, remove the <literal>allow_system_table_mods</literal> configuration - setting, and again restart the postmaster. - </para> - </step> - </procedure> - </listitem> - - <listitem> - <para> - Disallow empty passwords in all password-based authentication methods - (Heikki Linnakangas) - </para> - - <para> - <application>libpq</application> ignores empty password specifications, and does - not transmit them to the server. So, if a user's password has been - set to the empty string, it's impossible to log in with that password - via <application>psql</application> or other <application>libpq</application>-based - clients. An administrator might therefore believe that setting the - password to empty is equivalent to disabling password login. - However, with a modified or non-<application>libpq</application>-based client, - logging in could be possible, depending on which authentication - method is configured. In particular the most common - method, <literal>md5</literal>, accepted empty passwords. - Change the server to reject empty passwords in all cases. - (CVE-2017-7546) - </para> - </listitem> - - <listitem> - <para> - Make <function>lo_put()</function> check for <literal>UPDATE</literal> privilege on - the target large object (Tom Lane, Michael Paquier) - </para> - - <para> - <function>lo_put()</function> should surely require the same permissions - as <function>lowrite()</function>, but the check was missing, allowing any - user to change the data in a large object. - (CVE-2017-7548) - </para> - </listitem> - - <listitem> - <para> - Correct the documentation about the process for upgrading standby - servers with <application>pg_upgrade</application> (Bruce Momjian) - </para> - - <para> - The previous documentation instructed users to start/stop the primary - server after running <application>pg_upgrade</application> but before syncing - the standby servers. This sequence is unsafe. - </para> - </listitem> - - <listitem> - <para> - Fix concurrent locking of tuple update chains (Álvaro Herrera) - </para> - - <para> - If several sessions concurrently lock a tuple update chain with - nonconflicting lock modes using an old snapshot, and they all - succeed, it was possible for some of them to nonetheless fail (and - conclude there is no live tuple version) due to a race condition. - This had consequences such as foreign-key checks failing to see a - tuple that definitely exists but is being updated concurrently. - </para> - </listitem> - - <listitem> - <para> - Fix potential data corruption when freezing a tuple whose XMAX is a - multixact with exactly one still-interesting member (Teodor Sigaev) - </para> - </listitem> - - <listitem> - <para> - Avoid integer overflow and ensuing crash when sorting more than one - billion tuples in-memory (Sergey Koposov) - </para> - </listitem> - - <listitem> - <para> - On Windows, retry process creation if we fail to reserve the address - range for our shared memory in the new process (Tom Lane, Amit - Kapila) - </para> - - <para> - This is expected to fix infrequent child-process-launch failures that - are probably due to interference from antivirus products. - </para> - </listitem> - - <listitem> - <para> - Fix low-probability corruption of shared predicate-lock hash table - in Windows builds (Thomas Munro, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Avoid logging clean closure of an SSL connection as though - it were a connection reset (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Prevent sending SSL session tickets to clients (Tom Lane) - </para> - - <para> - This fix prevents reconnection failures with ticket-aware client-side - SSL code. - </para> - </listitem> - - <listitem> - <para> - Fix code for setting <xref linkend="guc-tcp-keepalives-idle"/> on - Solaris (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix statistics collector to honor inquiry messages issued just after - a postmaster shutdown and immediate restart (Tom Lane) - </para> - - <para> - Statistics inquiries issued within half a second of the previous - postmaster shutdown were effectively ignored. - </para> - </listitem> - - <listitem> - <para> - Ensure that the statistics collector's receive buffer size is at - least 100KB (Tom Lane) - </para> - - <para> - This reduces the risk of dropped statistics data on older platforms - whose default receive buffer size is less than that. - </para> - </listitem> - - <listitem> - <para> - Fix possible creation of an invalid WAL segment when a standby is - promoted just after it processes an <literal>XLOG_SWITCH</literal> WAL - record (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Fix <application>walsender</application> to exit promptly when client requests - shutdown (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <systemitem>SIGHUP</systemitem> and <systemitem>SIGUSR1</systemitem> handling in - walsender processes (Petr Jelinek, Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Prevent walsender-triggered panics during shutdown checkpoints - (Andres Freund, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix unnecessarily slow restarts of <application>walreceiver</application> - processes due to race condition in postmaster (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix leakage of small subtransactions spilled to disk during logical - decoding (Andres Freund) - </para> - - <para> - This resulted in temporary files consuming excessive disk space. - </para> - </listitem> - - <listitem> - <para> - Reduce the work needed to build snapshots during creation of - logical-decoding slots (Andres Freund, Petr Jelinek) - </para> - - <para> - The previous algorithm was infeasibly expensive on a server with a - lot of open transactions. - </para> - </listitem> - - <listitem> - <para> - Fix race condition that could indefinitely delay creation of - logical-decoding slots (Andres Freund, Petr Jelinek) - </para> - </listitem> - - <listitem> - <para> - Reduce overhead in processing syscache invalidation events (Tom Lane) - </para> - - <para> - This is particularly helpful for logical decoding, which triggers - frequent cache invalidation. - </para> - </listitem> - - <listitem> - <para> - Fix cases where an <command>INSERT</command> or <command>UPDATE</command> assigns - to more than one element of a column that is of domain-over-array - type (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow window functions to be used in sub-<literal>SELECT</literal>s that - are within the arguments of an aggregate function (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Move autogenerated array types out of the way during - <command>ALTER ... RENAME</command> (Vik Fearing) - </para> - - <para> - Previously, we would rename a conflicting autogenerated array type - out of the way during <command>CREATE</command>; this fix extends that - behavior to renaming operations. - </para> - </listitem> - - <listitem> - <para> - Fix dangling pointer in <command>ALTER TABLE</command> when there is a - comment on a constraint belonging to the table (David Rowley) - </para> - - <para> - Re-applying the comment to the reconstructed constraint could fail - with a weird error message, or even crash. - </para> - </listitem> - - <listitem> - <para> - Ensure that <command>ALTER USER ... SET</command> accepts all the syntax - variants that <command>ALTER ROLE ... SET</command> does (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Properly update dependency info when changing a datatype I/O - function's argument or return type from <type>opaque</type> to the - correct type (Heikki Linnakangas) - </para> - - <para> - <command>CREATE TYPE</command> updates I/O functions declared in this - long-obsolete style, but it forgot to record a dependency on the - type, allowing a subsequent <command>DROP TYPE</command> to leave broken - function definitions behind. - </para> - </listitem> - - <listitem> - <para> - Reduce memory usage when <command>ANALYZE</command> processes - a <type>tsvector</type> column (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Fix unnecessary precision loss and sloppy rounding when multiplying - or dividing <type>money</type> values by integers or floats (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Tighten checks for whitespace in functions that parse identifiers, - such as <function>regprocedurein()</function> (Tom Lane) - </para> - - <para> - Depending on the prevailing locale, these functions could - misinterpret fragments of multibyte characters as whitespace. - </para> - </listitem> - - <listitem> - <para> - Use relevant <literal>#define</literal> symbols from Perl while - compiling <application>PL/Perl</application> (Ashutosh Sharma, Tom Lane) - </para> - - <para> - This avoids portability problems, typically manifesting as - a <quote>handshake</quote> mismatch during library load, when working with - recent Perl versions. - </para> - </listitem> - - <listitem> - <para> - In <application>libpq</application>, reset GSS/SASL and SSPI authentication - state properly after a failed connection attempt (Michael Paquier) - </para> - - <para> - Failure to do this meant that when falling back from SSL to non-SSL - connections, a GSS/SASL failure in the SSL attempt would always cause - the non-SSL attempt to fail. SSPI did not fail, but it leaked memory. - </para> - </listitem> - - <listitem> - <para> - In <application>psql</application>, fix failure when <command>COPY FROM STDIN</command> - is ended with a keyboard EOF signal and then another <command>COPY - FROM STDIN</command> is attempted (Thomas Munro) - </para> - - <para> - This misbehavior was observed on BSD-derived platforms (including - macOS), but not on most others. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> and <application>pg_restore</application> to - emit <command>REFRESH MATERIALIZED VIEW</command> commands last (Tom Lane) - </para> - - <para> - This prevents errors during dump/restore when a materialized view - refers to tables owned by a different user. - </para> - </listitem> - - <listitem> - <para> - Improve <application>pg_dump</application>/<application>pg_restore</application>'s - reporting of error conditions originating in <application>zlib</application> - (Vladimir Kunschikov, Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> with the <option>--clean</option> option to - drop event triggers as expected (Tom Lane) - </para> - - <para> - It also now correctly assigns ownership of event triggers; before, - they were restored as being owned by the superuser running the - restore script. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> to not emit invalid SQL for an empty - operator class (Daniel Gustafsson) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> output to stdout on Windows (Kuntal Ghosh) - </para> - - <para> - A compressed plain-text dump written to stdout would contain corrupt - data due to failure to put the file descriptor into binary mode. - </para> - </listitem> - - <listitem> - <para> - Fix <function>pg_get_ruledef()</function> to print correct output for - the <literal>ON SELECT</literal> rule of a view whose columns have been - renamed (Tom Lane) - </para> - - <para> - In some corner cases, <application>pg_dump</application> relies - on <function>pg_get_ruledef()</function> to dump views, so that this error - could result in dump/reload failures. - </para> - </listitem> - - <listitem> - <para> - Fix dumping of outer joins with empty constraints, such as the result - of a <literal>NATURAL LEFT JOIN</literal> with no common columns (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix dumping of function expressions in the <literal>FROM</literal> clause in - cases where the expression does not deparse into something that looks - like a function call (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</application> output to stdout on Windows - (Haribabu Kommi) - </para> - - <para> - A backup written to stdout would contain corrupt data due to failure - to put the file descriptor into binary mode. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_rewind</application> to correctly handle files exceeding 2GB - (Kuntal Ghosh, Michael Paquier) - </para> - - <para> - Ordinarily such files won't appear in <productname>PostgreSQL</productname> data - directories, but they could be present in some cases. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</application> to ensure that the ending WAL record - does not have <xref linkend="guc-wal-level"/> = <literal>minimum</literal> - (Bruce Momjian) - </para> - - <para> - This condition could prevent upgraded standby servers from - reconnecting. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_xlogdump</application>'s computation of WAL record length - (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - In <filename>postgres_fdw</filename>, re-establish connections to remote - servers after <command>ALTER SERVER</command> or <command>ALTER USER - MAPPING</command> commands (Kyotaro Horiguchi) - </para> - - <para> - This ensures that option changes affecting connection parameters will - be applied promptly. - </para> - </listitem> - - <listitem> - <para> - In <filename>postgres_fdw</filename>, allow cancellation of remote - transaction control commands (Robert Haas, Rafia Sabih) - </para> - - <para> - This change allows us to quickly escape a wait for an unresponsive - remote server in many more cases than previously. - </para> - </listitem> - - <listitem> - <para> - Increase <literal>MAX_SYSCACHE_CALLBACKS</literal> to provide more room for - extensions (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Always use <option>-fPIC</option>, not <option>-fpic</option>, when building - shared libraries with gcc (Tom Lane) - </para> - - <para> - This supports larger extension libraries on platforms where it makes - a difference. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [af1f18259] 2017-08-02 15:07:20 -0400 -Branch: REL9_4_STABLE [8892170e7] 2017-08-02 15:07:20 -0400 -Branch: REL9_3_STABLE [3d9ae20e7] 2017-08-02 15:07:20 -0400 -Branch: REL9_2_STABLE [1188b9b2c] 2017-08-02 15:07:21 -0400 ---> - <para> - Fix unescaped-braces issue in our build scripts for Microsoft MSVC, - to avoid a warning or error from recent Perl versions (Andrew - Dunstan) - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, handle the case where the <application>OpenSSL</application> - library is not within a <filename>VC</filename> subdirectory (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, add proper include path for <application>libxml2</application> - header files (Andrew Dunstan) - </para> - - <para> - This fixes a former need to move things around in standard Windows - installations of <application>libxml2</application>. - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, recognize a Tcl library that is - named <filename>tcl86.lib</filename> (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, honor <literal>PROVE_FLAGS</literal> settings - on <filename>vcregress.pl</filename>'s command line (Andrew Dunstan) - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-7"> - <title>Release 9.5.7</title> - - <formalpara> - <title>Release date:</title> - <para>2017-05-11</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.6. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.7</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you use foreign data servers that make use of user - passwords for authentication, see the first changelog entry below. - </para> - - <para> - Also, if you are using third-party replication tools that depend - on <quote>logical decoding</quote>, see the fourth changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.6, - see <xref linkend="release-9-5-6"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Restrict visibility - of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to - protect passwords stored as user mapping options - (Michael Paquier, Feike Steenbergen) - </para> - - <para> - The previous coding allowed the owner of a foreign server object, - or anyone he has granted server <literal>USAGE</literal> permission to, - to see the options for all user mappings associated with that server. - This might well include passwords for other users. - Adjust the view definition to match the behavior of - <structname>information_schema.user_mapping_options</structname>, namely that - these options are visible to the user being mapped, or if the mapping - is for <literal>PUBLIC</literal> and the current user is the server - owner, or if the current user is a superuser. - (CVE-2017-7486) - </para> - - <para> - By itself, this patch will only fix the behavior in newly initdb'd - databases. If you wish to apply this change in an existing database, - follow the corrected procedure shown in the changelog entry for - CVE-2017-7547, in <xref linkend="release-9-5-8"/>. - </para> - </listitem> - - <listitem> - <para> - Prevent exposure of statistical information via leaky operators - (Peter Eisentraut) - </para> - - <para> - Some selectivity estimation functions in the planner will apply - user-defined operators to values obtained - from <structname>pg_statistic</structname>, such as most common values and - histogram entries. This occurs before table permissions are checked, - so a nefarious user could exploit the behavior to obtain these values - for table columns he does not have permission to read. To fix, - fall back to a default estimate if the operator's implementation - function is not certified leak-proof and the calling user does not have - permission to read the table column whose statistics are needed. - At least one of these criteria is satisfied in most cases in practice. - (CVE-2017-7484) - </para> - </listitem> - - <listitem> - <para> - Restore <application>libpq</application>'s recognition of - the <envar>PGREQUIRESSL</envar> environment variable (Daniel Gustafsson) - </para> - - <para> - Processing of this environment variable was unintentionally dropped - in <productname>PostgreSQL</productname> 9.3, but its documentation remained. - This creates a security hazard, since users might be relying on the - environment variable to force SSL-encrypted connections, but that - would no longer be guaranteed. Restore handling of the variable, - but give it lower priority than <envar>PGSSLMODE</envar>, to avoid - breaking configurations that work correctly with post-9.3 code. - (CVE-2017-7485) - </para> - </listitem> - - <listitem> - <para> - Fix possibly-invalid initial snapshot during logical decoding - (Petr Jelinek, Andres Freund) - </para> - - <para> - The initial snapshot created for a logical decoding replication slot - was potentially incorrect. This could cause third-party tools that - use logical decoding to copy incomplete/inconsistent initial data. - This was more likely to happen if the source server was busy at the - time of slot creation, or if another logical slot already existed. - </para> - - <para> - If you are using a replication tool that depends on logical decoding, - and it should have copied a nonempty data set at the start of - replication, it is advisable to recreate the replica after - installing this update, or to verify its contents against the source - server. - </para> - </listitem> - - <listitem> - <para> - Fix possible corruption of <quote>init forks</quote> of unlogged indexes - (Robert Haas, Michael Paquier) - </para> - - <para> - This could result in an unlogged index being set to an invalid state - after a crash and restart. Such a problem would persist until the - index was dropped and rebuilt. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect reconstruction of <structname>pg_subtrans</structname> entries - when a standby server replays a prepared but uncommitted two-phase - transaction (Tom Lane) - </para> - - <para> - In most cases this turned out to have no visible ill effects, but in - corner cases it could result in circular references - in <structname>pg_subtrans</structname>, potentially causing infinite loops - in queries that examine rows modified by the two-phase transaction. - </para> - </listitem> - - <listitem> - <para> - Avoid possible crash in <application>walsender</application> due to failure - to initialize a string buffer (Stas Kelvich, Fujii Masao) - </para> - </listitem> - - <listitem> - <para> - Fix possible crash when rescanning a nearest-neighbor index-only scan - on a GiST index (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix postmaster's handling of <function>fork()</function> failure for a - background worker process (Tom Lane) - </para> - - <para> - Previously, the postmaster updated portions of its state as though - the process had been launched successfully, resulting in subsequent - confusion. - </para> - </listitem> - - <listitem> -<!-- -Author: Andrew Gierth <rhodiumtoad@postgresql.org> -Branch: REL9_5_STABLE [7be3678a8] 2017-04-24 07:53:05 +0100 ---> - <para> - Fix crash or wrong answers when a <literal>GROUPING SETS</literal> column's - data type is hashable but not sortable (Pavan Deolasee) - </para> - </listitem> - - <listitem> - <para> - Avoid applying <quote>physical targetlist</quote> optimization to custom - scans (Dmitry Ivanov, Tom Lane) - </para> - - <para> - This optimization supposed that retrieving all columns of a tuple - is inexpensive, which is true for ordinary Postgres tuples; but it - might not be the case for a custom scan provider. - </para> - </listitem> - - <listitem> - <para> - Use the correct sub-expression when applying a <literal>FOR ALL</literal> - row-level-security policy (Stephen Frost) - </para> - - <para> - In some cases the <literal>WITH CHECK</literal> restriction would be applied - when the <literal>USING</literal> restriction is more appropriate. - </para> - </listitem> - - <listitem> - <para> - Ensure parsing of queries in extension scripts sees the results of - immediately-preceding DDL (Julien Rouhaud, Tom Lane) - </para> - - <para> - Due to lack of a cache flush step between commands in an extension - script file, non-utility queries might not see the effects of an - immediately preceding catalog change, such as <command>ALTER TABLE - ... RENAME</command>. - </para> - </listitem> - - <listitem> - <para> - Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER - COLUMN TYPE</command> rebuilds an existing index (Noah Misch) - </para> - - <para> - The command failed if the calling user did not currently have - <literal>CREATE</literal> privilege for the tablespace containing the index. - That behavior seems unhelpful, so skip the check, allowing the - index to be rebuilt where it is. - </para> - </listitem> - - <listitem> - <para> - Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</command> to not recurse - to child tables when the constraint is marked <literal>NO INHERIT</literal> - (Amit Langote) - </para> - - <para> - This fix prevents unwanted <quote>constraint does not exist</quote> failures - when no matching constraint is present in the child tables. - </para> - </listitem> - - <listitem> - <para> - Avoid dangling pointer in <command>COPY ... TO</command> when row-level - security is active for the source table (Tom Lane) - </para> - - <para> - Usually this had no ill effects, but sometimes it would cause - unexpected errors or crashes. - </para> - </listitem> - - <listitem> - <para> - Avoid accessing an already-closed relcache entry in <command>CLUSTER</command> - and <command>VACUUM FULL</command> (Tom Lane) - </para> - - <para> - With some bad luck, this could lead to indexes on the target - relation getting rebuilt with the wrong persistence setting. - </para> - </listitem> - - <listitem> - <para> - Fix <command>VACUUM</command> to account properly for pages that could not - be scanned due to conflicting page pins (Andrew Gierth) - </para> - - <para> - This tended to lead to underestimation of the number of tuples in - the table. In the worst case of a small heavily-contended - table, <command>VACUUM</command> could incorrectly report that the table - contained no tuples, leading to very bad planning choices. - </para> - </listitem> - - <listitem> - <para> - Ensure that bulk-tuple-transfer loops within a hash join are - interruptible by query cancel requests (Tom Lane, Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix integer-overflow problems in <type>interval</type> comparison (Kyotaro - Horiguchi, Tom Lane) - </para> - - <para> - The comparison operators for type <type>interval</type> could yield wrong - answers for intervals larger than about 296000 years. Indexes on - columns containing such large values should be reindexed, since they - may be corrupt. - </para> - </listitem> - - <listitem> - <para> - Fix <function>cursor_to_xml()</function> to produce valid output - with <replaceable>tableforest</replaceable> = false - (Thomas Munro, Peter Eisentraut) - </para> - - <para> - Previously it failed to produce a wrapping <literal><table></literal> - element. - </para> - </listitem> - - <listitem> - <para> - Fix roundoff problems in <function>float8_timestamptz()</function> - and <function>make_interval()</function> (Tom Lane) - </para> - - <para> - These functions truncated, rather than rounded, when converting a - floating-point value to integer microseconds; that could cause - unexpectedly off-by-one results. - </para> - </listitem> - - <listitem> - <para> - Fix <function>pg_get_object_address()</function> to handle members of operator - families correctly (Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Improve performance of <structname>pg_timezone_names</structname> view - (Tom Lane, David Rowley) - </para> - </listitem> - - <listitem> - <para> - Reduce memory management overhead for contexts containing many large - blocks (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix sloppy handling of corner-case errors from <function>lseek()</function> - and <function>close()</function> (Tom Lane) - </para> - - <para> - Neither of these system calls are likely to fail in typical situations, - but if they did, <filename>fd.c</filename> could get quite confused. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect check for whether postmaster is running as a Windows - service (Michael Paquier) - </para> - - <para> - This could result in attempting to write to the event log when that - isn't accessible, so that no logging happens at all. - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application> to support <command>COMMIT PREPARED</command> - and <command>ROLLBACK PREPARED</command> (Masahiko Sawada) - </para> - </listitem> - - <listitem> - <para> - Fix a double-free error when processing dollar-quoted string literals - in <application>ecpg</application> (Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - In <application>pg_dump</application>, fix incorrect schema and owner marking for - comments and security labels of some types of database objects - (Giuseppe Broccolo, Tom Lane) - </para> - - <para> - In simple cases this caused no ill effects; but for example, a - schema-selective restore might omit comments it should include, because - they were not marked as belonging to the schema of their associated - object. - </para> - </listitem> - - <listitem> - <para> - Avoid emitting an invalid list file in <literal>pg_restore -l</literal> - when SQL object names contain newlines (Tom Lane) - </para> - - <para> - Replace newlines by spaces, which is sufficient to make the output - valid for <literal>pg_restore -L</literal>'s purposes. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</application> to transfer comments and security labels - attached to <quote>large objects</quote> (blobs) (Stephen Frost) - </para> - - <para> - Previously, blobs were correctly transferred to the new database, but - any comments or security labels attached to them were lost. - </para> - </listitem> - - <listitem> - <para> - Improve error handling - in <filename>contrib/adminpack</filename>'s <function>pg_file_write()</function> - function (Noah Misch) - </para> - - <para> - Notably, it failed to detect errors reported - by <function>fclose()</function>. - </para> - </listitem> - - <listitem> - <para> - In <filename>contrib/dblink</filename>, avoid leaking the previous unnamed - connection when establishing a new unnamed connection (Joe Conway) - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/pg_trgm</filename>'s extraction of trigrams from regular - expressions (Tom Lane) - </para> - - <para> - In some cases it would produce a broken data structure that could never - match anything, leading to GIN or GiST indexscans that use a trigram - index not finding any matches to the regular expression. - </para> - </listitem> - - <listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: REL9_5_STABLE [cdf5a004b] 2017-05-06 22:21:38 -0400 -Branch: REL9_4_STABLE [f14bf0a8f] 2017-05-06 22:19:56 -0400 -Branch: REL9_3_STABLE [3aa16b117] 2017-05-06 22:17:35 -0400 ---> - <para> - In <filename>contrib/postgres_fdw</filename>, - transmit query cancellation requests to the remote server - (Michael Paquier, Etsuro Fujita) - </para> - - <para> - Previously, a local query cancellation request did not cause an - already-sent remote query to terminate early. This is a back-patch - of work originally done for 9.6. - </para> - </listitem> - - <listitem> - <para> - Support Tcl 8.6 in MSVC builds (Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA release tzcode2017b - (Tom Lane) - </para> - - <para> - This fixes a bug affecting some DST transitions in January 2038. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> release 2017b - for DST law changes in Chile, Haiti, and Mongolia, plus historical - corrections for Ecuador, Kazakhstan, Liberia, and Spain. - Switch to numeric abbreviations for numerous time zones in South - America, the Pacific and Indian oceans, and some Asian and Middle - Eastern countries. - </para> - - <para> - The IANA time zone database previously provided textual abbreviations - for all time zones, sometimes making up abbreviations that have little - or no currency among the local population. They are in process of - reversing that policy in favor of using numeric UTC offsets in zones - where there is no evidence of real-world use of an English - abbreviation. At least for the time being, <productname>PostgreSQL</productname> - will continue to accept such removed abbreviations for timestamp input. - But they will not be shown in the <structname>pg_timezone_names</structname> - view nor used for output. - </para> - </listitem> - - <listitem> - <para> - Use correct daylight-savings rules for POSIX-style time zone names - in MSVC builds (David Rowley) - </para> - - <para> - The Microsoft MSVC build scripts neglected to install - the <filename>posixrules</filename> file in the timezone directory tree. - This resulted in the timezone code falling back to its built-in - rule about what DST behavior to assume for a POSIX-style time zone - name. For historical reasons that still corresponds to the DST rules - the USA was using before 2007 (i.e., change on first Sunday in April - and last Sunday in October). With this fix, a POSIX-style zone name - will use the current and historical DST transition dates of - the <literal>US/Eastern</literal> zone. If you don't want that, remove - the <filename>posixrules</filename> file, or replace it with a copy of some - other zone file (see <xref linkend="datatype-timezones"/>). Note that - due to caching, you may need to restart the server to get such changes - to take effect. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-6"> - <title>Release 9.5.6</title> - - <formalpara> - <title>Release date:</title> - <para>2017-02-09</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.5. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.6</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if your installation has been affected by the bug described in - the first changelog entry below, then after updating you may need - to take action to repair corrupted indexes. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.5, - see <xref linkend="release-9-5-5"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix a race condition that could cause indexes built - with <command>CREATE INDEX CONCURRENTLY</command> to be corrupt - (Pavan Deolasee, Tom Lane) - </para> - - <para> - If <command>CREATE INDEX CONCURRENTLY</command> was used to build an index - that depends on a column not previously indexed, then rows - updated by transactions that ran concurrently with - the <command>CREATE INDEX</command> command could have received incorrect - index entries. If you suspect this may have happened, the most - reliable solution is to rebuild affected indexes after installing - this update. - </para> - </listitem> - - <listitem> - <para> - Ensure that the special snapshot used for catalog scans is not - invalidated by premature data pruning (Tom Lane) - </para> - - <para> - Backends failed to account for this snapshot when advertising their - oldest xmin, potentially allowing concurrent vacuuming operations to - remove data that was still needed. This led to transient failures - along the lines of <quote>cache lookup failed for relation 1255</quote>. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh) - </para> - - <para> - The WAL record emitted for a BRIN <quote>revmap</quote> page when moving an - index tuple to a different page was incorrect. Replay would make the - related portion of the index useless, forcing it to be recomputed. - </para> - </listitem> - - <listitem> - <para> - Unconditionally WAL-log creation of the <quote>init fork</quote> for an - unlogged table (Michael Paquier) - </para> - - <para> - Previously, this was skipped when <xref linkend="guc-wal-level"/> - = <literal>minimal</literal>, but actually it's necessary even in that case - to ensure that the unlogged table is properly reset to empty after a - crash. - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: REL9_5_STABLE [c0db1ec26] 2016-11-17 13:31:30 -0300 -Branch: REL9_4_STABLE [30e3cb307] 2016-11-17 13:31:30 -0300 ---> - <para> - Reduce interlocking on standby servers during the replay of btree - index vacuuming operations (Simon Riggs) - </para> - - <para> - This change avoids substantial replication delays that sometimes - occurred while replaying such operations. - </para> - </listitem> - - <listitem> - <para> - If the stats collector dies during hot standby, restart it (Takayuki - Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Ensure that hot standby feedback works correctly when it's enabled at - standby server start (Ants Aasma, Craig Ringer) - </para> - </listitem> - - <listitem> - <para> - Check for interrupts while hot standby is waiting for a conflicting - query (Simon Riggs) - </para> - </listitem> - - <listitem> - <para> - Avoid constantly respawning the autovacuum launcher in a corner case - (Amit Khandekar) - </para> - - <para> - This fix avoids problems when autovacuum is nominally off and there - are some tables that require freezing, but all such tables are - already being processed by autovacuum workers. - </para> - </listitem> - - <listitem> - <para> - Fix check for when an extension member object can be dropped (Tom Lane) - </para> - - <para> - Extension upgrade scripts should be able to drop member objects, - but this was disallowed for serial-column sequences, and possibly - other cases. - </para> - </listitem> - - <listitem> - <para> - Make sure <command>ALTER TABLE</command> preserves index tablespace - assignments when rebuilding indexes (Tom Lane, Michael Paquier) - </para> - - <para> - Previously, non-default settings - of <xref linkend="guc-default-tablespace"/> could result in broken - indexes. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect updating of trigger function properties when changing a - foreign-key constraint's deferrability properties with <command>ALTER - TABLE ... ALTER CONSTRAINT</command> (Tom Lane) - </para> - - <para> - This led to odd failures during subsequent exercise of the foreign - key, as the triggers were fired at the wrong times. - </para> - </listitem> - - <listitem> - <para> - Prevent dropping a foreign-key constraint if there are pending - trigger events for the referenced relation (Tom Lane) - </para> - - <para> - This avoids <quote>could not find trigger <replaceable>NNN</replaceable></quote> - or <quote>relation <replaceable>NNN</replaceable> has no triggers</quote> errors. - </para> - </listitem> - - <listitem> - <para> - Fix <command>ALTER TABLE ... SET DATA TYPE ... USING</command> when child - table has different column ordering than the parent - (Álvaro Herrera) - </para> - - <para> - Failure to adjust the column numbering in the <literal>USING</literal> - expression led to errors, - typically <quote>attribute <replaceable>N</replaceable> has wrong type</quote>. - </para> - </listitem> - - <listitem> - <para> - Fix processing of OID column when a table with OIDs is associated to - a parent with OIDs via <command>ALTER TABLE ... INHERIT</command> (Amit - Langote) - </para> - - <para> - The OID column should be treated the same as regular user columns in - this case, but it wasn't, leading to odd behavior in later - inheritance changes. - </para> - </listitem> - - <listitem> - <para> - Fix <command>CREATE OR REPLACE VIEW</command> to update the view query - before attempting to apply the new view options (Dean Rasheed) - </para> - - <para> - Previously the command would fail if the new options were - inconsistent with the old view definition. - </para> - </listitem> - - <listitem> - <para> - Report correct object identity during <command>ALTER TEXT SEARCH - CONFIGURATION</command> (Artur Zakirov) - </para> - - <para> - The wrong catalog OID was reported to extensions such as logical - decoding. - </para> - </listitem> - - <listitem> - <para> - Fix commit timestamp mechanism to not fail when queried about - the special XIDs <literal>FrozenTransactionId</literal> - and <literal>BootstrapTransactionId</literal> (Craig Ringer) - </para> - </listitem> - - <listitem> -<!-- -Author: Kevin Grittner <kgrittn@postgresql.org> -Branch: REL9_5_STABLE [bed2a0b06] 2016-12-13 19:14:42 -0600 -Branch: REL9_4_STABLE [4b9d466c1] 2016-12-13 19:05:12 -0600 -Branch: REL9_3_STABLE [5d80171ad] 2016-12-13 19:05:35 -0600 -Branch: REL9_2_STABLE [60314e28e] 2016-12-13 19:08:09 -0600 ---> - <para> - Check for serializability conflicts before reporting - constraint-violation failures (Thomas Munro) - </para> - - <para> - When using serializable transaction isolation, it is desirable - that any error due to concurrent transactions should manifest - as a serialization failure, thereby cueing the application that - a retry might succeed. Unfortunately, this does not reliably - happen for duplicate-key failures caused by concurrent insertions. - This change ensures that such an error will be reported as a - serialization error if the application explicitly checked for - the presence of a conflicting key (and did not find it) earlier - in the transaction. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect use of view reloptions as regular table reloptions (Tom - Lane) - </para> - - <para> - The symptom was spurious <quote>ON CONFLICT is not supported on table - ... used as a catalog table</quote> errors when the target - of <command>INSERT ... ON CONFLICT</command> is a view with cascade option. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect <quote>target lists can have at most <replaceable>N</replaceable> - entries</quote> complaint when using <literal>ON CONFLICT</literal> with - wide tables (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Prevent multicolumn expansion of <replaceable>foo</replaceable><literal>.*</literal> in - an <command>UPDATE</command> source expression (Tom Lane) - </para> - - <para> - This led to <quote>UPDATE target count mismatch --- internal - error</quote>. Now the syntax is understood as a whole-row variable, - as it would be in other contexts. - </para> - </listitem> - - <listitem> - <para> - Ensure that column typmods are determined accurately for - multi-row <literal>VALUES</literal> constructs (Tom Lane) - </para> - - <para> - This fixes problems occurring when the first value in a column has a - determinable typmod (e.g., length for a <type>varchar</type> value) but - later values don't share the same limit. - </para> - </listitem> - - <listitem> - <para> - Throw error for an unfinished Unicode surrogate pair at the end of a - Unicode string (Tom Lane) - </para> - - <para> - Normally, a Unicode surrogate leading character must be followed by a - Unicode surrogate trailing character, but the check for this was - missed if the leading character was the last character in a Unicode - string literal (<literal>U&'...'</literal>) or Unicode identifier - (<literal>U&"..."</literal>). - </para> - </listitem> - - <listitem> - <para> - Ensure that a purely negative text search query, such - as <literal>!foo</literal>, matches empty <type>tsvector</type>s (Tom Dunstan) - </para> - - <para> - Such matches were found by GIN index searches, but not by sequential - scans or GiST index searches. - </para> - </listitem> - - <listitem> - <para> - Prevent crash when <function>ts_rewrite()</function> replaces a non-top-level - subtree with an empty query (Artur Zakirov) - </para> - </listitem> - - <listitem> - <para> - Fix performance problems in <function>ts_rewrite()</function> (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <function>ts_rewrite()</function>'s handling of nested NOT operators - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Improve speed of user-defined aggregates that - use <function>array_append()</function> as transition function (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <function>array_fill()</function> to handle empty arrays properly (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix possible crash in <function>array_position()</function> - or <function>array_positions()</function> when processing arrays of records - (Junseok Yang) - </para> - </listitem> - - <listitem> - <para> - Fix one-byte buffer overrun in <function>quote_literal_cstr()</function> - (Heikki Linnakangas) - </para> - - <para> - The overrun occurred only if the input consisted entirely of single - quotes and/or backslashes. - </para> - </listitem> - - <listitem> - <para> - Prevent multiple calls of <function>pg_start_backup()</function> - and <function>pg_stop_backup()</function> from running concurrently (Michael - Paquier) - </para> - - <para> - This avoids an assertion failure, and possibly worse things, if - someone tries to run these functions in parallel. - </para> - </listitem> - - <listitem> - <para> - Disable transform that attempted to remove no-op <literal>AT TIME - ZONE</literal> conversions (Tom Lane) - </para> - - <para> - This resulted in wrong answers when the simplified expression was - used in an index condition. - </para> - </listitem> - - <listitem> - <para> - Avoid discarding <type>interval</type>-to-<type>interval</type> casts - that aren't really no-ops (Tom Lane) - </para> - - <para> - In some cases, a cast that should result in zeroing out - low-order <type>interval</type> fields was mistakenly deemed to be a - no-op and discarded. An example is that casting from <type>INTERVAL - MONTH</type> to <type>INTERVAL YEAR</type> failed to clear the months field. - </para> - </listitem> - - <listitem> - <para> - Fix bugs in transmitting GUC parameter values to parallel workers - (Michael Paquier, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Ensure that cached plans are invalidated by changes in foreign-table - options (Amit Langote, Etsuro Fujita, Ashutosh Bapat) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> to dump user-defined casts and transforms - that use built-in functions (Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_restore</application> with <option>--create --if-exists</option> - to behave more sanely if an archive contains - unrecognized <command>DROP</command> commands (Tom Lane) - </para> - - <para> - This doesn't fix any live bug, but it may improve the behavior in - future if <application>pg_restore</application> is used with an archive - generated by a later <application>pg_dump</application> version. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</application>'s rate limiting in the presence of - slow I/O (Antonin Houska) - </para> - - <para> - If disk I/O was transiently much slower than the specified rate - limit, the calculation overflowed, effectively disabling the rate - limit for the rest of the run. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</application>'s handling of - symlinked <filename>pg_stat_tmp</filename> and <filename>pg_replslot</filename> - subdirectories (Magnus Hagander, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix possible <application>pg_basebackup</application> failure on standby - server when including WAL files (Amit Kapila, Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Fix possible mishandling of expanded arrays in domain check - constraints and <literal>CASE</literal> execution (Tom Lane) - </para> - - <para> - It was possible for a PL/pgSQL function invoked in these contexts to - modify or even delete an array value that needs to be preserved for - additional operations. - </para> - </listitem> - - <listitem> - <para> - Fix nested uses of PL/pgSQL functions in contexts such as domain - check constraints evaluated during assignment to a PL/pgSQL variable - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Ensure that the Python exception objects we create for PL/Python are - properly reference-counted (Rafa de la Torre, Tom Lane) - </para> - - <para> - This avoids failures if the objects are used after a Python garbage - collection cycle has occurred. - </para> - </listitem> - - <listitem> - <para> - Fix PL/Tcl to support triggers on tables that have <literal>.tupno</literal> - as a column name (Tom Lane) - </para> - - <para> - This matches the (previously undocumented) behavior of - PL/Tcl's <command>spi_exec</command> and <command>spi_execp</command> commands, - namely that a magic <literal>.tupno</literal> column is inserted only if - there isn't a real column named that. - </para> - </listitem> - - <listitem> - <para> - Allow DOS-style line endings in <filename>~/.pgpass</filename> files, - even on Unix (Vik Fearing) - </para> - - <para> - This change simplifies use of the same password file across Unix and - Windows machines. - </para> - </listitem> - - <listitem> - <para> - Fix one-byte buffer overrun if <application>ecpg</application> is given a file - name that ends with a dot (Takayuki Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Fix <application>psql</application>'s tab completion for <command>ALTER DEFAULT - PRIVILEGES</command> (Gilles Darold, Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - In <application>psql</application>, treat an empty or all-blank setting of - the <envar>PAGER</envar> environment variable as meaning <quote>no - pager</quote> (Tom Lane) - </para> - - <para> - Previously, such a setting caused output intended for the pager to - vanish entirely. - </para> - </listitem> - - <listitem> - <para> - Improve <filename>contrib/dblink</filename>'s reporting of - low-level <application>libpq</application> errors, such as out-of-memory - (Joe Conway) - </para> - </listitem> - - <listitem> - <para> - Teach <filename>contrib/dblink</filename> to ignore irrelevant server options - when it uses a <filename>contrib/postgres_fdw</filename> foreign server as - the source of connection options (Corey Huinker) - </para> - - <para> - Previously, if the foreign server object had options that were not - also <application>libpq</application> connection options, an error occurred. - </para> - </listitem> - - <listitem> - <para> - Fix portability problems in <filename>contrib/pageinspect</filename>'s - functions for GIN indexes (Peter Eisentraut, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - On Windows, ensure that environment variable changes are propagated - to DLLs built with debug options (Christian Ullrich) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA release tzcode2016j - (Tom Lane) - </para> - - <para> - This fixes various issues, most notably that timezone data - installation failed if the target directory didn't support hard - links. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> release 2016j - for DST law changes in northern Cyprus (adding a new zone - Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, - and Antarctica/Casey. - Historical corrections for Italy, Kazakhstan, Malta, and Palestine. - Switch to preferring numeric zone abbreviations for Tonga. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-5"> - <title>Release 9.5.5</title> - - <formalpara> - <title>Release date:</title> - <para>2016-10-27</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.4. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.5</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if your installation has been affected by the bug described in - the first changelog entry below, then after updating you may need - to take action to repair corrupted free space maps. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.5.2, - see <xref linkend="release-9-5-2"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix WAL-logging of truncation of relation free space maps and - visibility maps (Pavan Deolasee, Heikki Linnakangas) - </para> - - <para> - It was possible for these files to not be correctly restored during - crash recovery, or to be written incorrectly on a standby server. - Bogus entries in a free space map could lead to attempts to access - pages that have been truncated away from the relation itself, typically - producing errors like <quote>could not read block <replaceable>XXX</replaceable>: - read only 0 of 8192 bytes</quote>. Checksum failures in the - visibility map are also possible, if checksumming is enabled. - </para> - - <para> - Procedures for determining whether there is a problem and repairing it - if so are discussed at - <ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></ulink>. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [60893786d] 2016-09-03 13:28:53 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [36646d3af] 2016-09-03 13:28:53 -0400 -Branch: REL9_5_STABLE [08a72872f] 2016-09-03 13:28:53 -0400 -Branch: REL9_4_STABLE [a69443564] 2016-09-03 13:28:53 -0400 ---> - <para> - Fix incorrect creation of GIN index WAL records on big-endian machines - (Tom Lane) - </para> - - <para> - The typical symptom was <quote>unexpected GIN leaf action</quote> errors - during WAL replay. - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [5c609a742] 2016-09-09 15:54:29 -0300 -Branch: REL9_6_STABLE Release: REL9_6_0 [c3656c9ff] 2016-09-09 15:54:29 -0300 -Branch: REL9_5_STABLE [f33765885] 2016-09-09 15:54:29 -0300 -Branch: REL9_4_STABLE [8778da2af] 2016-09-09 15:54:29 -0300 -Branch: REL9_3_STABLE [dfe7121df] 2016-09-09 15:54:29 -0300 ---> - <para> - Fix <command>SELECT FOR UPDATE/SHARE</command> to correctly lock tuples that - have been updated by a subsequently-aborted transaction - (Álvaro Herrera) - </para> - - <para> - In 9.5 and later, the <command>SELECT</command> would sometimes fail to - return such tuples at all. A failure has not been proven to occur in - earlier releases, but might be possible with concurrent updates. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [96dd77d34] 2016-09-22 11:35:03 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [a88fe25f5] 2016-09-22 11:34:44 -0400 -Branch: REL9_5_STABLE [c35917835] 2016-09-22 11:34:44 -0400 -Branch: REL9_4_STABLE [d3dd00e67] 2016-09-22 11:34:44 -0400 -Branch: REL9_3_STABLE [73df86a37] 2016-09-22 11:34:44 -0400 -Branch: REL9_2_STABLE [8552f9b90] 2016-09-22 11:34:44 -0400 -Branch: REL9_1_STABLE [0183df5dc] 2016-09-22 11:34:45 -0400 ---> - <para> - Fix EvalPlanQual rechecks involving CTE scans (Tom Lane) - </para> - - <para> - The recheck would always see the CTE as returning no rows, typically - leading to failure to update rows that were recently updated. - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [07ef03512] 2016-08-17 17:03:36 -0700 -Branch: REL9_6_STABLE Release: REL9_6_0 [e79aaebcc] 2016-08-17 17:03:36 -0700 -Branch: REL9_5_STABLE [94bc30725] 2016-08-17 17:03:36 -0700 ---> - <para> - Fix deletion of speculatively inserted TOAST tuples when backing out - of <command>INSERT ... ON CONFLICT</command> (Oskari Saarenmaa) - </para> - - <para> - In the race condition where two transactions try to insert conflicting - tuples at about the same time, the loser would fail with - an <quote>attempted to delete invisible tuple</quote> error if its - insertion included any TOAST'ed fields. - </para> - </listitem> - - <listitem> - <para> - Don't throw serialization errors for self-conflicting insertions - in <command>INSERT ... ON CONFLICT</command> (Thomas Munro, Peter Geoghegan) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [2c00fad28] 2016-08-24 14:38:12 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [616be05df] 2016-08-24 14:38:13 -0400 -Branch: REL9_5_STABLE [25fe5f758] 2016-08-24 14:37:50 -0400 -Branch: REL9_4_STABLE [08a823e53] 2016-08-24 14:37:51 -0400 -Branch: REL9_3_STABLE [aaad96e40] 2016-08-24 14:37:51 -0400 -Branch: REL9_2_STABLE [237663897] 2016-08-24 14:37:51 -0400 -Branch: REL9_1_STABLE [3570ea424] 2016-08-24 14:37:51 -0400 ---> - <para> - Fix improper repetition of previous results from hashed aggregation in - a subquery (Andrew Gierth) - </para> - - <para> - The test to see if we can reuse a previously-computed hash table of - the aggregate state values neglected the possibility of an outer query - reference appearing in an aggregate argument expression. A change in - the value of such a reference should lead to recalculating the hash - table, but did not. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [ae4760d66] 2016-08-24 22:20:25 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [006fb80a5] 2016-08-24 22:20:26 -0400 -Branch: REL9_5_STABLE [46bd14a10] 2016-08-24 22:20:01 -0400 -Branch: REL9_4_STABLE [566afa15c] 2016-08-24 22:20:01 -0400 ---> - <para> - Fix query-lifespan memory leak in a bulk <command>UPDATE</command> on a table - with a <literal>PRIMARY KEY</literal> or <literal>REPLICA IDENTITY</literal> index - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <command>COPY</command> with a column name list from a table that has - row-level security enabled (Adam Brightwell) - </para> - </listitem> - - <listitem> - <para> - Fix <command>EXPLAIN</command> to emit valid XML when - <xref linkend="guc-track-io-timing"/> is on (Markus Winand) - </para> - - <para> - Previously the XML output-format option produced syntactically invalid - tags such as <literal><I/O-Read-Time></literal>. That is now - rendered as <literal><I-O-Read-Time></literal>. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master Release: REL9_6_BR [4b234fd8b] 2016-08-12 12:13:04 -0400 -Branch: REL9_5_STABLE [ed2d7b8c8] 2016-08-12 12:13:04 -0400 -Branch: REL9_4_STABLE [85974b468] 2016-08-12 12:13:04 -0400 -Branch: REL9_3_STABLE [16cc6d23b] 2016-08-12 12:13:04 -0400 -Branch: REL9_2_STABLE [ceb005319] 2016-08-12 12:13:04 -0400 ---> - <para> - Suppress printing of zeroes for unmeasured times - in <command>EXPLAIN</command> (Maksim Milyutin) - </para> - - <para> - Certain option combinations resulted in printing zero values for times - that actually aren't ever measured in that combination. Our general - policy in <command>EXPLAIN</command> is not to print such fields at all, so - do that consistently in all cases. - </para> - </listitem> - - <listitem> - <para> - Fix statistics update for <command>TRUNCATE</command> in a prepared - transaction (Stas Kelvich) - </para> - </listitem> - - <listitem> -<!-- -Author: Simon Riggs <simon@2ndQuadrant.com> -Branch: master [dcb12ce8d] 2016-09-06 15:35:47 +0100 -Branch: REL9_6_STABLE Release: REL9_6_0 [1fa42debe] 2016-09-09 11:43:08 +0100 -Branch: REL9_5_STABLE [f3b3e871e] 2016-09-09 11:43:46 +0100 -Branch: REL9_4_STABLE [81b0f8204] 2016-09-09 11:44:54 +0100 -Branch: REL9_3_STABLE [e1dddf3e8] 2016-09-09 11:45:16 +0100 -Branch: REL9_2_STABLE [eaf6fe7fa] 2016-09-09 11:45:40 +0100 -Branch: REL9_1_STABLE [3ed7f54bc] 2016-09-09 11:46:03 +0100 ---> - <para> - Fix timeout length when <command>VACUUM</command> is waiting for exclusive - table lock so that it can truncate the table (Simon Riggs) - </para> - - <para> - The timeout was meant to be 50 milliseconds, but it was actually only - 50 microseconds, causing <command>VACUUM</command> to give up on truncation - much more easily than intended. Set it to the intended value. - </para> - </listitem> - - <listitem> - <para> - Fix bugs in merging inherited <literal>CHECK</literal> constraints while - creating or altering a table (Tom Lane, Amit Langote) - </para> - - <para> - Allow identical <literal>CHECK</literal> constraints to be added to a parent - and child table in either order. Prevent merging of a valid - constraint from the parent table with a <literal>NOT VALID</literal> - constraint on the child. Likewise, prevent merging of a <literal>NO - INHERIT</literal> child constraint with an inherited constraint. - </para> - </listitem> - - <listitem> - <para> - Show a sensible value - in <structname>pg_settings</structname>.<structfield>unit</structfield> - for <varname>min_wal_size</varname> and <varname>max_wal_size</varname> (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master Release: REL9_6_BR [9389fbd03] 2016-08-14 15:06:01 -0400 -Branch: REL9_5_STABLE [635651214] 2016-08-14 15:06:01 -0400 -Branch: REL9_4_STABLE [4ac3d7794] 2016-08-14 15:06:01 -0400 -Branch: REL9_3_STABLE [e8e20aadd] 2016-08-14 15:06:02 -0400 -Branch: REL9_2_STABLE [9d5bf77b5] 2016-08-14 15:06:02 -0400 -Branch: REL9_1_STABLE [7e01c8ef3] 2016-08-14 15:06:02 -0400 ---> - <para> - Remove artificial restrictions on the values accepted - by <function>numeric_in()</function> and <function>numeric_recv()</function> - (Tom Lane) - </para> - - <para> - We allow numeric values up to the limit of the storage format (more - than <literal>1e100000</literal>), so it seems fairly pointless - that <function>numeric_in()</function> rejected scientific-notation exponents - above 1000. Likewise, it was silly for <function>numeric_recv()</function> to - reject more than 1000 digits in an input value. - </para> - </listitem> - - <listitem> - <para> - Avoid very-low-probability data corruption due to testing tuple - visibility without holding buffer lock (Thomas Munro, Peter Geoghegan, - Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Preserve commit timestamps across server restart - (Julien Rouhaud, Craig Ringer) - </para> - - <para> - With <xref linkend="guc-track-commit-timestamp"/> turned on, old - commit timestamps became inaccessible after a clean server restart. - </para> - </listitem> - - <listitem> - <para> - Fix logical WAL decoding to work properly when a subtransaction's WAL - output is large enough to spill to disk (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [008c4135c] 2016-08-22 15:22:11 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [48b9ca0b6] 2016-08-22 15:30:31 -0400 -Branch: REL9_5_STABLE [da9659f87] 2016-08-22 15:30:37 -0400 ---> - <para> - Fix possible sorting error when aborting use of abbreviated keys - (Peter Geoghegan) - </para> - - <para> - In the worst case, this could result in a corrupt btree index, which - would need to be rebuilt using <command>REINDEX</command>. However, the - situation is believed to be rare. - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [769fd9d8e] 2016-09-08 16:51:09 -0700 -Branch: REL9_6_STABLE Release: REL9_6_0 [f6802936a] 2016-09-08 16:52:13 -0700 -Branch: REL9_5_STABLE [26ce63ce7] 2016-09-08 16:52:13 -0700 -Branch: REL9_4_STABLE [075cfbe4a] 2016-09-08 16:52:13 -0700 -Branch: REL9_3_STABLE [d2a5b2b28] 2016-09-08 16:52:13 -0700 -Branch: REL9_2_STABLE [f5462dedb] 2016-09-08 16:52:13 -0700 -Branch: REL9_1_STABLE [08fdfe7a8] 2016-09-08 16:52:13 -0700 ---> - <para> - Fix file descriptor leakage when truncating a temporary relation of - more than 1GB (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0e0f43d6f] 2016-08-31 08:52:13 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [3fc489cb3] 2016-08-31 08:52:13 -0400 -Branch: REL9_5_STABLE [c40bb1155] 2016-08-31 08:52:13 -0400 -Branch: REL9_4_STABLE [f4e40537e] 2016-08-31 08:52:13 -0400 -Branch: REL9_3_STABLE [baf111d31] 2016-08-31 08:52:13 -0400 -Branch: REL9_2_STABLE [823df401d] 2016-08-31 08:52:13 -0400 -Branch: REL9_1_STABLE [e3439a455] 2016-08-31 08:52:13 -0400 ---> - <para> - Disallow starting a standalone backend with <literal>standby_mode</literal> - turned on (Michael Paquier) - </para> - - <para> - This can't do anything useful, since there will be no WAL receiver - process to fetch more WAL data; and it could result in misbehavior - in code that wasn't designed with this situation in mind. - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [2d7e59100] 2016-08-17 13:15:03 -0700 -Branch: REL9_6_STABLE Release: REL9_6_0 [8cb23dba8] 2016-08-17 13:15:03 -0700 -Branch: REL9_5_STABLE [de396a1cb] 2016-08-17 13:15:03 -0700 -Branch: REL9_4_STABLE [690a2fb90] 2016-08-17 13:15:04 -0700 ---> - <para> - Properly initialize replication slot state when recycling a - previously-used slot (Michael Paquier) - </para> - - <para> - This failure to reset all of the fields of the slot could - prevent <command>VACUUM</command> from removing dead tuples. - </para> - </listitem> - - <listitem> - <para> - Round shared-memory allocation request to a multiple of the actual - huge page size when attempting to use huge pages on Linux (Tom Lane) - </para> - - <para> - This avoids possible failures during <function>munmap()</function> on systems - with atypical default huge page sizes. Except in crash-recovery - cases, there were no ill effects other than a log message. - </para> - </listitem> - - <listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [470d886c3] 2016-09-20 12:26:29 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [92668cd4d] 2016-09-20 12:28:02 -0400 -Branch: REL9_5_STABLE [b1aed95f5] 2016-09-20 12:30:38 -0400 -Branch: REL9_4_STABLE [626312d1b] 2016-09-20 12:30:42 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [49a91b88e] 2016-09-23 09:54:11 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [b251379fb] 2016-09-23 09:54:11 -0400 -Branch: REL9_5_STABLE [93528f7b4] 2016-09-23 09:54:11 -0400 -Branch: REL9_4_STABLE [32cdf680f] 2016-09-23 09:54:11 -0400 ---> - <para> - Use a more random value for the dynamic shared memory control - segment's ID (Robert Haas, Tom Lane) - </para> - - <para> - Previously, the same value would be chosen every time, because it was - derived from <function>random()</function> but <function>srandom()</function> had not - yet been called. While relatively harmless, this was not the intended - behavior. - </para> - </listitem> - - <listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [419113dfd] 2016-09-20 12:04:41 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [6bcd26c43] 2016-09-20 12:12:27 -0400 -Branch: REL9_5_STABLE [c124e3649] 2016-09-20 12:12:31 -0400 -Branch: REL9_4_STABLE [c23b2523d] 2016-09-20 12:12:36 -0400 ---> - <para> - On Windows, retry creation of the dynamic shared memory control - segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila) - </para> - - <para> - Windows sometimes returns <literal>ERROR_ACCESS_DENIED</literal> rather - than <literal>ERROR_ALREADY_EXISTS</literal> when there is an existing - segment. This led to postmaster startup failure due to believing that - the former was an unrecoverable error. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [5697522d8] 2016-08-18 14:49:08 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [c81c71d88] 2016-08-18 14:48:51 -0400 -Branch: REL9_5_STABLE [a8fc19505] 2016-08-18 14:48:51 -0400 ---> - <para> - Fix <application>PL/pgSQL</application> to not misbehave with parameters and - local variables of type <type>int2vector</type> or <type>oidvector</type> - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Don't try to share SSL contexts across multiple connections - in <application>libpq</application> (Heikki Linnakangas) - </para> - - <para> - This led to assorted corner-case bugs, particularly when trying to use - different SSL parameters for different connections. - </para> - </listitem> - - <listitem> - <para> - Avoid corner-case memory leak in <application>libpq</application> (Tom Lane) - </para> - - <para> - The reported problem involved leaking an error report - during <function>PQreset()</function>, but there might be related cases. - </para> - </listitem> - - <listitem> -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [3fcc98c99] 2016-09-18 13:46:32 +0300 -Branch: REL9_6_STABLE Release: REL9_6_0 [e06728d63] 2016-09-18 13:56:11 +0300 -Branch: REL9_5_STABLE [7c177ddc2] 2016-09-18 13:56:52 +0300 -Branch: REL9_4_STABLE [d48e10a68] 2016-09-18 13:59:57 +0300 -Branch: REL9_3_STABLE [b31f335bf] 2016-09-18 14:00:10 +0300 -Branch: REL9_2_STABLE [a4a3fac16] 2016-09-18 14:00:13 +0300 -Branch: REL9_1_STABLE [ed29d2de2] 2016-09-18 14:07:30 +0300 ---> - <para> - Make <application>ecpg</application>'s <option>--help</option> and <option>--version</option> - options work consistently with our other executables (Haribabu Kommi) - </para> - </listitem> - - <listitem> -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [40c3fe498] 2016-09-19 22:55:43 +0300 -Branch: REL9_6_STABLE Release: REL9_6_0 [f65764a04] 2016-09-19 22:55:50 +0300 -Branch: REL9_5_STABLE [edb5c4097] 2016-09-19 22:58:03 +0300 -Branch: REL9_4_STABLE [476945c45] 2016-09-19 22:59:44 +0300 -Branch: master [65c655638] 2016-09-21 13:14:48 +0300 -Branch: REL9_6_STABLE Release: REL9_6_0 [93834a20f] 2016-09-21 13:16:02 +0300 -Branch: REL9_5_STABLE [b93d37474] 2016-09-21 13:16:20 +0300 -Branch: REL9_4_STABLE [f16d4a241] 2016-09-21 13:16:24 +0300 ---> - <para> - Fix <application>pgbench</application>'s calculation of average latency - (Fabien Coelho) - </para> - - <para> - The calculation was incorrect when there were <literal>\sleep</literal> - commands in the script, or when the test duration was specified in - number of transactions rather than total time. - </para> - </listitem> - - <listitem> - <para> - In <application>pg_upgrade</application>, check library loadability in name order - (Tom Lane) - </para> - - <para> - This is a workaround to deal with cross-extension dependencies from - language transform modules to their base language and data type - modules. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [12f6eadff] 2016-09-23 13:49:26 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [7e02476f3] 2016-09-23 13:49:26 -0400 -Branch: REL9_5_STABLE [96e16d739] 2016-09-23 13:49:26 -0400 -Branch: REL9_4_STABLE [912ea1945] 2016-09-23 13:49:27 -0400 -Branch: REL9_3_STABLE [f39bb487d] 2016-09-23 13:49:27 -0400 -Branch: REL9_2_STABLE [53b29d986] 2016-09-23 13:49:27 -0400 ---> - <para> - In <application>pg_dump</application>, never dump range constructor functions - (Tom Lane) - </para> - - <para> - This oversight led to <application>pg_upgrade</application> failures with - extensions containing range types, due to duplicate creation of the - constructor functions. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e97e9c57b] 2016-09-08 10:48:03 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [a88cee90f] 2016-09-08 10:48:03 -0400 -Branch: REL9_5_STABLE [142a110b3] 2016-09-08 10:48:03 -0400 ---> - <para> - In <application>pg_dump</application> with <option>-C</option>, - suppress <literal>TABLESPACE</literal> clause of <command>CREATE DATABASE</command> - if <option>--no-tablespaces</option> is specified (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Simon Riggs <simon@2ndQuadrant.com> -Branch: master [49340627f] 2016-08-29 12:16:18 +0100 -Branch: REL9_6_STABLE Release: REL9_6_0 [216fd7fe7] 2016-08-29 12:18:12 +0100 -Branch: REL9_5_STABLE [9050e5c89] 2016-08-29 12:18:57 +0100 -Branch: REL9_5_STABLE [3aa233f82] 2016-08-29 18:12:04 -0300 ---> - <para> - Make <application>pg_receivexlog</application> work correctly - with <option>--synchronous</option> without slots (Gabriele Bartolini) - </para> - </listitem> - - <listitem> - <para> - Disallow specifying both <option>--source-server</option> - and <option>--source-target</option> options to <application>pg_rewind</application> - (Michael Banck) - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_rewind</application> turn off <varname>synchronous_commit</varname> - in its session on the source server (Michael Banck, Michael Paquier) - </para> - - <para> - This allows <application>pg_rewind</application> to work even when the source - server is using synchronous replication that is not working for some - reason. - </para> - </listitem> - - <listitem> - <para> - In <application>pg_xlogdump</application>, retry opening new WAL segments when - using <option>--follow</option> option (Magnus Hagander) - </para> - - <para> - This allows for a possible delay in the server's creation of the next - segment. - </para> - </listitem> - - <listitem> -<!-- -Author: Fujii Masao <fujii@postgresql.org> -Branch: master [bab7823a4] 2016-08-29 14:34:58 +0900 -Branch: REL9_6_STABLE Release: REL9_6_0 [2802b02a5] 2016-08-29 14:35:40 +0900 -Branch: REL9_5_STABLE [7dfb9b479] 2016-08-29 14:35:51 +0900 -Branch: REL9_4_STABLE [314a25fb3] 2016-08-29 14:38:17 +0900 -Branch: REL9_3_STABLE [5833306dd] 2016-08-29 15:51:30 +0900 ---> - <para> - Fix <application>pg_xlogdump</application> to cope with a WAL file that begins - with a continuation record spanning more than one page (Pavan - Deolasee) - </para> - </listitem> - - <listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [8a503526e] 2016-09-15 09:30:38 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [bea38f34a] 2016-09-15 09:30:37 -0400 -Branch: REL9_5_STABLE [60b6d99da] 2016-09-15 09:30:36 -0400 -Branch: REL9_4_STABLE [1336bd986] 2016-09-15 09:22:52 -0400 ---> - <para> - Fix <filename>contrib/pg_buffercache</filename> to work - when <varname>shared_buffers</varname> exceeds 256GB (KaiGai Kohei) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [6657acc01] 2016-08-17 15:51:10 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [d715b76d1] 2016-08-17 15:51:10 -0400 -Branch: REL9_5_STABLE [509815ed7] 2016-08-17 15:51:10 -0400 -Branch: REL9_4_STABLE [3fa8ec44d] 2016-08-17 15:51:10 -0400 -Branch: REL9_3_STABLE [7baa8bfca] 2016-08-17 15:51:10 -0400 -Branch: REL9_2_STABLE [60bb1bb12] 2016-08-17 15:51:11 -0400 -Branch: REL9_1_STABLE [9942376a5] 2016-08-17 15:51:11 -0400 ---> - <para> - Fix <filename>contrib/intarray/bench/bench.pl</filename> to print the results - of the <command>EXPLAIN</command> it does when given the <option>-e</option> option - (Daniel Gustafsson) - </para> - </listitem> - - <listitem> -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [593d4e47d] 2016-09-15 14:42:29 +0300 -Branch: REL9_6_STABLE Release: REL9_6_0 [fcd93e4af] 2016-09-15 12:55:38 +0300 -Branch: REL9_5_STABLE [e2838c580] 2016-09-15 14:51:42 +0300 -Branch: master [5c6df67e0] 2016-09-15 22:52:51 +0300 -Branch: REL9_6_STABLE Release: REL9_6_0 [9895818d5] 2016-09-15 22:45:08 +0300 -Branch: REL9_5_STABLE [48e5ba61e] 2016-09-15 22:38:01 +0300 ---> - <para> - Support OpenSSL 1.1.0 (Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c3a081846] 2016-09-23 15:50:00 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [5a83e2d4e] 2016-09-23 15:50:00 -0400 -Branch: REL9_5_STABLE [025c9a722] 2016-09-23 15:50:00 -0400 -Branch: REL9_4_STABLE [5d41f27a9] 2016-09-23 15:50:00 -0400 ---> - <para> - Install TAP test infrastructure so that it's available for extension - testing (Craig Ringer) - </para> - - <para> - When <productname>PostgreSQL</productname> has been configured - with <option>--enable-tap-tests</option>, <quote>make install</quote> will now - install the Perl support files for TAP testing where PGXS can find - them. This allows non-core extensions to - use <literal>$(prove_check)</literal> without extra tests. - </para> - </listitem> - - <listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [8614b39bc] 2016-09-19 14:25:57 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [156f974f5] 2016-09-19 14:27:04 -0400 -Branch: REL9_5_STABLE [52acf020a] 2016-09-19 14:27:08 -0400 -Branch: REL9_4_STABLE [ca93b816f] 2016-09-19 14:27:13 -0400 ---> - <para> - In MSVC builds, include <application>pg_recvlogical</application> in a - client-only installation (MauMau) - </para> - </listitem> - - <listitem> -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [a79a68562] 2016-08-18 12:32:42 +0200 -Branch: REL9_6_STABLE Release: REL9_6_0 [191d45793] 2016-08-18 12:37:55 +0200 -Branch: REL9_5_STABLE [a0833b972] 2016-08-18 15:35:12 +0200 -Branch: REL9_4_STABLE [1d990cd8c] 2016-08-18 15:35:26 +0200 -Branch: REL9_3_STABLE [e8aed974b] 2016-08-18 15:35:36 +0200 -Branch: REL9_2_STABLE [35982db49] 2016-08-18 15:35:43 +0200 ---> - <para> - Update Windows time zone mapping to recognize some time zone names - added in recent Windows versions (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [39b691f25] 2016-09-02 17:30:02 -0400 -Branch: REL9_6_STABLE Release: REL9_6_0 [32c9950b3] 2016-09-02 17:29:31 -0400 -Branch: REL9_5_STABLE [73a802a41] 2016-09-02 17:29:31 -0400 -Branch: REL9_4_STABLE [7430ac852] 2016-09-02 17:29:32 -0400 -Branch: REL9_3_STABLE [ee78d4885] 2016-09-02 17:29:32 -0400 -Branch: REL9_2_STABLE [1195b8efe] 2016-09-02 17:29:32 -0400 -Branch: REL9_1_STABLE [380dad29d] 2016-09-02 17:29:32 -0400 ---> - <para> - Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane) - </para> - - <para> - If a dynamic time zone abbreviation does not match any entry in the - referenced time zone, treat it as equivalent to the time zone name. - This avoids unexpected failures when IANA removes abbreviations from - their time zone database, as they did in <application>tzdata</application> - release 2016f and seem likely to do again in the future. The - consequences were not limited to not recognizing the individual - abbreviation; any mismatch caused - the <structname>pg_timezone_abbrevs</structname> view to fail altogether. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> release 2016h - for DST law changes in Palestine and Turkey, plus historical - corrections for Turkey and some regions of Russia. - Switch to numeric abbreviations for some time zones in Antarctica, - the former Soviet Union, and Sri Lanka. - </para> - - <para> - The IANA time zone database previously provided textual abbreviations - for all time zones, sometimes making up abbreviations that have little - or no currency among the local population. They are in process of - reversing that policy in favor of using numeric UTC offsets in zones - where there is no evidence of real-world use of an English - abbreviation. At least for the time being, <productname>PostgreSQL</productname> - will continue to accept such removed abbreviations for timestamp input. - But they will not be shown in the <structname>pg_timezone_names</structname> - view nor used for output. - </para> - - <para> - In this update, <literal>AMT</literal> is no longer shown as being in use to - mean Armenia Time. Therefore, we have changed the <literal>Default</literal> - abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-4"> - <title>Release 9.5.4</title> - - <formalpara> - <title>Release date:</title> - <para>2016-08-11</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.3. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.4</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.5.2, - see <xref linkend="release-9-5-2"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f0c7b789a] 2016-08-08 10:33:46 -0400 -Branch: REL9_5_STABLE [98b0c6280] 2016-08-08 10:33:46 -0400 -Branch: REL9_4_STABLE [f40618092] 2016-08-08 10:33:47 -0400 -Branch: REL9_3_STABLE [6c954a6a5] 2016-08-08 10:33:47 -0400 -Branch: REL9_2_STABLE [8b32516db] 2016-08-08 10:33:47 -0400 -Branch: REL9_1_STABLE [5327b764a] 2016-08-08 10:33:47 -0400 ---> - <para> - Fix possible mis-evaluation of - nested <literal>CASE</literal>-<literal>WHEN</literal> expressions (Heikki - Linnakangas, Michael Paquier, Tom Lane) - </para> - - <para> - A <literal>CASE</literal> expression appearing within the test value - subexpression of another <literal>CASE</literal> could become confused about - whether its own test value was null or not. Also, inlining of a SQL - function implementing the equality operator used by - a <literal>CASE</literal> expression could result in passing the wrong test - value to functions called within a <literal>CASE</literal> expression in the - SQL function's body. If the test values were of different data - types, a crash might result; moreover such situations could be abused - to allow disclosure of portions of server memory. (CVE-2016-5423) - </para> - </listitem> - - <listitem> -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [fcd15f135] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [286c8bc64] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [254eb04f1] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [95a6855c5] 2016-08-08 10:07:52 -0400 -Branch: REL9_2_STABLE [e8f4922c8] 2016-08-08 10:07:53 -0400 -Branch: REL9_1_STABLE [a2385cac1] 2016-08-08 10:07:54 -0400 -Branch: master [41f18f021] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [8adff3783] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [6df8ff49d] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [c1b048f49] 2016-08-08 10:07:52 -0400 -Branch: REL9_2_STABLE [f1d0b09cf] 2016-08-08 10:07:53 -0400 -Branch: REL9_1_STABLE [d2dd5df51] 2016-08-08 10:07:54 -0400 -Branch: REL9_2_STABLE [a19edcd24] 2016-08-08 10:07:53 -0400 -Branch: REL9_1_STABLE [c761c9fee] 2016-08-08 10:07:54 -0400 -Branch: master [bd6537185] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [2e5e90d8d] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [18392ed4a] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [395d565ac] 2016-08-08 10:07:52 -0400 -Branch: REL9_2_STABLE [483715529] 2016-08-08 10:07:53 -0400 -Branch: REL9_1_STABLE [2d69f5b12] 2016-08-08 10:07:54 -0400 -Branch: master [142c24c23] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [ec3aebdbd] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [6bec1a6c8] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [0f679d2c1] 2016-08-08 10:07:52 -0400 -Branch: REL9_2_STABLE [ffbdab65d] 2016-08-08 10:07:53 -0400 -Branch: REL9_1_STABLE [61c2cd88d] 2016-08-08 10:07:53 -0400 -Branch: master [c40071717] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [640768ceb] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [aed038795] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [05abd3bcf] 2016-08-08 10:07:52 -0400 -Branch: REL9_2_STABLE [a466ea33c] 2016-08-08 10:07:52 -0400 -Branch: REL9_1_STABLE [ba8c4089d] 2016-08-08 10:07:53 -0400 -Branch: master [9d924e9a6] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [6655c0757] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [afabfcc0e] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [dfb2d8039] 2016-08-08 10:07:51 -0400 -Branch: REL9_2_STABLE [f744e8906] 2016-08-08 10:07:52 -0400 -Branch: REL9_1_STABLE [cf7e5f55b] 2016-08-08 10:07:53 -0400 -Branch: master [984e5beb3] 2016-08-08 10:07:46 -0400 -Branch: REL9_5_STABLE [db951dd19] 2016-08-08 10:07:50 -0400 -Branch: REL9_4_STABLE [fed83cdac] 2016-08-08 10:07:51 -0400 -Branch: REL9_3_STABLE [a44d71351] 2016-08-08 10:07:51 -0400 -Branch: REL9_2_STABLE [0cc3b12d2] 2016-08-08 10:07:52 -0400 -Branch: REL9_1_STABLE [aed766ab5] 2016-08-08 10:07:53 -0400 ---> - <para> - Fix client programs' handling of special characters in database and - role names (Noah Misch, Nathan Bossart, Michael Paquier) - </para> - - <para> - Numerous places in <application>vacuumdb</application> and other client programs - could become confused by database and role names containing double - quotes or backslashes. Tighten up quoting rules to make that safe. - Also, ensure that when a conninfo string is used as a database name - parameter to these programs, it is correctly treated as such throughout. - </para> - - <para> - Fix handling of paired double quotes - in <application>psql</application>'s <command>\connect</command> - and <command>\password</command> commands to match the documentation. - </para> - - <para> - Introduce a new <option>-reuse-previous</option> option - in <application>psql</application>'s <command>\connect</command> command to allow - explicit control of whether to re-use connection parameters from a - previous connection. (Without this, the choice is based on whether - the database name looks like a conninfo string, as before.) This - allows secure handling of database names containing special - characters in <application>pg_dumpall</application> scripts. - </para> - - <para> - <application>pg_dumpall</application> now refuses to deal with database and role - names containing carriage returns or newlines, as it seems impractical - to quote those characters safely on Windows. In future we may reject - such names on the server side, but that step has not been taken yet. - </para> - - <para> - These are considered security fixes because crafted object names - containing special characters could have been used to execute - commands with superuser privileges the next time a superuser - executes <application>pg_dumpall</application> or other routine maintenance - operations. (CVE-2016-5424) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [4452000f3] 2016-07-26 15:25:02 -0400 -Branch: REL9_5_STABLE [d2ef7758d] 2016-07-26 15:25:02 -0400 -Branch: REL9_4_STABLE [0733188cc] 2016-07-26 15:25:02 -0400 -Branch: REL9_3_STABLE [c235d510e] 2016-07-26 15:25:02 -0400 -Branch: REL9_2_STABLE [bcdd8a194] 2016-07-26 15:25:02 -0400 -Branch: REL9_1_STABLE [d243bf77c] 2016-07-26 15:25:02 -0400 -Branch: master [9492cf86e] 2016-07-28 16:09:15 -0400 -Branch: REL9_5_STABLE [1e2f96f0a] 2016-07-28 16:09:15 -0400 -Branch: REL9_4_STABLE [66f7e4081] 2016-07-28 16:09:15 -0400 -Branch: REL9_3_STABLE [069714387] 2016-07-28 16:09:15 -0400 -Branch: REL9_2_STABLE [7b8526e5d] 2016-07-28 16:09:15 -0400 -Branch: REL9_1_STABLE [c0e5096fc] 2016-07-28 16:09:15 -0400 ---> - <para> - Fix corner-case misbehaviors for <literal>IS NULL</literal>/<literal>IS NOT - NULL</literal> applied to nested composite values (Andrew Gierth, Tom Lane) - </para> - - <para> - The SQL standard specifies that <literal>IS NULL</literal> should return - TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS - NULL</literal> yields TRUE), but this is not meant to apply recursively - (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</literal> yields FALSE). - The core executor got this right, but certain planner optimizations - treated the test as recursive (thus producing TRUE in both cases), - and <filename>contrib/postgres_fdw</filename> could produce remote queries - that misbehaved similarly. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [eae1ad9b6] 2016-05-23 19:23:36 -0400 -Branch: REL9_5_STABLE [e504d915b] 2016-05-23 19:23:36 -0400 ---> - <para> - Fix <quote>unrecognized node type</quote> error for <command>INSERT ... ON - CONFLICT</command> within a recursive CTE (a <literal>WITH</literal> item) (Peter - Geoghegan) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [26e66184d] 2016-05-11 16:20:23 -0400 -Branch: REL9_5_STABLE [58d802410] 2016-05-11 16:20:03 -0400 ---> - <para> - Fix <command>INSERT ... ON CONFLICT</command> to successfully match index - expressions or index predicates that are simplified during the - planner's expression preprocessing phase (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9c810a2ed] 2016-07-04 16:09:11 -0400 -Branch: REL9_5_STABLE [31ce32ade] 2016-07-04 16:09:11 -0400 ---> - <para> - Correctly handle violations of exclusion constraints that apply to - the target table of an <literal>INSERT ... ON CONFLICT</literal> command, - but are not one of the selected arbiter indexes (Tom Lane) - </para> - - <para> - Such a case should raise a normal constraint-violation error, but it - got into an infinite loop instead. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8a13d5e6d] 2016-05-11 17:06:53 -0400 -Branch: REL9_5_STABLE [428484ce1] 2016-05-11 17:06:53 -0400 ---> - <para> - Fix <command>INSERT ... ON CONFLICT</command> to not fail if the target - table has a unique index on OID (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [4c56f3269] 2016-06-16 17:16:32 -0400 -Branch: REL9_5_STABLE [a41b14f94] 2016-06-16 17:16:40 -0400 -Branch: REL9_4_STABLE [2a8b5d210] 2016-06-16 17:16:44 -0400 -Branch: REL9_3_STABLE [519445ba2] 2016-06-16 17:16:48 -0400 -Branch: REL9_2_STABLE [f66e0fec3] 2016-06-16 17:16:53 -0400 -Branch: REL9_1_STABLE [7b97dafa2] 2016-06-16 17:16:58 -0400 ---> - <para> - Make the <type>inet</type> and <type>cidr</type> data types properly reject - IPv6 addresses with too many colon-separated fields (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [278148907] 2016-07-16 14:42:37 -0400 -Branch: REL9_5_STABLE [884bae143] 2016-07-16 14:42:37 -0400 -Branch: REL9_4_STABLE [59fa0195c] 2016-07-16 14:42:37 -0400 -Branch: REL9_3_STABLE [16e28fcec] 2016-07-16 14:42:37 -0400 -Branch: REL9_2_STABLE [89b301104] 2016-07-16 14:42:37 -0400 -Branch: REL9_1_STABLE [608cc0c41] 2016-07-16 14:42:37 -0400 ---> - <para> - Prevent crash in <function>close_ps()</function> - (the <type>point</type> <literal>##</literal> <type>lseg</type> operator) - for NaN input coordinates (Tom Lane) - </para> - - <para> - Make it return NULL instead of crashing. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0daeba0e9] 2016-07-01 11:40:33 -0400 -Branch: REL9_5_STABLE [40d0bd8d5] 2016-07-01 11:40:22 -0400 -Branch: REL9_4_STABLE [b25d87f91] 2016-07-01 11:40:22 -0400 -Branch: REL9_3_STABLE [b0f20c2ea] 2016-07-01 11:40:22 -0400 ---> - <para> - Avoid possible crash in <function>pg_get_expr()</function> when inconsistent - values are passed to it (Michael Paquier, Thomas Munro) - </para> - </listitem> - - <listitem> -<!-- -Author: Peter Eisentraut <peter_e@gmx.net> -Branch: master [9a46324fd] 2016-08-08 11:12:59 -0400 -Branch: REL9_5_STABLE [04cee8f83] 2016-08-08 11:13:25 -0400 -Branch: REL9_4_STABLE [20f870fd7] 2016-08-08 11:13:34 -0400 -Branch: REL9_3_STABLE [43d7a0af5] 2016-08-08 11:13:40 -0400 -Branch: REL9_2_STABLE [b0134fe84] 2016-08-08 11:13:45 -0400 -Branch: REL9_1_STABLE [d555d2642] 2016-08-08 11:13:51 -0400 ---> - <para> - Fix several one-byte buffer over-reads in <function>to_number()</function> - (Peter Eisentraut) - </para> - - <para> - In several cases the <function>to_number()</function> function would read one - more character than it should from the input string. There is a - small chance of a crash, if the input happens to be adjacent to the - end of memory. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [874fe3aea] 2016-06-27 15:57:50 -0400 -Branch: REL9_5_STABLE [1651b9aa2] 2016-06-27 15:57:21 -0400 -Branch: REL9_4_STABLE [dc9e03bf4] 2016-06-27 15:57:21 -0400 -Branch: REL9_3_STABLE [17bfef80e] 2016-06-27 15:57:21 -0400 ---> - <para> - Do not run the planner on the query contained in <literal>CREATE - MATERIALIZED VIEW</literal> or <literal>CREATE TABLE AS</literal> - when <literal>WITH NO DATA</literal> is specified (Michael Paquier, - Tom Lane) - </para> - - <para> - This avoids some unnecessary failure conditions, for example if a - stable function invoked by the materialized view depends on a table - that doesn't exist yet. - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [bfa2ab56b] 2016-07-15 17:49:48 -0700 -Branch: REL9_5_STABLE [1f9534b49] 2016-07-15 17:49:48 -0700 -Branch: REL9_4_STABLE [3d5b227ba] 2016-07-15 17:49:48 -0700 -Branch: REL9_3_STABLE [2e51ae1f6] 2016-07-15 17:49:48 -0700 -Branch: REL9_2_STABLE [941557f18] 2016-07-15 17:49:48 -0700 -Branch: REL9_1_STABLE [37276017f] 2016-07-15 17:49:49 -0700 ---> - <para> - Avoid unsafe intermediate state during expensive paths - through <function>heap_update()</function> (Masahiko Sawada, Andres Freund) - </para> - - <para> - Previously, these cases locked the target tuple (by setting its XMAX) - but did not WAL-log that action, thus risking data integrity problems - if the page were spilled to disk and then a database crash occurred - before the tuple update could be completed. - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [a4d357bfb] 2016-07-15 14:45:37 -0700 -Branch: REL9_5_STABLE [b33e81cba] 2016-07-15 14:45:38 -0700 -Branch: REL9_4_STABLE [f66828ba6] 2016-07-15 14:50:46 -0700 -Branch: REL9_3_STABLE [46acbeb2f] 2016-07-15 14:51:03 -0700 ---> - <para> - Fix hint bit update during WAL replay of row locking operations - (Andres Freund) - </para> - - <para> - The only known consequence of this problem is that row locks held by - a prepared, but uncommitted, transaction might fail to be enforced - after a crash and restart. - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [533e9c6b0] 2016-07-15 14:17:20 -0400 -Branch: REL9_5_STABLE [649dd1b58] 2016-07-15 14:17:20 -0400 -Branch: REL9_4_STABLE [166873dd0] 2016-07-15 14:17:20 -0400 -Branch: REL9_3_STABLE [6c243f90a] 2016-07-15 14:17:20 -0400 ---> - <para> - Avoid unnecessary <quote>could not serialize access</quote> errors when - acquiring <literal>FOR KEY SHARE</literal> row locks in serializable mode - (Álvaro Herrera) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [69f526aa4] 2016-06-03 15:14:50 -0400 -Branch: REL9_5_STABLE [a102f98e2] 2016-06-03 15:14:35 -0400 -Branch: master [9eaf5be50] 2016-06-03 18:07:14 -0400 -Branch: REL9_5_STABLE [8355897ff] 2016-06-03 18:07:14 -0400 ---> - <para> - Make sure <quote>expanded</quote> datums returned by a plan node are - read-only (Tom Lane) - </para> - - <para> - This avoids failures in some cases where the result of a lower plan - node is referenced in multiple places in upper nodes. So far as - core <productname>PostgreSQL</productname> is concerned, only array values - returned by PL/pgSQL functions are at risk; but extensions might - use expanded datums for other things. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0b0baf262] 2016-06-16 12:17:38 -0400 -Branch: REL9_5_STABLE [4f5995dd9] 2016-06-16 12:17:11 -0400 -Branch: REL9_4_STABLE [e542bfe61] 2016-06-16 12:17:16 -0400 -Branch: REL9_3_STABLE [29987b2e1] 2016-06-16 12:17:20 -0400 -Branch: REL9_2_STABLE [23ed284a5] 2016-06-16 12:17:25 -0400 -Branch: master [e45e990e4] 2016-06-22 11:55:18 -0400 -Branch: REL9_5_STABLE [f2c28bb1f] 2016-06-22 11:55:24 -0400 -Branch: REL9_4_STABLE [f22a3e5ce] 2016-06-22 11:55:28 -0400 -Branch: REL9_3_STABLE [dafdcbb6c] 2016-06-22 11:55:32 -0400 -Branch: REL9_2_STABLE [dd41661d2] 2016-06-22 11:55:35 -0400 ---> - <para> - Avoid crash in <literal>postgres -C</literal> when the specified variable - has a null string value (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [80b346c20] 2016-07-29 12:52:57 -0400 -Branch: REL9_5_STABLE [c8966a925] 2016-07-29 12:53:02 -0400 ---> - <para> - Prevent unintended waits for the receiver in WAL sender processes - (Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f8c58554d] 2016-06-30 12:37:02 -0400 -Branch: REL9_5_STABLE [8caf9fe62] 2016-06-30 12:37:02 -0400 -Branch: REL9_4_STABLE [1843d88e0] 2016-06-30 12:37:02 -0400 ---> - <para> - Fix possible loss of large subtransactions in logical decoding - (Petru-Florin Mihancea) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [bcbecbce2] 2016-08-07 13:15:55 -0400 -Branch: REL9_5_STABLE [71dca408c] 2016-08-07 13:15:55 -0400 -Branch: REL9_4_STABLE [c63588feb] 2016-08-07 13:15:55 -0400 ---> - <para> - Fix failure of logical decoding when a subtransaction contains no - actual changes (Marko Tiikkaja, Andrew Gierth) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [52e8fc3e2] 2016-05-25 17:48:15 -0400 -Branch: REL9_5_STABLE [b2355a29c] 2016-05-25 17:48:15 -0400 -Branch: REL9_4_STABLE [4b612a78f] 2016-05-25 17:48:15 -0400 -Branch: REL9_3_STABLE [463207630] 2016-05-25 17:48:15 -0400 ---> - <para> - Ensure that backends see up-to-date statistics for shared catalogs - (Tom Lane) - </para> - - <para> - The statistics collector failed to update the statistics file for - shared catalogs after a request from a regular backend. This problem - was partially masked because the autovacuum launcher regularly makes - requests that did cause such updates; however, it became obvious with - autovacuum disabled. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [22b27b4c9] 2016-05-31 15:55:15 -0400 -Branch: REL9_5_STABLE [47215c16f] 2016-05-31 15:54:46 -0400 -Branch: REL9_4_STABLE [3ffff7257] 2016-05-31 15:54:46 -0400 -Branch: REL9_3_STABLE [a84cad224] 2016-05-31 15:54:47 -0400 ---> - <para> - Avoid redundant writes of the statistics files when multiple - backends request updates close together (Tom Lane, Tomas Vondra) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [996d27397] 2016-05-24 15:20:36 -0400 -Branch: REL9_5_STABLE [a34c3dd50] 2016-05-24 15:20:12 -0400 -Branch: REL9_4_STABLE [defe936ef] 2016-05-24 15:20:12 -0400 -Branch: REL9_3_STABLE [9f3e4c813] 2016-05-24 15:20:12 -0400 -Branch: REL9_2_STABLE [2e7f0c34a] 2016-05-24 15:20:12 -0400 -Branch: REL9_1_STABLE [fe1731fca] 2016-05-24 15:20:12 -0400 -Branch: master [2d2e40e3b] 2016-05-24 15:47:51 -0400 -Branch: REL9_5_STABLE [bbbe2c97e] 2016-05-24 15:47:51 -0400 -Branch: REL9_4_STABLE [edd8873ff] 2016-05-24 15:47:51 -0400 -Branch: REL9_3_STABLE [ff98ae908] 2016-05-24 15:47:51 -0400 -Branch: REL9_2_STABLE [4cf0978ea] 2016-05-24 15:47:51 -0400 -Branch: REL9_1_STABLE [5551dac59] 2016-05-24 15:47:51 -0400 ---> - <para> - Avoid consuming a transaction ID during <command>VACUUM</command> - (Alexander Korotkov) - </para> - - <para> - Some cases in <command>VACUUM</command> unnecessarily caused an XID to be - assigned to the current transaction. Normally this is negligible, - but if one is up against the XID wraparound limit, consuming more - XIDs during anti-wraparound vacuums is a very bad thing. - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [e3ad3ffa6] 2016-06-24 18:29:28 -0400 -Branch: REL9_5_STABLE [d372cb173] 2016-06-24 18:29:28 -0400 -Branch: REL9_4_STABLE [61b24fef8] 2016-06-24 18:29:28 -0400 -Branch: REL9_3_STABLE [28f294afd] 2016-06-24 18:29:28 -0400 ---> - <para> - Prevent possible failure when vacuuming multixact IDs in an - installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, - Álvaro Herrera) - </para> - - <para> - The usual symptom of this bug is errors - like <quote>MultiXactId <replaceable>NNN</replaceable> has not been created - yet -- apparent wraparound</quote>. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f64340e74] 2016-06-06 17:44:17 -0400 -Branch: REL9_5_STABLE [5acc58c5e] 2016-06-06 17:44:17 -0400 -Branch: REL9_4_STABLE [a4400c251] 2016-06-06 17:44:17 -0400 -Branch: REL9_3_STABLE [5f3e0e84b] 2016-06-06 17:44:17 -0400 -Branch: REL9_2_STABLE [3201709de] 2016-06-06 17:44:18 -0400 -Branch: REL9_1_STABLE [32ceb8dfb] 2016-06-06 17:44:18 -0400 ---> - <para> - When a manual <command>ANALYZE</command> specifies a column list, don't - reset the table's <literal>changes_since_analyze</literal> counter - (Tom Lane) - </para> - - <para> - If we're only analyzing some columns, we should not prevent routine - auto-analyze from happening for the other columns. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [95bee941b] 2016-08-07 18:52:02 -0400 -Branch: REL9_5_STABLE [cb5c14984] 2016-08-07 18:52:02 -0400 -Branch: REL9_4_STABLE [8f180a6cc] 2016-08-07 18:52:02 -0400 -Branch: REL9_3_STABLE [20a859504] 2016-08-07 18:52:02 -0400 -Branch: REL9_2_STABLE [127d73009] 2016-08-07 18:52:02 -0400 -Branch: REL9_1_STABLE [a449ad095] 2016-08-07 18:52:02 -0400 ---> - <para> - Fix <command>ANALYZE</command>'s overestimation of <literal>n_distinct</literal> - for a unique or nearly-unique column with many null entries (Tom - Lane) - </para> - - <para> - The nulls could get counted as though they were themselves distinct - values, leading to serious planner misestimates in some types of - queries. - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [15739393e] 2016-05-10 16:23:54 -0300 -Branch: REL9_5_STABLE [7516cdb76] 2016-05-10 16:23:54 -0300 -Branch: REL9_4_STABLE [e9a273199] 2016-05-10 16:23:54 -0300 -Branch: REL9_3_STABLE [92ebe509e] 2016-05-10 16:23:54 -0300 -Branch: REL9_2_STABLE [ca4c6d043] 2016-05-10 16:23:54 -0300 -Branch: REL9_1_STABLE [2152762c5] 2016-05-10 16:23:54 -0300 ---> - <para> - Prevent autovacuum from starting multiple workers for the same shared - catalog (Álvaro Herrera) - </para> - - <para> - Normally this isn't much of a problem because the vacuum doesn't take - long anyway; but in the case of a severely bloated catalog, it could - result in all but one worker uselessly waiting instead of doing - useful work on other tables. - </para> - </listitem> - - <listitem> -<!-- -Author: Kevin Grittner <kgrittn@postgresql.org> -Branch: master [7392eed7c] 2016-06-02 12:23:01 -0500 -Branch: REL9_5_STABLE [236d569f9] 2016-06-02 12:23:19 -0500 ---> - <para> - Fix bug in b-tree mark/restore processing (Kevin Grittner) - </para> - - <para> - This error could lead to incorrect join results or assertion failures - in a merge join whose inner source node is a b-tree indexscan. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e89526d4f] 2016-08-06 14:28:37 -0400 -Branch: REL9_5_STABLE [ee5d1de04] 2016-08-06 14:28:37 -0400 -Branch: REL9_4_STABLE [98d5f366b] 2016-08-06 14:28:38 -0400 ---> - <para> - Avoid duplicate buffer lock release when abandoning a b-tree index - page deletion attempt (Tom Lane) - </para> - - <para> - This mistake prevented <command>VACUUM</command> from completing in some - cases involving corrupt b-tree indexes. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8cf739de8] 2016-06-24 16:57:36 -0400 -Branch: REL9_5_STABLE [07f69137b] 2016-06-24 16:57:36 -0400 ---> - <para> - Fix building of large (bigger than <varname>shared_buffers</varname>) - hash indexes (Tom Lane) - </para> - - <para> - The code path used for large indexes contained a bug causing - incorrect hash values to be inserted into the index, so that - subsequent index searches always failed, except for tuples inserted - into the index after the initial build. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [1acf75725] 2016-07-14 18:45:59 -0400 -Branch: REL9_5_STABLE [503546376] 2016-07-14 18:46:00 -0400 -Branch: REL9_4_STABLE [054052b3a] 2016-07-14 18:46:00 -0400 -Branch: REL9_3_STABLE [57dba87a7] 2016-07-14 18:46:00 -0400 -Branch: REL9_2_STABLE [042009f24] 2016-07-14 18:46:00 -0400 ---> - <para> - Prevent infinite loop in GiST index build for geometric columns - containing NaN component values (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8a859691d] 2016-06-05 11:53:06 -0400 -Branch: REL9_5_STABLE [a7aa61ffe] 2016-06-05 11:53:06 -0400 ---> - <para> - Fix possible crash during a nearest-neighbor (<literal>ORDER BY</literal> - distance) indexscan on a <filename>contrib/btree_gist</filename> index on - an <type>interval</type> column (Peter Geoghegan) - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [975ad4e60] 2016-05-30 14:47:22 -0400 -Branch: REL9_5_STABLE [2973d7d02] 2016-05-30 14:47:22 -0400 ---> - <para> - Fix <quote>PANIC: failed to add BRIN tuple</quote> error when attempting - to update a BRIN index entry (Álvaro Herrera) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8d498a5c8] 2016-08-04 16:06:14 -0400 -Branch: REL9_5_STABLE [c1d6ee879] 2016-08-04 16:06:14 -0400 ---> - <para> - Fix possible crash during background worker shutdown (Dmitry Ivanov) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [baebab3ac] 2016-07-12 18:07:03 -0400 -Branch: REL9_5_STABLE [a0943dbbe] 2016-07-12 18:06:50 -0400 ---> - <para> - Fix PL/pgSQL's handling of the <literal>INTO</literal> clause - within <command>IMPORT FOREIGN SCHEMA</command> commands (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Peter Eisentraut <peter_e@gmx.net> -Branch: master [f36ca9af0] 2016-07-17 09:15:37 -0400 -Branch: REL9_5_STABLE [fb279fc7a] 2016-07-17 09:24:06 -0400 -Branch: REL9_4_STABLE [97d741650] 2016-07-17 09:37:33 -0400 -Branch: REL9_3_STABLE [805f2bb53] 2016-07-17 09:38:23 -0400 -Branch: REL9_2_STABLE [6c0be49b2] 2016-07-17 09:39:51 -0400 -Branch: REL9_1_STABLE [84d679204] 2016-07-17 09:41:08 -0400 ---> - <para> - Fix <filename>contrib/btree_gin</filename> to handle the smallest - possible <type>bigint</type> value correctly (Peter Eisentraut) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [69dc5ae40] 2016-08-05 18:58:12 -0400 -Branch: REL9_5_STABLE [cae0d4f9b] 2016-08-05 18:58:19 -0400 -Branch: REL9_4_STABLE [a3cd60ebf] 2016-08-05 18:58:23 -0400 -Branch: REL9_3_STABLE [c3107f18a] 2016-08-05 18:58:28 -0400 -Branch: REL9_2_STABLE [3e40d9227] 2016-08-05 18:58:32 -0400 -Branch: REL9_1_STABLE [1f63b0e09] 2016-08-05 18:58:36 -0400 ---> - <para> - Teach libpq to correctly decode server version from future servers - (Peter Eisentraut) - </para> - - <para> - It's planned to switch to two-part instead of three-part server - version numbers for releases after 9.6. Make sure - that <function>PQserverVersion()</function> returns the correct value for - such cases. - </para> - </listitem> - - <listitem> -<!-- -Author: Michael Meskes <meskes@postgresql.org> -Branch: master [3ebc88e56] 2016-08-01 15:08:12 +0200 -Branch: REL9_5_STABLE [dc6b20c6b] 2016-08-01 15:09:23 +0200 -Branch: REL9_4_STABLE [057404854] 2016-08-01 15:09:12 +0200 -Branch: REL9_3_STABLE [3ca359426] 2016-08-01 15:08:59 +0200 -Branch: REL9_2_STABLE [295edbecf] 2016-08-01 15:08:48 +0200 -Branch: REL9_1_STABLE [c15f502b6] 2016-08-01 15:08:36 +0200 ---> - <para> - Fix <application>ecpg</application>'s code for <literal>unsigned long long</literal> - array elements (Michael Meskes) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e2e95f5ef] 2016-08-02 12:49:40 -0400 -Branch: REL9_5_STABLE [89c30d113] 2016-08-02 12:49:41 -0400 -Branch: REL9_4_STABLE [2ff8a2fc0] 2016-08-02 12:49:04 -0400 -Branch: REL9_3_STABLE [6693c9d7b] 2016-08-02 12:49:09 -0400 -Branch: REL9_2_STABLE [a5a7caaa1] 2016-08-02 12:49:15 -0400 ---> - <para> - In <application>pg_dump</application> with both <option>-c</option> and <option>-C</option> - options, avoid emitting an unwanted <literal>CREATE SCHEMA public</literal> - command (David Johnston, Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e652273e0] 2016-06-02 13:28:17 -0400 -Branch: REL9_5_STABLE [404429038] 2016-06-02 13:28:18 -0400 -Branch: REL9_4_STABLE [96aac0e6d] 2016-06-02 13:27:53 -0400 -Branch: REL9_3_STABLE [5c9724305] 2016-06-02 13:27:53 -0400 -Branch: master [6c72a28e5] 2016-06-03 11:29:38 -0400 -Branch: REL9_5_STABLE [ec5622351] 2016-06-03 11:29:20 -0400 -Branch: REL9_4_STABLE [53c2601a5] 2016-06-03 11:29:20 -0400 -Branch: REL9_3_STABLE [4a21c6fd7] 2016-06-03 11:29:20 -0400 ---> - <para> - Improve handling of <systemitem>SIGTERM</systemitem>/control-C in - parallel <application>pg_dump</application> and <application>pg_restore</application> (Tom - Lane) - </para> - - <para> - Make sure that the worker processes will exit promptly, and also arrange - to send query-cancel requests to the connected backends, in case they - are doing something long-running such as a <command>CREATE INDEX</command>. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9abd64ec9] 2016-05-25 12:40:12 -0400 -Branch: REL9_5_STABLE [af6555b80] 2016-05-25 12:39:57 -0400 -Branch: REL9_4_STABLE [ea274b2f4] 2016-05-25 12:39:57 -0400 -Branch: REL9_3_STABLE [1c8205159] 2016-05-25 12:39:57 -0400 ---> - <para> - Fix error reporting in parallel <application>pg_dump</application> - and <application>pg_restore</application> (Tom Lane) - </para> - - <para> - Previously, errors reported by <application>pg_dump</application> - or <application>pg_restore</application> worker processes might never make it to - the user's console, because the messages went through the master - process, and there were various deadlock scenarios that would prevent - the master process from passing on the messages. Instead, just print - everything to <literal>stderr</literal>. In some cases this will result in - duplicate messages (for instance, if all the workers report a server - shutdown), but that seems better than no message. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [df8d2d8c4] 2016-05-26 10:50:30 -0400 -Branch: REL9_5_STABLE [6479df137] 2016-05-26 10:50:38 -0400 -Branch: REL9_4_STABLE [d32bc204c] 2016-05-26 10:50:42 -0400 -Branch: REL9_3_STABLE [b9784e1f7] 2016-05-26 10:50:46 -0400 ---> - <para> - Ensure that parallel <application>pg_dump</application> - or <application>pg_restore</application> on Windows will shut down properly - after an error (Kyotaro Horiguchi) - </para> - - <para> - Previously, it would report the error, but then just sit until - manually stopped by the user. - </para> - </listitem> - - <listitem> -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [d74048def] 2016-05-26 22:14:23 +0200 -Branch: REL9_5_STABLE [47e596976] 2016-05-26 22:18:04 +0200 ---> - <para> - Make parallel <application>pg_dump</application> fail cleanly when run against a - standby server (Magnus Hagander) - </para> - - <para> - This usage is not supported - unless <option>--no-synchronized-snapshots</option> is specified, but the - error was not handled very well. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [cae2bb198] 2016-05-26 11:51:04 -0400 -Branch: REL9_5_STABLE [64b296976] 2016-05-26 11:51:11 -0400 -Branch: REL9_4_STABLE [f2f18a37c] 2016-05-26 11:51:16 -0400 -Branch: REL9_3_STABLE [99565a1ef] 2016-05-26 11:51:20 -0400 ---> - <para> - Make <application>pg_dump</application> behave better when built without zlib - support (Kyotaro Horiguchi) - </para> - - <para> - It didn't work right for parallel dumps, and emitted some rather - pointless warnings in other cases. - </para> - </listitem> - - <listitem> -<!-- -Author: Fujii Masao <fujii@postgresql.org> -Branch: master [74d8c95b7] 2016-08-01 17:36:14 +0900 -Branch: REL9_5_STABLE [928e92fda] 2016-08-01 17:37:18 +0900 -Branch: REL9_4_STABLE [dbe56f2a1] 2016-08-01 17:37:41 +0900 -Branch: REL9_3_STABLE [013f42372] 2016-08-01 17:37:53 +0900 -Branch: REL9_2_STABLE [a21617759] 2016-08-01 17:38:00 +0900 -Branch: REL9_1_STABLE [366f4a962] 2016-08-01 17:38:05 +0900 ---> - <para> - Make <application>pg_basebackup</application> accept <literal>-Z 0</literal> as - specifying no compression (Fujii Masao) - </para> - </listitem> - - <listitem> -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [e8564ef03] 2016-07-23 20:30:03 -0400 -Branch: REL9_5_STABLE [cf35406f9] 2016-07-23 20:30:40 -0400 -Branch: REL9_4_STABLE [f0c9e4697] 2016-07-23 20:30:44 -0400 -Branch: REL9_3_STABLE [98b7a3cf2] 2016-07-23 20:30:48 -0400 -Branch: REL9_2_STABLE [a4daf59ee] 2016-07-23 20:30:55 -0400 -Branch: REL9_1_STABLE [b1fa6c0eb] 2016-07-23 20:30:59 -0400 ---> - <para> - Fix makefiles' rule for building AIX shared libraries to be safe for - parallel make (Noah Misch) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [30b2731bd] 2016-07-09 16:47:38 -0400 -Branch: REL9_5_STABLE [f80395ca1] 2016-07-09 16:47:39 -0400 -Branch: REL9_4_STABLE [02a898b00] 2016-07-09 16:47:39 -0400 -Branch: REL9_3_STABLE [57e9ea2dd] 2016-07-11 11:24:04 -0400 -Branch: REL9_2_STABLE [fdf2ee62e] 2016-07-11 11:24:04 -0400 -Branch: REL9_1_STABLE [71af6c006] 2016-07-11 11:24:04 -0400 ---> - <para> - Fix TAP tests and MSVC scripts to work when build directory's path - name contains spaces (Michael Paquier, Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9dd4178ce] 2016-05-27 10:40:20 -0400 -Branch: REL9_5_STABLE [cea17ba07] 2016-05-27 10:40:20 -0400 -Branch: REL9_4_STABLE [c2651cd24] 2016-05-27 10:40:20 -0400 -Branch: REL9_3_STABLE [1f1e70a87] 2016-05-27 10:40:20 -0400 ---> - <para> - Be more predictable about reporting <quote>statement timeout</quote> - versus <quote>lock timeout</quote> (Tom Lane) - </para> - - <para> - On heavily loaded machines, the regression tests sometimes failed due - to reporting <quote>lock timeout</quote> even though the statement timeout - should have occurred first. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b3399cb0f] 2016-07-21 13:11:00 -0400 -Branch: REL9_5_STABLE [fd507d542] 2016-07-21 13:11:00 -0400 -Branch: master [9d7abca90] 2016-07-22 15:41:39 -0400 -Branch: REL9_5_STABLE [2aa2533f2] 2016-07-22 15:41:40 -0400 -Branch: master [95810ed8e] 2016-07-21 14:24:07 -0400 -Branch: REL9_5_STABLE [95e8b44f0] 2016-07-21 14:24:07 -0400 -Branch: REL9_4_STABLE [dfddc452d] 2016-07-21 14:24:07 -0400 -Branch: REL9_3_STABLE [0060638c8] 2016-07-21 14:24:07 -0400 -Branch: REL9_2_STABLE [52502e7a5] 2016-07-21 14:24:07 -0400 -Branch: REL9_1_STABLE [f61ecd01e] 2016-07-21 14:24:07 -0400 -Branch: master [d70d11915] 2016-07-21 16:52:35 -0400 -Branch: REL9_5_STABLE [d365dc3d1] 2016-07-21 16:52:36 -0400 -Branch: REL9_4_STABLE [1156a9db8] 2016-07-21 16:52:36 -0400 -Branch: REL9_3_STABLE [e15e7886e] 2016-07-21 16:52:36 -0400 -Branch: REL9_2_STABLE [a1e750553] 2016-07-21 16:52:36 -0400 -Branch: REL9_1_STABLE [ba64aed70] 2016-07-21 16:52:36 -0400 ---> - <para> - Make regression tests safe for Danish and Welsh locales (Jeff Janes, - Tom Lane) - </para> - - <para> - Change some test data that triggered the unusual sorting rules of - these locales. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [19d477aa6] 2016-07-19 15:59:36 -0400 -Branch: REL9_4_STABLE [590a7f82b] 2016-07-19 15:59:36 -0400 -Branch: REL9_3_STABLE [3928132ea] 2016-07-19 15:59:36 -0400 -Branch: REL9_2_STABLE [cd951aa61] 2016-07-19 15:59:36 -0400 -Branch: REL9_1_STABLE [5db14fad0] 2016-07-19 15:59:36 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [0aabe80c6] 2016-07-19 17:53:31 -0400 -Branch: REL9_4_STABLE [bdbcfba35] 2016-07-19 17:53:31 -0400 -Branch: REL9_3_STABLE [f102bd868] 2016-07-19 17:53:31 -0400 -Branch: REL9_2_STABLE [4d37b7cff] 2016-07-19 17:53:31 -0400 -Branch: REL9_1_STABLE [d70df7867] 2016-07-19 17:53:31 -0400 ---> - <para> - Update our copy of the timezone code to match - IANA's <application>tzcode</application> release 2016c (Tom Lane) - </para> - - <para> - This is needed to cope with anticipated future changes in the time - zone data files. It also fixes some corner-case bugs in coping with - unusual time zones. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a629330b2] 2016-08-05 12:59:29 -0400 -Branch: REL9_5_STABLE [3fddd6484] 2016-08-05 12:58:38 -0400 -Branch: REL9_4_STABLE [8080337b0] 2016-08-05 12:58:46 -0400 -Branch: REL9_3_STABLE [5630bd2ec] 2016-08-05 12:58:53 -0400 -Branch: REL9_2_STABLE [7822792f7] 2016-08-05 12:58:58 -0400 -Branch: REL9_1_STABLE [a44388ffe] 2016-08-05 12:59:02 -0400 ---> - <para> - Update time zone data files to <application>tzdata</application> release 2016f - for DST law changes in Kemerovo and Novosibirsk, plus historical - corrections for Azerbaijan, Belarus, and Morocco. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-3"> - <title>Release 9.5.3</title> - - <formalpara> - <title>Release date:</title> - <para>2016-05-12</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.2. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.3</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.5.2, - see <xref linkend="release-9-5-2"/>. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> -<!-- -Author: Peter Eisentraut <peter_e@gmx.net> -Branch: master [7c7d4fdda] 2016-04-08 14:11:56 -0400 -Branch: REL9_5_STABLE [a3c17b2af] 2016-05-06 23:47:42 -0400 -Branch: REL9_4_STABLE [e3b14de9f] 2016-05-07 00:10:31 -0400 -Branch: REL9_3_STABLE [a9d8644de] 2016-05-07 00:10:17 -0400 -Branch: REL9_2_STABLE [e3a493ac0] 2016-05-07 00:05:39 -0400 -Branch: REL9_1_STABLE [9b676fd49] 2016-05-07 00:09:37 -0400 ---> - <para> - Clear the OpenSSL error queue before OpenSSL calls, rather than - assuming it's clear already; and make sure we leave it clear - afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut) - </para> - - <para> - This change prevents problems when there are multiple connections - using OpenSSL within a single process and not all the code involved - follows the same rules for when to clear the error queue. - Failures have been reported specifically when a client application - uses SSL connections in <application>libpq</application> concurrently with - SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL. - It's possible for similar problems to arise within the server as well, - if an extension module establishes an outgoing SSL connection. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [80f66a9ad] 2016-04-21 20:05:58 -0400 -Branch: REL9_5_STABLE [94c685a7c] 2016-04-21 20:05:58 -0400 -Branch: REL9_4_STABLE [3232c2427] 2016-04-21 20:05:58 -0400 -Branch: REL9_3_STABLE [d9742ac46] 2016-04-21 20:05:58 -0400 -Branch: REL9_2_STABLE [ad2d32b57] 2016-04-21 20:05:58 -0400 -Branch: REL9_1_STABLE [6882dbd34] 2016-04-21 20:05:58 -0400 ---> - <para> - Fix <quote>failed to build any <replaceable>N</replaceable>-way joins</quote> - planner error with a full join enclosed in the right-hand side of a - left join (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [207d5a656] 2016-04-29 20:19:38 -0400 -Branch: REL9_5_STABLE [f25d0619c] 2016-04-29 20:19:38 -0400 -Branch: REL9_4_STABLE [72edc8ffe] 2016-04-29 20:19:38 -0400 -Branch: REL9_3_STABLE [67349e5a8] 2016-04-29 20:19:38 -0400 -Branch: REL9_2_STABLE [f02cb8c9a] 2016-04-29 20:19:38 -0400 ---> - <para> - Fix incorrect handling of equivalence-class tests in multilevel - nestloop plans (Tom Lane) - </para> - - <para> - Given a three-or-more-way equivalence class of variables, such - as <literal>X.X = Y.Y = Z.Z</literal>, it was possible for the planner to omit - some of the tests needed to enforce that all the variables are actually - equal, leading to join rows being output that didn't satisfy - the <literal>WHERE</literal> clauses. For various reasons, erroneous plans - were seldom selected in practice, so that this bug has gone undetected - for a long time. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [abb164655] 2016-04-21 23:17:36 -0400 -Branch: REL9_5_STABLE [81deadd31] 2016-04-21 23:17:36 -0400 ---> - <para> - Fix corner-case parser failures occurring - when <xref linkend="guc-operator-precedence-warning"/> is turned on - (Tom Lane) - </para> - - <para> - An example is that <literal>SELECT (ARRAY[])::text[]</literal> gave an error, - though it worked without the parentheses. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f0e766bd7] 2016-04-15 00:02:26 -0400 -Branch: REL9_5_STABLE [edd57377f] 2016-04-15 00:02:26 -0400 -Branch: REL9_4_STABLE [0479eccdc] 2016-04-15 00:02:26 -0400 ---> - <para> - Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [bde361fef] 2016-04-20 14:25:15 -0400 -Branch: REL9_5_STABLE [be2754456] 2016-04-20 14:25:15 -0400 -Branch: REL9_4_STABLE [ef35afa35] 2016-04-20 14:25:15 -0400 ---> - <para> - Fix query-lifespan memory leak and potential index corruption hazard in - GIN index insertion (Tom Lane) - </para> - - <para> - The memory leak would typically not amount to much in simple queries, - but it could be very substantial during a large GIN index build with - high <varname>maintenance_work_mem</varname>. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d136d600f] 2016-05-06 12:09:20 -0400 -Branch: REL9_5_STABLE [504af1fe0] 2016-05-06 12:09:20 -0400 -Branch: REL9_4_STABLE [1180868d1] 2016-05-06 12:09:20 -0400 -Branch: REL9_3_STABLE [462456d8d] 2016-05-06 12:09:20 -0400 -Branch: REL9_2_STABLE [11247dd99] 2016-05-06 12:09:20 -0400 -Branch: REL9_1_STABLE [7bad282c3] 2016-05-06 12:09:20 -0400 ---> - <para> - Fix possible misbehavior of <literal>TH</literal>, <literal>th</literal>, - and <literal>Y,YYY</literal> format codes in <function>to_timestamp()</function> - (Tom Lane) - </para> - - <para> - These could advance off the end of the input string, causing subsequent - format codes to read garbage. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [1f7c85b82] 2016-04-21 14:20:30 -0400 -Branch: REL9_5_STABLE [4b52cc289] 2016-04-21 14:20:18 -0400 -Branch: REL9_4_STABLE [679c92238] 2016-04-21 14:20:18 -0400 -Branch: REL9_3_STABLE [e5882f26b] 2016-04-21 14:20:18 -0400 -Branch: REL9_2_STABLE [c7c145e4f] 2016-04-21 14:20:18 -0400 -Branch: REL9_1_STABLE [663624e60] 2016-04-21 14:20:18 -0400 ---> - <para> - Fix dumping of rules and views in which the <replaceable>array</replaceable> - argument of a <literal><replaceable>value</replaceable> <replaceable>operator</replaceable> - ANY (<replaceable>array</replaceable>)</literal> construct is a sub-SELECT - (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [99f3b5613] 2016-04-04 18:05:23 -0400 -Branch: REL9_5_STABLE [f3d17491c] 2016-04-04 18:05:23 -0400 -Branch: REL9_4_STABLE [28148e258] 2016-04-04 18:05:24 -0400 ---> - <para> - Disallow newlines in <command>ALTER SYSTEM</command> parameter values - (Tom Lane) - </para> - - <para> - The configuration-file parser doesn't support embedded newlines in - string literals, so we mustn't allow them in values to be inserted - by <command>ALTER SYSTEM</command>. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8f1911d5e] 2016-04-15 12:11:40 -0400 -Branch: REL9_5_STABLE [8f8e65d34] 2016-04-15 12:11:27 -0400 -Branch: REL9_4_STABLE [8eed31ffb] 2016-04-15 12:11:27 -0400 ---> - <para> - Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</command> to - work properly if an index on OID is selected (David Rowley) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [93c301fc4] 2016-04-08 12:31:53 -0400 -Branch: REL9_5_STABLE [0da7cf6e8] 2016-04-08 12:31:42 -0400 ---> - <para> - Avoid possible misbehavior after failing to remove a tablespace symlink - (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [6a3d3965d] 2016-04-14 19:42:21 -0400 -Branch: REL9_5_STABLE [e7a456174] 2016-04-14 19:42:22 -0400 -Branch: REL9_4_STABLE [00456911f] 2016-04-14 19:42:22 -0400 ---> - <para> - Fix crash in logical decoding on alignment-picky platforms (Tom Lane, - Andres Freund) - </para> - - <para> - The failure occurred only with a transaction large enough to spill to - disk and a primary-key change within that transaction. - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [59455018a] 2016-04-28 22:11:18 -0700 -Branch: REL9_5_STABLE [2e1b4adf3] 2016-04-28 22:11:18 -0700 -Branch: REL9_4_STABLE [596f93605] 2016-04-28 22:11:18 -0700 ---> - <para> - Avoid repeated requests for feedback from receiver while shutting down - walsender (Nick Cleaton) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [cbabb70f3] 2016-04-20 23:48:13 -0400 -Branch: REL9_5_STABLE [0b8e0bf0a] 2016-04-20 23:48:13 -0400 -Branch: REL9_4_STABLE [f05ac711b] 2016-04-20 23:48:13 -0400 -Branch: REL9_3_STABLE [691073bd8] 2016-04-20 23:48:13 -0400 -Branch: REL9_2_STABLE [1b22368ff] 2016-04-20 23:48:13 -0400 -Branch: REL9_1_STABLE [4c1c9f80b] 2016-04-20 23:48:13 -0400 ---> - <para> - Make <application>pg_regress</application> use a startup timeout from the - <envar>PGCTLTIMEOUT</envar> environment variable, if that's set (Tom Lane) - </para> - - <para> - This is for consistency with a behavior recently added - to <application>pg_ctl</application>; it eases automated testing on slow machines. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [6cead413b] 2016-04-13 18:58:14 -0400 -Branch: REL9_5_STABLE [fb0f63933] 2016-04-13 18:57:52 -0400 -Branch: REL9_4_STABLE [5daf1012a] 2016-04-13 18:57:52 -0400 -Branch: REL9_3_STABLE [34bf6bc56] 2016-04-13 18:57:52 -0400 -Branch: REL9_2_STABLE [6bb42d520] 2016-04-13 18:57:52 -0400 -Branch: REL9_1_STABLE [3ef1f3a3e] 2016-04-13 18:57:52 -0400 ---> - <para> - Fix <application>pg_upgrade</application> to correctly restore extension - membership for operator families containing only one operator class - (Tom Lane) - </para> - - <para> - In such a case, the operator family was restored into the new database, - but it was no longer marked as part of the extension. This had no - immediate ill effects, but would cause later <application>pg_dump</application> - runs to emit output that would cause (harmless) errors on restore. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [1a2c17f8e] 2016-05-06 22:05:56 -0400 -Branch: REL9_5_STABLE [196870f2f] 2016-05-06 22:05:51 -0400 -Branch: REL9_4_STABLE [e1aecebc0] 2016-05-06 22:05:51 -0400 -Branch: REL9_3_STABLE [e1d88f983] 2016-05-06 22:05:51 -0400 ---> - <para> - Fix <application>pg_upgrade</application> to not fail when new-cluster TOAST rules - differ from old (Tom Lane) - </para> - - <para> - <application>pg_upgrade</application> had special-case code to handle the - situation where the new <productname>PostgreSQL</productname> version thinks that - a table should have a TOAST table while the old version did not. That - code was broken, so remove it, and instead do nothing in such cases; - there seems no reason to believe that we can't get along fine without - a TOAST table if that was okay according to the old version's rules. - </para> - </listitem> - - <listitem> -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [213c7df03] 2016-04-26 21:53:58 -0400 -Branch: REL9_5_STABLE [f9989482d] 2016-04-26 21:54:07 -0400 ---> - <para> - Fix atomic operations for PPC when using IBM's XLC compiler (Noah Misch) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [75c24d0f7] 2016-04-18 13:33:06 -0400 -Branch: REL9_5_STABLE [c6a5b6677] 2016-04-18 13:33:07 -0400 -Branch: REL9_4_STABLE [21b7f49eb] 2016-04-18 13:33:07 -0400 -Branch: REL9_3_STABLE [6ec1ff852] 2016-04-18 13:33:07 -0400 -Branch: REL9_2_STABLE [b24f7e280] 2016-04-18 13:33:07 -0400 ---> - <para> - Reduce the number of SysV semaphores used by a build configured with - <option>--disable-spinlocks</option> (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0ab3595e5] 2016-04-23 16:53:15 -0400 -Branch: REL9_5_STABLE [bdf7744f7] 2016-04-23 16:53:15 -0400 -Branch: REL9_4_STABLE [2a715371c] 2016-04-23 16:53:15 -0400 -Branch: REL9_3_STABLE [252c35895] 2016-04-23 16:53:15 -0400 -Branch: REL9_2_STABLE [0f5491283] 2016-04-23 16:53:15 -0400 -Branch: REL9_1_STABLE [cbff4b708] 2016-04-23 16:53:15 -0400 ---> - <para> - Rename internal function <function>strtoi()</function> - to <function>strtoint()</function> to avoid conflict with a NetBSD library - function (Thomas Munro) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [20d4428f0] 2016-04-21 15:44:18 -0400 -Branch: REL9_4_STABLE [5e2fb8862] 2016-04-21 15:44:18 -0400 -Branch: REL9_3_STABLE [8f9518414] 2016-04-21 15:44:18 -0400 -Branch: REL9_2_STABLE [6848827b4] 2016-04-21 15:44:18 -0400 -Branch: REL9_1_STABLE [b2bb59bd5] 2016-04-21 15:44:18 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [125ad539a] 2016-04-21 16:58:47 -0400 -Branch: REL9_5_STABLE [d2e59cbc3] 2016-04-21 16:58:59 -0400 -Branch: REL9_4_STABLE [56dee70d9] 2016-04-21 16:59:04 -0400 -Branch: REL9_3_STABLE [82bf369ed] 2016-04-21 16:59:08 -0400 -Branch: REL9_2_STABLE [b5ebc513d] 2016-04-21 16:59:13 -0400 -Branch: REL9_1_STABLE [9028f404e] 2016-04-21 16:59:17 -0400 ---> - <para> - Fix reporting of errors from <function>bind()</function> - and <function>listen()</function> system calls on Windows (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [01a07e6c1] 2016-04-08 12:37:20 -0400 -Branch: REL9_5_STABLE [849167943] 2016-04-08 12:36:59 -0400 -Branch: REL9_4_STABLE [f79a7fa90] 2016-04-08 12:29:31 -0400 -Branch: REL9_3_STABLE [ca5d6edbf] 2016-04-08 12:29:34 -0400 -Branch: REL9_2_STABLE [9e77d0e3c] 2016-04-08 12:29:36 -0400 -Branch: REL9_1_STABLE [d2189a802] 2016-04-08 12:33:29 -0400 ---> - <para> - Reduce verbosity of compiler output when building with Microsoft Visual - Studio (Christian Ullrich) - </para> - </listitem> - - <listitem> -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [0fb54de9a] 2016-04-29 08:09:07 -0400 -Branch: REL9_5_STABLE [da52474f3] 2016-04-29 08:06:25 -0400 -Branch: master [7dc549238] 2016-04-29 09:49:31 -0400 -Branch: REL9_5_STABLE [b71b4d852] 2016-04-29 09:50:38 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [23b09e15b] 2016-04-28 11:50:58 -0400 -Branch: REL9_5_STABLE [94a16531b] 2016-04-28 11:51:08 -0400 -Branch: REL9_4_STABLE [65c2eeb00] 2016-04-28 11:51:13 -0400 -Branch: REL9_3_STABLE [707c44fe2] 2016-04-28 11:51:17 -0400 -Branch: REL9_2_STABLE [c563d97c6] 2016-04-28 11:51:22 -0400 -Branch: REL9_1_STABLE [a6c6789c4] 2016-04-28 11:51:26 -0400 ---> - <para> - Support building with Visual Studio 2015 - (Michael Paquier, Petr Jelínek) - </para> - - <para> - Note that builds made with VS2015 will not run on Windows versions - before Windows Vista. - </para> - </listitem> - - <listitem> -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [9f633b404] 2016-04-22 05:18:59 -0400 -Branch: REL9_5_STABLE [409c49c64] 2016-04-22 05:19:57 -0400 -Branch: REL9_4_STABLE [c238a4101] 2016-04-22 05:20:07 -0400 -Branch: REL9_3_STABLE [ab5c6d01f] 2016-04-22 05:20:18 -0400 ---> - <para> - Fix <function>putenv()</function> to work properly with Visual Studio 2013 - (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [7abc15716] 2016-03-29 11:55:19 -0400 -Branch: REL9_5_STABLE [491e84738] 2016-03-29 11:54:57 -0400 -Branch: REL9_4_STABLE [2fed676c9] 2016-03-29 11:54:57 -0400 -Branch: REL9_3_STABLE [11cc7bb88] 2016-03-29 11:54:57 -0400 -Branch: REL9_2_STABLE [b4b06931e] 2016-03-29 11:54:58 -0400 -Branch: REL9_1_STABLE [6cd30292b] 2016-03-29 11:54:58 -0400 ---> - <para> - Avoid possibly-unsafe use of Windows' <function>FormatMessage()</function> - function (Christian Ullrich) - </para> - - <para> - Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</literal> flag where - appropriate. No live bug is known to exist here, but it seems like a - good idea to be careful. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [98f158e41] 2016-05-05 20:08:58 -0400 -Branch: REL9_5_STABLE [4edbb265c] 2016-05-05 20:09:10 -0400 -Branch: REL9_4_STABLE [a5148e800] 2016-05-05 20:09:17 -0400 -Branch: REL9_3_STABLE [d30c67af8] 2016-05-05 20:09:22 -0400 -Branch: REL9_2_STABLE [29d154e36] 2016-05-05 20:09:27 -0400 -Branch: REL9_1_STABLE [bfc39da64] 2016-05-05 20:09:32 -0400 ---> - <para> - Update time zone data files to <application>tzdata</application> release 2016d - for DST law changes in Russia and Venezuela. There are new zone - names <literal>Europe/Kirov</literal> and <literal>Asia/Tomsk</literal> to reflect - the fact that these regions now have different time zone histories from - adjacent regions. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-2"> - <title>Release 9.5.2</title> - - <formalpara> - <title>Release date:</title> - <para>2016-03-31</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.1. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.2</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - - <para> - However, you may need to <command>REINDEX</command> some indexes after applying - the update, as per the first changelog entry below. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [3df9c374e] 2016-03-23 16:03:13 -0400 -Branch: REL9_5_STABLE [8aa6e9780] 2016-03-23 16:04:35 -0400 ---> - - <listitem> - <para> - Disable abbreviated keys for string sorting in non-<literal>C</literal> - locales (Robert Haas) - </para> - - <para> - <productname>PostgreSQL</productname> 9.5 introduced logic for speeding up - comparisons of string data types by using the standard C library - function <function>strxfrm()</function> as a substitute - for <function>strcoll()</function>. It now emerges that most versions of - glibc (Linux's implementation of the C library) have buggy - implementations of <function>strxfrm()</function> that, in some locales, - can produce string comparison results that do not - match <function>strcoll()</function>. Until this problem can be better - characterized, disable the optimization in all non-<literal>C</literal> - locales. (<literal>C</literal> locale is safe since it uses - neither <function>strcoll()</function> nor <function>strxfrm()</function>.) - </para> - - <para> - Unfortunately, this problem affects not only sorting but also entry - ordering in B-tree indexes, which means that B-tree indexes - on <type>text</type>, <type>varchar</type>, or <type>char</type> columns may now - be corrupt if they sort according to an affected locale and were - built or modified under <productname>PostgreSQL</productname> 9.5.0 or 9.5.1. - Users should <command>REINDEX</command> indexes that might be affected. - </para> - - <para> - It is not possible at this time to give an exhaustive list of - known-affected locales. <literal>C</literal> locale is known safe, and - there is no evidence of trouble in English-based locales such - as <literal>en_US</literal>, but some other popular locales such - as <literal>de_DE</literal> are affected in most glibc versions. - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [86ebf30fd] 2016-03-28 09:03:20 -0400 -Branch: REL9_5_STABLE [db69e58a0] 2016-03-28 09:03:41 -0400 ---> - - <listitem> - <para> - Maintain row-security status properly in cached plans (Stephen Frost) - </para> - - <para> - In a session that performs queries as more than one role, the plan - cache might incorrectly re-use a plan that was generated for another - role ID, thus possibly applying the wrong set of policies when - row-level security (RLS) is in use. - (CVE-2016-2193) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [3e1338475] 2016-03-28 10:57:42 -0300 -Branch: REL9_5_STABLE [bf78a6f10] 2016-03-28 10:57:46 -0300 ---> - - <listitem> - <para> - Add must-be-superuser checks to some - new <filename>contrib/pageinspect</filename> functions (Andreas Seltenreich) - </para> - - <para> - Most functions in the <filename>pageinspect</filename> extension that - inspect <type>bytea</type> values disallow calls by non-superusers, - but <function>brin_page_type()</function> and <function>brin_metapage_info()</function> - failed to do so. Passing contrived <type>bytea</type> values to them might - crash the server or disclose a few bytes of server memory. Add the - missing permissions checks to prevent misuse. - (CVE-2016-3065) - </para> - </listitem> - -<!-- -Author: Simon Riggs <simon@2ndQuadrant.com> -Branch: master [c7111d11b] 2016-03-03 09:53:43 +0000 -Branch: REL9_5_STABLE [bf7ced5e2] 2016-03-03 09:50:38 +0000 ---> - - <listitem> - <para> - Fix incorrect handling of indexed <literal>ROW()</literal> comparisons - (Simon Riggs) - </para> - - <para> - Flaws in a minor optimization introduced in 9.5 caused incorrect - results if the <literal>ROW()</literal> comparison matches the index ordering - partially but not exactly (for example, differing column order, or the - index contains both <literal>ASC</literal> and <literal>DESC</literal> columns). - Pending a better solution, the optimization has been removed. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a298a1e06] 2016-03-09 14:51:22 -0500 -Branch: REL9_5_STABLE [b2ce9485b] 2016-03-09 14:51:01 -0500 -Branch: REL9_4_STABLE [da936200d] 2016-03-09 14:51:01 -0500 -Branch: REL9_3_STABLE [1ab7a160f] 2016-03-09 14:51:01 -0500 -Branch: REL9_2_STABLE [c8e059724] 2016-03-09 14:51:01 -0500 -Branch: REL9_1_STABLE [d485d9581] 2016-03-09 14:51:02 -0500 ---> - - <listitem> - <para> - Fix incorrect handling of NULL index entries in - indexed <literal>ROW()</literal> comparisons (Tom Lane) - </para> - - <para> - An index search using a row comparison such as <literal>ROW(a, b) > - ROW('x', 'y')</literal> would stop upon reaching a NULL entry in - the <structfield>b</structfield> column, ignoring the fact that there might be - non-NULL <structfield>b</structfield> values associated with later values - of <structfield>a</structfield>. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [1d4a0ab19] 2016-03-09 18:53:53 -0800 -Branch: REL9_5_STABLE [301cc3549] 2016-03-09 18:53:53 -0800 -Branch: REL9_4_STABLE [4f37d0916] 2016-03-09 18:53:54 -0800 -Branch: REL9_3_STABLE [bfa282a02] 2016-03-09 18:53:54 -0800 -Branch: REL9_2_STABLE [ce8f42919] 2016-03-09 18:53:54 -0800 -Branch: REL9_1_STABLE [a62714fae] 2016-03-09 18:53:54 -0800 -Branch: master [606e0f984] 2016-03-09 18:53:53 -0800 -Branch: REL9_5_STABLE [63b06e8fa] 2016-03-09 18:53:53 -0800 -Branch: REL9_4_STABLE [43b491a81] 2016-03-09 18:53:54 -0800 -Branch: REL9_3_STABLE [e069848a3] 2016-03-09 18:53:54 -0800 -Branch: REL9_2_STABLE [c224d44f7] 2016-03-09 18:53:54 -0800 -Branch: REL9_1_STABLE [d0e47bcd4] 2016-03-09 18:53:54 -0800 ---> - - <listitem> - <para> - Avoid unlikely data-loss scenarios due to renaming files without - adequate <function>fsync()</function> calls before and after (Michael Paquier, - Tomas Vondra, Andres Freund) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [71404af2a] 2016-03-22 17:56:20 -0400 -Branch: REL9_5_STABLE [d8d5a00b1] 2016-03-22 17:56:06 -0400 ---> - - <listitem> - <para> - Fix incorrect behavior when rechecking a just-modified row in a query - that does <command>SELECT FOR UPDATE/SHARE</command> and contains some - relations that need not be locked (Tom Lane) - </para> - - <para> - Rows from non-locked relations were incorrectly treated as containing - all NULLs during the recheck, which could result in incorrectly - deciding that the updated row no longer passes the <literal>WHERE</literal> - condition, or in incorrectly outputting NULLs. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a9d199f6d] 2016-03-02 23:31:39 -0500 -Branch: REL9_5_STABLE [429d68465] 2016-03-02 23:31:39 -0500 -Branch: REL9_4_STABLE [597e41e45] 2016-03-02 23:31:39 -0500 ---> - - <listitem> - <para> - Fix bug in <function>json_to_record()</function> when a field of its input - object contains a sub-object with a field name matching one of the - requested output column names (Tom Lane) - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [94c745eb1] 2016-02-21 10:30:49 -0500 -Branch: REL9_5_STABLE [68d68ff83] 2016-02-21 10:40:39 -0500 ---> - - <listitem> - <para> - Fix nonsense result from two-argument form - of <function>jsonb_object()</function> when called with empty arrays - (Michael Paquier, Andrew Dunstan) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [384dfbde1] 2016-03-23 10:43:13 -0400 -Branch: REL9_5_STABLE [5f95521b3] 2016-03-23 10:43:24 -0400 ---> - - <listitem> - <para> - Fix misbehavior in <function>jsonb_set()</function> when converting a path - array element into an integer for use as an array subscript - (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [55c3a04d6] 2016-03-17 15:50:33 -0400 -Branch: REL9_5_STABLE [d0a585c69] 2016-03-17 15:50:33 -0400 -Branch: REL9_4_STABLE [17a250b18] 2016-03-17 15:50:33 -0400 ---> - - <listitem> - <para> - Fix misformatting of negative time zone offsets - by <function>to_char()</function>'s <literal>OF</literal> format code - (Thomas Munro, Tom Lane) - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [fd658dbb3] 2016-03-15 18:04:39 -0400 -Branch: REL9_5_STABLE [3f14d8d59] 2016-03-15 18:04:48 -0400 ---> - - <listitem> - <para> - Fix possible incorrect logging of waits done by - <command>INSERT ... ON CONFLICT</command> (Peter Geoghegan) - </para> - - <para> - Log messages would sometimes claim that the wait was due to an - exclusion constraint although no such constraint was responsible. - </para> - </listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -Branch: master [d34794f7d] 2016-03-06 02:29:04 +0900 -Branch: REL9_5_STABLE [f95f1ce00] 2016-03-06 02:43:17 +0900 -Branch: REL9_4_STABLE [a9613ee69] 2016-03-06 02:43:26 +0900 ---> - - <listitem> - <para> - Ignore <xref linkend="recovery-min-apply-delay"/> parameter until - recovery has reached a consistent state (Michael Paquier) - </para> - - <para> - Previously, standby servers would delay application of WAL records in - response to <varname>recovery_min_apply_delay</varname> even while replaying - the initial portion of WAL needed to make their database state valid. - Since the standby is useless until it's reached a consistent database - state, this was deemed unhelpful. - </para> - </listitem> - -<!-- -Author: Simon Riggs <simon@2ndQuadrant.com> -Branch: master [481725c0b] 2016-02-19 08:31:12 +0000 -Branch: REL9_5_STABLE [c479024d3] 2016-02-19 08:31:39 +0000 -Branch: REL9_4_STABLE [6830cae5f] 2016-02-19 08:32:28 +0000 -Branch: REL9_3_STABLE [71e3cff2e] 2016-02-19 08:33:33 +0000 -Branch: REL9_2_STABLE [c063d3c43] 2016-02-19 08:33:52 +0000 -Branch: REL9_1_STABLE [ca32f125b] 2016-02-19 08:35:02 +0000 ---> - - <listitem> - <para> - Correctly handle cases where <literal>pg_subtrans</literal> is close to XID - wraparound during server startup (Jeff Janes) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [c8f621c43] 2016-03-05 18:02:20 -0800 -Branch: REL9_5_STABLE [5990a034a] 2016-03-05 18:02:20 -0800 -Branch: REL9_4_STABLE [3b94b3a49] 2016-03-05 18:02:20 -0800 -Branch: master [fd45d16f6] 2016-03-06 16:27:20 -0800 -Branch: REL9_5_STABLE [5d1826fe7] 2016-03-06 16:27:20 -0800 -Branch: REL9_4_STABLE [fb3ea0465] 2016-03-06 16:27:20 -0800 -Branch: master [b63bea5fd] 2016-03-07 14:24:03 -0800 -Branch: REL9_5_STABLE [250e5bd71] 2016-03-07 14:24:52 -0800 -Branch: REL9_4_STABLE [e3e84fd35] 2016-03-07 14:24:58 -0800 -Author: Andres Freund <andres@anarazel.de> -Branch: master [0bda14d54] 2016-03-05 18:02:20 -0800 -Branch: REL9_5_STABLE [e76e365be] 2016-03-05 18:02:20 -0800 -Branch: REL9_4_STABLE [a50f50a65] 2016-03-05 18:02:20 -0800 -Author: Andres Freund <andres@anarazel.de> -Branch: master [d9e903f3c] 2016-03-05 18:02:20 -0800 -Branch: REL9_5_STABLE [6e759cefe] 2016-03-05 18:02:20 -0800 -Branch: REL9_4_STABLE [465dd92d9] 2016-03-05 18:02:20 -0800 -Author: Andres Freund <andres@anarazel.de> -Branch: master [7c17aac69] 2016-03-02 23:42:21 -0800 -Branch: REL9_5_STABLE [f8a75881f] 2016-03-02 23:43:42 -0800 ---> - - <listitem> - <para> - Fix assorted bugs in logical decoding (Andres Freund) - </para> - - <para> - Trouble cases included tuples larger than one page when replica - identity is <literal>FULL</literal>, <command>UPDATE</command>s that change a - primary key within a transaction large enough to be spooled to disk, - incorrect reports of <quote>subxact logged without previous toplevel - record</quote>, and incorrect reporting of a transaction's commit time. - </para> - </listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -Branch: master [41fedc246] 2016-02-29 12:28:06 +0000 -Branch: REL9_5_STABLE [f1dfcf63d] 2016-02-29 12:31:25 +0000 -Branch: REL9_4_STABLE [9b69d5c1d] 2016-02-29 12:34:33 +0000 ---> - - <listitem> - <para> - Fix planner error with nested security barrier views when the outer - view has a <literal>WHERE</literal> clause containing a correlated subquery - (Dean Rasheed) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [ab4ff2889] 2016-03-13 16:44:31 -0400 -Branch: REL9_5_STABLE [aa9c4e71c] 2016-03-13 16:44:10 -0400 ---> - - <listitem> - <para> - Fix memory leak in GIN index searches (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [907e4dd2b] 2016-02-28 23:39:20 -0500 -Branch: REL9_5_STABLE [2d43c45e9] 2016-02-28 23:40:04 -0500 -Branch: REL9_4_STABLE [80c925c7b] 2016-02-28 23:40:13 -0500 -Branch: REL9_3_STABLE [0c4457de8] 2016-02-28 23:40:21 -0500 -Branch: REL9_2_STABLE [47792639c] 2016-02-28 23:40:28 -0500 -Branch: REL9_1_STABLE [7d6c58aa1] 2016-02-28 23:40:35 -0500 ---> - - <listitem> - <para> - Fix corner-case crash due to trying to free <function>localeconv()</function> - output strings more than once (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b3e05097e] 2016-03-06 19:20:55 -0500 -Branch: REL9_5_STABLE [c2d61adc3] 2016-03-06 19:21:03 -0500 -Branch: REL9_4_STABLE [3fa4715c5] 2016-03-06 19:21:03 -0500 -Branch: REL9_3_STABLE [a35f85a52] 2016-03-06 19:21:03 -0500 -Branch: REL9_2_STABLE [8894c9f79] 2016-03-06 19:21:03 -0500 -Branch: REL9_1_STABLE [fe747b741] 2016-03-06 19:21:03 -0500 ---> - - <listitem> - <para> - Fix parsing of affix files for <literal>ispell</literal> dictionaries - (Tom Lane) - </para> - - <para> - The code could go wrong if the affix file contained any characters - whose byte length changes during case-folding, for - example <literal>I</literal> in Turkish UTF8 locales. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [51e78ab4f] 2016-02-10 19:30:11 -0500 -Branch: REL9_5_STABLE [b10635bb5] 2016-02-10 19:30:11 -0500 -Branch: REL9_4_STABLE [19e469410] 2016-02-10 19:30:12 -0500 -Branch: REL9_3_STABLE [24ce5754a] 2016-02-10 19:30:12 -0500 -Branch: REL9_2_STABLE [64f99a2ee] 2016-02-10 19:30:12 -0500 -Branch: REL9_1_STABLE [e56acbe2a] 2016-02-10 19:30:12 -0500 ---> - - <listitem> - <para> - Avoid use of <function>sscanf()</function> to parse <literal>ispell</literal> - dictionary files (Artur Zakirov) - </para> - - <para> - This dodges a portability problem on FreeBSD-derived platforms - (including macOS). - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [5882ca668] 2016-02-19 22:47:50 -0500 -Branch: REL9_5_STABLE [377a1af56] 2016-02-19 22:48:04 -0500 ---> - - <listitem> - <para> - Fix atomic-operations code used on PPC with IBM's xlc compiler - (Noah Misch) - </para> - - <para> - This error led to rare failures of concurrent operations on that - platform. - </para> - </listitem> - -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [9d9038824] 2016-03-10 14:10:18 +0100 -Branch: REL9_5_STABLE [ad9a15d3f] 2016-03-10 14:10:32 +0100 -Branch: REL9_4_STABLE [8857488b6] 2016-03-10 14:10:41 +0100 -Branch: REL9_3_STABLE [270d8a12e] 2016-03-10 14:10:48 +0100 -Branch: REL9_2_STABLE [78b597808] 2016-03-10 14:10:54 +0100 -Branch: REL9_1_STABLE [3e6385e27] 2016-03-10 14:11:01 +0100 ---> - - <listitem> - <para> - Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an - AVX2-capable CPU and a Postgres build done with Visual Studio 2013 - (Christian Ullrich) - </para> - - <para> - This is a workaround for a bug in Visual Studio 2013's runtime - library, which Microsoft have stated they will not fix in that - version. - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [9445db925] 2016-03-04 11:53:20 -0500 -Branch: REL9_5_STABLE [0315dfa8f] 2016-03-04 11:57:22 -0500 -Branch: REL9_4_STABLE [8de488d00] 2016-03-04 11:57:23 -0500 -Branch: REL9_3_STABLE [54139ac22] 2016-03-04 11:57:31 -0500 -Branch: REL9_2_STABLE [c658d5a9b] 2016-03-04 11:57:36 -0500 -Branch: REL9_1_STABLE [b4895bf79] 2016-03-04 11:57:40 -0500 ---> - - <listitem> - <para> - Fix <application>psql</application>'s tab completion logic to handle multibyte - characters properly (Kyotaro Horiguchi, Robert Haas) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [1bee54e51] 2016-03-14 11:31:22 -0400 -Branch: REL9_4_STABLE [13108dd0e] 2016-03-14 11:31:34 -0400 -Branch: REL9_3_STABLE [0576de5c7] 2016-03-14 11:31:39 -0400 -Branch: REL9_2_STABLE [39b3ea714] 2016-03-14 11:31:44 -0400 -Branch: REL9_1_STABLE [2d61d88d8] 2016-03-14 11:31:49 -0400 ---> - - <listitem> - <para> - Fix <application>psql</application>'s tab completion for - <literal>SECURITY LABEL</literal> (Tom Lane) - </para> - - <para> - Pressing TAB after <literal>SECURITY LABEL</literal> might cause a crash - or offering of inappropriate keywords. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [2ffa86962] 2016-02-10 20:34:02 -0500 -Branch: REL9_5_STABLE [725f0ce29] 2016-02-10 20:34:24 -0500 -Branch: REL9_4_STABLE [4492ab53b] 2016-02-10 20:34:30 -0500 -Branch: REL9_3_STABLE [198242ede] 2016-02-10 20:34:35 -0500 -Branch: REL9_2_STABLE [4421b5253] 2016-02-10 20:34:41 -0500 -Branch: REL9_1_STABLE [f97664cf5] 2016-02-10 20:34:48 -0500 ---> - - <listitem> - <para> - Make <application>pg_ctl</application> accept a wait timeout from the - <envar>PGCTLTIMEOUT</envar> environment variable, if none is specified on - the command line (Noah Misch) - </para> - - <para> - This eases testing of slower buildfarm members by allowing them - to globally specify a longer-than-normal timeout for postmaster - startup and shutdown. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b642e50ae] 2016-03-07 10:40:44 -0500 -Branch: REL9_5_STABLE [45b87cc57] 2016-03-07 10:40:53 -0500 -Branch: REL9_4_STABLE [89f8372cb] 2016-03-07 10:40:57 -0500 -Branch: REL9_3_STABLE [b73e81605] 2016-03-07 10:41:01 -0500 -Branch: REL9_2_STABLE [15d43196c] 2016-03-07 10:41:07 -0500 -Branch: REL9_1_STABLE [5a39c7395] 2016-03-07 10:41:11 -0500 ---> - - <listitem> - <para> - Fix incorrect test for Windows service status - in <application>pg_ctl</application> (Manuel Mathar) - </para> - - <para> - The previous set of minor releases attempted to - fix <application>pg_ctl</application> to properly determine whether to send log - messages to Window's Event Log, but got the test backwards. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [47211af17] 2016-03-16 23:18:07 -0400 -Branch: REL9_5_STABLE [8ee2e5f78] 2016-03-16 23:18:07 -0400 -Branch: REL9_4_STABLE [23cb32660] 2016-03-16 23:18:07 -0400 -Branch: REL9_3_STABLE [c02aae418] 2016-03-16 23:18:07 -0400 -Branch: REL9_2_STABLE [be6f9ea2e] 2016-03-16 23:18:08 -0400 -Branch: REL9_1_STABLE [1965a8ce1] 2016-03-16 23:18:08 -0400 ---> - - <listitem> - <para> - Fix <application>pgbench</application> to correctly handle the combination - of <literal>-C</literal> and <literal>-M prepared</literal> options (Tom Lane) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [3386f34cd] 2016-02-18 18:32:27 -0500 -Branch: REL9_5_STABLE [6f43c4d34] 2016-02-18 18:32:26 -0500 -Branch: REL9_4_STABLE [bec4d0ffb] 2016-02-18 18:32:26 -0500 -Branch: REL9_3_STABLE [bf26c4f44] 2016-02-18 18:32:26 -0500 ---> - - <listitem> - <para> - In <application>pg_upgrade</application>, skip creating a deletion script when - the new data directory is inside the old data directory (Bruce - Momjian) - </para> - - <para> - Blind application of the script in such cases would result in loss of - the new data directory. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [e66197fa2] 2016-03-08 13:42:57 -0800 -Branch: REL9_5_STABLE [68dababfe] 2016-03-08 13:42:58 -0800 -Branch: REL9_4_STABLE [6041d388c] 2016-03-08 13:42:58 -0800 -Branch: REL9_3_STABLE [44f9f1f2d] 2016-03-08 13:42:58 -0800 -Branch: REL9_2_STABLE [ee06c97e4] 2016-03-08 13:42:58 -0800 -Branch: REL9_1_STABLE [c5f1fbbfb] 2016-03-08 13:42:58 -0800 ---> - - <listitem> - <para> - In PL/Perl, properly translate empty Postgres arrays into empty Perl - arrays (Alex Hunsaker) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [66f503868] 2016-02-16 21:08:15 -0500 -Branch: REL9_5_STABLE [2ce19f8a5] 2016-02-16 21:08:15 -0500 -Branch: REL9_4_STABLE [f461fa7d0] 2016-02-16 21:08:15 -0500 -Branch: REL9_3_STABLE [b3ec98c8b] 2016-02-16 21:08:15 -0500 -Branch: REL9_2_STABLE [7d48349fd] 2016-02-16 21:08:15 -0500 -Branch: REL9_1_STABLE [875973f5d] 2016-02-16 21:08:15 -0500 ---> - - <listitem> - <para> - Make PL/Python cope with function names that aren't valid Python - identifiers (Jim Nasby) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [48e6c943e] 2016-02-18 15:40:35 -0500 -Branch: REL9_5_STABLE [0276bbd62] 2016-02-18 15:40:35 -0500 -Branch: REL9_4_STABLE [b7547166f] 2016-02-18 15:40:35 -0500 -Branch: REL9_3_STABLE [9dfb5b940] 2016-02-18 15:40:35 -0500 -Branch: REL9_2_STABLE [29f299728] 2016-02-18 15:40:35 -0500 -Branch: REL9_1_STABLE [0f359c7de] 2016-02-18 15:40:36 -0500 ---> - - <listitem> - <para> - Fix multiple mistakes in the statistics returned - by <filename>contrib/pgstattuple</filename>'s <function>pgstatindex()</function> - function (Tom Lane) - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [5d0320105] 2016-03-19 18:36:35 -0400 -Branch: REL9_5_STABLE [2f38b3e7d] 2016-03-19 18:44:04 -0400 -Branch: REL9_4_STABLE [6336ca916] 2016-03-19 18:49:19 -0400 -Branch: REL9_3_STABLE [a0adf3852] 2016-03-19 18:51:01 -0400 -Branch: REL9_2_STABLE [89bf78a9b] 2016-03-19 18:51:01 -0400 -Branch: REL9_1_STABLE [2aa9fd963] 2016-03-19 18:59:41 -0400 ---> - - <listitem> - <para> - Remove dependency on <literal>psed</literal> in MSVC builds, since it's no - longer provided by core Perl (Michael Paquier, Andrew Dunstan) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [676265eb7] 2016-03-25 19:03:08 -0400 -Branch: REL9_5_STABLE [31d02ebf7] 2016-03-25 19:03:24 -0400 -Branch: REL9_4_STABLE [de371e68a] 2016-03-25 19:03:32 -0400 -Branch: REL9_3_STABLE [8e16592d4] 2016-03-25 19:03:39 -0400 -Branch: REL9_2_STABLE [96fa37459] 2016-03-25 19:03:47 -0400 -Branch: REL9_1_STABLE [e5fd35cc5] 2016-03-25 19:03:54 -0400 ---> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> release 2016c - for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia - (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus - historical corrections for Lithuania, Moldova, and Russia - (Kaliningrad, Samara, Volgograd). - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5-1"> - <title>Release 9.5.1</title> - - <formalpara> - <title>Release date:</title> - <para>2016-02-11</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.5.0. - For information about new features in the 9.5 major release, see - <xref linkend="release-9-5"/>. - </para> - - <sect2> - <title>Migration to Version 9.5.1</title> - - <para> - A dump/restore is not required for those running 9.5.X. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3bb3f42f3] 2016-02-08 10:25:40 -0500 -Branch: REL9_5_STABLE [a61de2bc1] 2016-02-08 10:25:40 -0500 -Branch: REL9_4_STABLE [fdc3139e2] 2016-02-08 10:25:40 -0500 -Branch: REL9_3_STABLE [6403a6b74] 2016-02-08 10:25:40 -0500 -Branch: REL9_2_STABLE [e93516cf7] 2016-02-08 10:25:40 -0500 -Branch: REL9_1_STABLE [98d6b7305] 2016-02-08 10:25:40 -0500 ---> - - <listitem> - <para> - Fix infinite loops and buffer-overrun problems in regular expressions - (Tom Lane) - </para> - - <para> - Very large character ranges in bracket expressions could cause - infinite loops in some cases, and memory overwrites in other cases. - (CVE-2016-0773) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f867ce551] 2016-02-07 12:29:32 -0500 -Branch: REL9_5_STABLE [129db3cbe] 2016-02-07 12:29:17 -0500 ---> - - <listitem> - <para> - Fix an oversight that caused hash joins to miss joining to some tuples - of the inner relation in rare cases (Tomas Vondra, Tom Lane) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [a6897efab] 2016-02-08 11:03:31 +0100 -Branch: REL9_5_STABLE [87dbc72a7] 2016-02-08 11:03:37 +0100 ---> - - <listitem> - <para> - Avoid pushdown of <literal>HAVING</literal> clauses when grouping sets are - used (Andrew Gierth) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [cc2ca9319] 2016-02-07 14:57:24 -0500 -Branch: REL9_5_STABLE [82406d6ff] 2016-02-07 14:57:24 -0500 ---> - - <listitem> - <para> - Fix deparsing of <literal>ON CONFLICT</literal> arbiter <literal>WHERE</literal> - clauses (Peter Geoghegan) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b8682a715] 2016-01-26 15:38:33 -0500 -Branch: REL9_5_STABLE [2acb682f6] 2016-01-26 15:38:33 -0500 -Branch: REL9_4_STABLE [2b3983158] 2016-01-26 15:38:33 -0500 -Branch: REL9_3_STABLE [9bbfca8fd] 2016-01-26 15:38:33 -0500 -Branch: REL9_2_STABLE [3a7af9d73] 2016-01-26 15:38:33 -0500 -Branch: REL9_1_STABLE [b043df093] 2016-01-26 15:38:33 -0500 ---> - - <listitem> - <para> - Make <literal>%h</literal> and <literal>%r</literal> escapes - in <varname>log_line_prefix</varname> work for messages emitted due - to <varname>log_connections</varname> (Tom Lane) - </para> - - <para> - Previously, <literal>%h</literal>/<literal>%r</literal> started to work just after a - new session had emitted the <quote>connection received</quote> log message; - now they work for that message too. - </para> - </listitem> - -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [6a61d1ff9] 2016-01-14 13:06:03 +0100 -Branch: REL9_5_STABLE [3276ca303] 2016-01-14 13:07:20 +0100 -Branch: REL9_4_STABLE [ab49f87d5] 2016-01-14 13:07:35 +0100 -Branch: REL9_3_STABLE [77d8edcf5] 2016-01-14 13:07:45 +0100 -Branch: REL9_2_STABLE [df0bd5a0f] 2016-01-14 13:07:55 +0100 -Branch: REL9_1_STABLE [b1c0f92eb] 2016-01-14 13:08:10 +0100 ---> - - <listitem> - <para> - Avoid leaking a token handle during SSPI authentication - (Christian Ullrich) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [7e2247047] 2016-01-29 10:28:02 +0100 -Branch: REL9_5_STABLE [56251f396] 2016-01-29 10:28:02 +0100 -Branch: REL9_4_STABLE [5849b6e32] 2016-01-29 10:28:02 +0100 -Branch: REL9_3_STABLE [db678ca16] 2016-01-29 10:28:03 +0100 -Branch: REL9_2_STABLE [a362cc2e3] 2016-01-29 10:28:03 +0100 -Branch: REL9_1_STABLE [ed5f57218] 2016-01-29 10:28:03 +0100 ---> - - <listitem> - <para> - Fix <application>psql</application>'s <literal>\det</literal> command to interpret its - pattern argument the same way as other <literal>\d</literal> commands with - potentially schema-qualified patterns do (Reece Hart) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [a96761391] 2016-01-07 11:59:08 -0300 -Branch: REL9_5_STABLE [744d01c9a] 2016-01-07 11:59:08 -0300 -Branch: REL9_4_STABLE [c7aca3d45] 2016-01-07 11:59:08 -0300 -Branch: REL9_3_STABLE [74d4009b8] 2016-01-07 11:59:08 -0300 -Branch: REL9_2_STABLE [5c4cbd5d1] 2016-01-07 11:59:08 -0300 -Branch: REL9_1_STABLE [b96f6f444] 2016-01-07 11:59:08 -0300 ---> - - <listitem> - <para> - In <application>pg_ctl</application> on Windows, check service status to decide - where to send output, rather than checking if standard output is a - terminal (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e72d7d853] 2016-01-13 18:55:27 -0500 -Branch: REL9_5_STABLE [c42df2d46] 2016-01-13 18:55:27 -0500 -Branch: REL9_4_STABLE [7393208b5] 2016-01-13 18:55:27 -0500 -Branch: REL9_3_STABLE [b87403f70] 2016-01-13 18:55:27 -0500 -Branch: REL9_2_STABLE [be2b27651] 2016-01-13 18:55:27 -0500 -Branch: REL9_1_STABLE [5108013db] 2016-01-13 18:55:27 -0500 ---> - - <listitem> - <para> - Fix assorted corner-case bugs in <application>pg_dump</application>'s processing - of extension member objects (Tom Lane) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [df43fcf45] 2016-01-22 20:04:35 -0300 -Branch: REL9_5_STABLE [1e910cf5b] 2016-01-22 20:04:35 -0300 ---> - - <listitem> - <para> - Fix improper quoting of domain constraint names - in <application>pg_dump</application> (Elvis Pranskevichus) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0ed707e9b] 2016-02-04 00:26:10 -0500 -Branch: REL9_5_STABLE [b99dd7170] 2016-02-04 00:26:10 -0500 -Branch: REL9_4_STABLE [411e2b0d5] 2016-02-04 00:26:10 -0500 -Branch: REL9_3_STABLE [aefbc208b] 2016-02-04 00:26:10 -0500 -Branch: REL9_2_STABLE [4f58a7003] 2016-02-04 00:26:10 -0500 -Branch: REL9_1_STABLE [9c704632c] 2016-02-04 00:26:10 -0500 ---> - - <listitem> - <para> - Make <application>pg_dump</application> mark a view's triggers as needing to be - processed after its rule, to prevent possible failure during - parallel <application>pg_restore</application> (Tom Lane) - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [64f5edca2] 2016-02-01 08:23:41 -0500 -Branch: REL9_5_STABLE [829757c8a] 2016-02-01 08:26:07 -0500 -Branch: REL9_4_STABLE [c33d1a8d5] 2016-02-03 09:15:29 -0500 -Branch: REL9_3_STABLE [014796aa3] 2016-02-03 09:19:58 -0500 -Branch: REL9_2_STABLE [b63a4f418] 2016-02-03 09:21:44 -0500 -Branch: REL9_1_STABLE [4c8b07d3c] 2016-02-03 09:25:34 -0500 ---> - - <listitem> - <para> - Install guards in <application>pgbench</application> against corner-case overflow - conditions during evaluation of script-specified division or modulo - operators (Fabien Coelho, Michael Paquier) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [4aecd22d3] 2016-01-05 17:25:12 -0300 -Branch: REL9_5_STABLE [7ef311eb4] 2016-01-05 17:25:12 -0300 ---> - - <listitem> - <para> - Suppress useless warning message when <application>pg_receivexlog</application> - connects to a pre-9.4 server (Marco Nenciarini) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [866566a69] 2016-01-11 19:55:39 -0500 -Branch: REL9_5_STABLE [db8fa56d6] 2016-01-11 19:55:39 -0500 -Branch: REL9_4_STABLE [22815752e] 2016-01-11 19:55:40 -0500 -Branch: REL9_3_STABLE [0ddeaba7e] 2016-01-11 19:55:40 -0500 -Branch: REL9_2_STABLE [3843ba510] 2016-01-11 19:55:40 -0500 -Branch: master [fb6fcbd33] 2016-01-11 20:06:36 -0500 -Branch: REL9_5_STABLE [5ef26b8de] 2016-01-11 20:06:47 -0500 ---> - - <listitem> - <para> - Avoid dump/reload problems when using both <application>plpython2</application> - and <application>plpython3</application> (Tom Lane) - </para> - - <para> - In principle, both versions of <application>PL/Python</application> can be used in - the same database, though not in the same session (because the two - versions of <application>libpython</application> cannot safely be used concurrently). - However, <application>pg_restore</application> and <application>pg_upgrade</application> both - do things that can fall foul of the same-session restriction. Work - around that by changing the timing of the check. - </para> - </listitem> - -<!-- -Author: Peter Eisentraut <peter_e@gmx.net> -Branch: REL9_4_STABLE [f1b898759] 2015-11-14 13:43:43 -0500 -Branch: REL9_3_STABLE [a37ab812c] 2015-11-14 13:44:09 -0500 -Branch: REL9_2_STABLE [82076c1e4] 2015-11-14 13:53:26 -0500 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_5_STABLE [a66c1fcdd] 2016-01-08 11:39:28 -0500 ---> - - <listitem> - <para> - Fix <application>PL/Python</application> regression tests to pass with Python 3.5 - (Peter Eisentraut) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [f4aa3a18a] 2016-02-05 20:22:51 -0500 -Branch: REL9_5_STABLE [0089dd34a] 2016-02-05 20:23:04 -0500 -Branch: REL9_4_STABLE [ed6deeb7a] 2016-02-05 20:23:07 -0500 -Branch: REL9_3_STABLE [34e91736b] 2016-02-05 20:23:11 -0500 -Branch: REL9_2_STABLE [de9766d39] 2016-02-05 20:23:14 -0500 -Branch: REL9_1_STABLE [b1f591c50] 2016-02-05 20:23:19 -0500 ---> - - <listitem> - <para> - Prevent certain <application>PL/Java</application> parameters from being set by - non-superusers (Noah Misch) - </para> - - <para> - This change mitigates a <application>PL/Java</application> security bug - (CVE-2016-0766), which was fixed in <application>PL/Java</application> by marking - these parameters as superuser-only. To fix the security hazard for - sites that update <productname>PostgreSQL</productname> more frequently - than <application>PL/Java</application>, make the core code aware of them also. - </para> - </listitem> - -<!-- -Author: Michael Meskes <meskes@postgresql.org> -Branch: master [7a58d19b0] 2016-02-01 13:21:00 +0100 -Branch: REL9_5_STABLE [40482e606] 2016-02-01 13:20:37 +0100 -Branch: REL9_3_STABLE [0b55fef39] 2016-02-01 13:19:10 +0100 -Branch: REL9_2_STABLE [d9ce5d201] 2016-02-01 13:19:34 +0100 -Branch: REL9_1_STABLE [79782b407] 2016-02-01 13:19:43 +0100 -Author: Andres Freund <andres@anarazel.de> -Branch: REL9_4_STABLE [33b26426e] 2016-02-08 11:10:14 +0100 ---> - - <listitem> - <para> - Fix <application>ecpg</application>-supplied header files to not contain comments - continued from a preprocessor directive line onto the next line - (Michael Meskes) - </para> - - <para> - Such a comment is rejected by <application>ecpg</application>. It's not yet clear - whether <application>ecpg</application> itself should be changed. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e6ecc93a1] 2016-02-03 01:39:48 -0500 -Branch: REL9_5_STABLE [1c291624b] 2016-02-03 01:39:08 -0500 -Branch: REL9_4_STABLE [aa223a037] 2016-02-03 01:39:08 -0500 -Branch: REL9_3_STABLE [1f2b195eb] 2016-02-03 01:39:08 -0500 ---> - - <listitem> - <para> - Fix <function>hstore_to_json_loose()</function>'s test for whether - an <type>hstore</type> value can be converted to a JSON number (Tom Lane) - </para> - - <para> - Previously this function could be fooled by non-alphanumeric trailing - characters, leading to emitting syntactically-invalid JSON. - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [9418d79a7] 2016-02-04 21:17:53 -0500 -Branch: REL9_5_STABLE [453d40817] 2016-02-04 21:17:46 -0500 -Branch: REL9_4_STABLE [1f3294c22] 2016-02-04 21:15:57 -0500 -Branch: master [37c84570b] 2016-02-04 22:27:13 -0500 -Branch: REL9_5_STABLE [d160e2a34] 2016-02-04 22:27:38 -0500 -Branch: REL9_4_STABLE [2099b911d] 2016-02-04 22:27:47 -0500 ---> - - <listitem> - <para> - In <filename>contrib/postgres_fdw</filename>, fix bugs triggered by use - of <literal>tableoid</literal> in data-modifying commands (Etsuro Fujita, - Robert Haas) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a396144ac] 2016-01-22 11:53:06 -0500 -Branch: REL9_5_STABLE [47acf3add] 2016-01-22 11:53:06 -0500 ---> - - <listitem> - <para> - Fix ill-advised restriction of <literal>NAMEDATALEN</literal> to be less - than 256 (Robert Haas, Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3343ea9e8] 2016-01-05 15:47:05 -0500 -Branch: REL9_5_STABLE [8805af088] 2016-01-05 15:47:05 -0500 -Branch: REL9_4_STABLE [8c558b2e9] 2016-01-05 15:47:05 -0500 -Branch: REL9_3_STABLE [6d899f098] 2016-01-05 15:47:05 -0500 ---> - - <listitem> - <para> - Improve reproducibility of build output by ensuring filenames are given - to the linker in a fixed order (Christoph Berg) - </para> - - <para> - This avoids possible bitwise differences in the produced executable - files from one build to the next. - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [216d56843] 2016-01-19 23:30:29 -0500 -Branch: REL9_5_STABLE [34bda20ae] 2016-01-19 23:30:29 -0500 -Branch: REL9_4_STABLE [8b3d52801] 2016-01-19 23:30:29 -0500 -Branch: REL9_3_STABLE [7a47262ce] 2016-01-19 23:30:28 -0500 -Branch: REL9_2_STABLE [49d65e857] 2016-01-19 23:30:28 -0500 -Branch: REL9_1_STABLE [b1bc38144] 2016-01-19 23:30:28 -0500 ---> - - <listitem> - <para> - Ensure that <filename>dynloader.h</filename> is included in the installed - header files in MSVC builds (Bruce Momjian, Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a73311e52] 2016-02-05 10:59:09 -0500 -Branch: REL9_5_STABLE [37e694632] 2016-02-05 10:59:21 -0500 -Branch: REL9_4_STABLE [31b792f61] 2016-02-05 10:59:26 -0500 -Branch: REL9_3_STABLE [9a3475b84] 2016-02-05 10:59:31 -0500 -Branch: REL9_2_STABLE [32f17a2e7] 2016-02-05 10:59:35 -0500 -Branch: REL9_1_STABLE [6887d72d0] 2016-02-05 10:59:39 -0500 ---> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> release 2016a for - DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal - Territory (Zabaykalsky Krai), plus historical corrections for Pakistan. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-5"> - <title>Release 9.5</title> - - <formalpara> - <title>Release date:</title> - <para>2016-01-07</para> - </formalpara> - - <sect2> - <title>Overview</title> - - <para> - Major enhancements in <productname>PostgreSQL</productname> 9.5 include: - </para> - - <!-- This list duplicates items below, but without authors or details--> - - <itemizedlist> - - <listitem> - <para> - Allow <link linkend="sql-on-conflict"><command>INSERT</command></link>s - that would generate constraint conflicts to be turned into - <command>UPDATE</command>s or ignored - </para> - </listitem> - - <listitem> - <para> - Add <literal>GROUP BY</literal> analysis features <link - linkend="queries-grouping-sets"><literal>GROUPING SETS</literal></link>, - <link linkend="queries-grouping-sets"><literal>CUBE</literal></link> and - <link linkend="queries-grouping-sets"><literal>ROLLUP</literal></link> - </para> - </listitem> - - <listitem> - <para> - Add <link linkend="ddl-rowsecurity">row-level security control</link> - </para> - </listitem> - - <listitem> - <para> - Create mechanisms for tracking - the <link linkend="replication-origins">progress of replication</link>, - including methods for identifying the origin of individual changes - during logical replication - </para> - </listitem> - - <listitem> - <para> - Add <link linkend="brin">Block Range Indexes</link> (<acronym>BRIN</acronym>) - </para> - </listitem> - - <listitem> - <para> - Substantial performance improvements for sorting - </para> - </listitem> - - <listitem> - <para> - Substantial performance improvements for multi-CPU machines - </para> - </listitem> - - </itemizedlist> - - <para> - The above items are explained in more detail in the sections below. - </para> - - </sect2> - - <sect2> - - <title>Migration to Version 9.5</title> - - <para> - A dump/restore using <xref linkend="app-pg-dumpall"/>, or use - of <xref linkend="pgupgrade"/>, is required for those wishing to migrate - data from any previous release. - </para> - - <para> - Version 9.5 contains a number of changes that may affect compatibility - with previous releases. Observe the following incompatibilities: - </para> - - <itemizedlist> - - <listitem> -<!-- -2015-03-11 [c6b3c93] Tom Lane: Make operator precedence follow the SQL standar.. ---> - <para> - Adjust <link linkend="sql-precedence">operator precedence</link> - to match the <acronym>SQL</acronym> standard (Tom Lane) - </para> - - <para> - The precedence of <literal><=</literal>, <literal>>=</literal> - and <literal><></literal> has been reduced to match that of - <literal><</literal>, <literal>></literal> - and <literal>=</literal>. The precedence of <literal>IS</literal> tests - (e.g., <replaceable>x</replaceable> <literal>IS NULL</literal>) has been reduced to be - just below these six comparison operators. - Also, multi-keyword operators beginning with <literal>NOT</literal> now have - the precedence of their base operator (for example, <literal>NOT - BETWEEN</literal> now has the same precedence as <literal>BETWEEN</literal>) whereas - before they had inconsistent precedence, behaving like <literal>NOT</literal> - with respect to their left operand but like their base operator with - respect to their right operand. The new configuration - parameter <xref linkend="guc-operator-precedence-warning"/> can be - enabled to warn about queries in which these precedence changes result - in different parsing choices. - </para> - </listitem> - - <listitem> -<!-- -2015-03-31 [0badb06] Bruce ..: pg_ctl: change default shutdown mode from 'sma.. ---> - <para> - Change <xref linkend="app-pg-ctl"/>'s default shutdown mode from - <literal>smart</literal> to <literal>fast</literal> (Bruce Momjian) - </para> - - <para> - This means the default behavior will be to forcibly cancel existing - database sessions, not simply wait for them to exit. - </para> - </listitem> - - <listitem> -<!-- -2015-03-04 [1345cc6] Tom Lane: Use standard casting mechanism to convert type.. ---> - <para> - Use assignment cast behavior for data type conversions - in <application>PL/pgSQL</application> assignments, rather than converting to and - from text (Tom Lane) - </para> - - <para> - This change causes conversions of Booleans to strings to - produce <literal>true</literal> or <literal>false</literal>, not <literal>t</literal> - or <literal>f</literal>. Other type conversions may succeed in more cases - than before; for example, assigning a numeric value <literal>3.9</literal> to - an integer variable will now assign 4 rather than failing. If no - assignment-grade cast is defined for the particular source and - destination types, <application>PL/pgSQL</application> will fall back to its old - I/O conversion behavior. - </para> - </listitem> - - <listitem> -<!-- -2014-08-28 [11a020e] Andres..: Allow escaping of option values for options pas.. ---> - <para> - Allow characters in <link linkend="libpq-connect-options">server - command-line options</link> to be escaped with a backslash (Andres Freund) - </para> - - <para> - Formerly, spaces in the options string always separated options, so - there was no way to include a space in an option value. Including - a backslash in an option value now requires writing <literal>\\</literal>. - </para> - </listitem> - - <listitem> -<!-- -2015-05-08 [9a08841] Stephe..: Change default for include_realm to 1 ---> - <para> - Change the default value of the GSSAPI <link - linkend="gssapi-auth"><varname>include_realm</varname></link> parameter to 1, so - that by default the realm is not removed from a <acronym>GSS</acronym> - or <acronym>SSPI</acronym> principal name (Stephen Frost) - </para> - </listitem> - - <listitem> -<!-- -2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a.. -2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1.. -2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz.. ---> - <para> - Replace configuration parameter <varname>checkpoint_segments</varname> - with <xref linkend="guc-min-wal-size"/> - and <xref linkend="guc-max-wal-size"/> (Heikki Linnakangas) - </para> - - <para> - If you previously adjusted <varname>checkpoint_segments</varname>, the - following formula will give you an approximately equivalent setting: -<programlisting> -max_wal_size = (3 * checkpoint_segments) * 16MB -</programlisting> - Note that the default setting for <varname>max_wal_size</varname> is - much higher than the default <varname>checkpoint_segments</varname> used - to be, so adjusting it might no longer be necessary. - </para> - </listitem> - - <listitem> -<!-- -2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux.. ---> - <para> - Control the Linux <acronym>OOM</acronym> killer via new environment - variables <link - linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</envar></link> - and <link - linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</envar></link>, - instead of compile-time options <literal>LINUX_OOM_SCORE_ADJ</literal> and - <literal>LINUX_OOM_ADJ</literal> - (Gurjeet Singh) - </para> - </listitem> - - <listitem> -<!-- -2015-10-20 [b06f1f2] Robert..: Put back ssl_renegotiation_limit parameter, bu.. -2015-07-28 [6087d95] Andres..: Remove ssl renegotiation support. ---> - <para> - Decommission server configuration - parameter <varname>ssl_renegotiation_limit</varname>, which was deprecated - in earlier releases (Andres Freund) - </para> - - <para> - While SSL renegotiation is a good idea in theory, it has caused enough - bugs to be considered a net negative in practice, and it is due to be - removed from future versions of the relevant standards. We have - therefore removed support for it from <productname>PostgreSQL</productname>. - The <varname>ssl_renegotiation_limit</varname> parameter still exists, but - cannot be set to anything but zero (disabled). It's not documented - anymore, either. - </para> - </listitem> - - <listitem> -<!-- -2014-11-05 [525a489] Tom Lane: Remove the last vestige of server-side autocomm.. ---> - <para> - Remove server configuration parameter <varname>autocommit</varname>, which - was already deprecated and non-operational (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-03-06 [bb8582a] Peter ..: Remove rolcatupdate ---> - <para> - Remove the <link linkend="catalog-pg-authid"><structname>pg_authid</structname></link> - catalog's <structfield>rolcatupdate</structfield> field, as it had no usefulness - (Adam Brightwell) - </para> - </listitem> - - <listitem> -<!-- -2015-12-13 [28c3667] Magnus..: Consistently set all fields in pg_stat_replica.. ---> - <para> - The <link - linkend="pg-stat-replication-view"><structname>pg_stat_replication</structname></link> - system view's <structfield>sent</structfield> field is now NULL, not zero, when - it has no valid value (Magnus Hagander) - </para> - </listitem> - - <listitem> -<!-- -2015-07-17 [89ddd29] Andrew..: Support JSON negative array subscripts everywh.. ---> - <para> - Allow <type>json</type> and <type>jsonb</type> array extraction operators to - accept negative subscripts, which count from the end of JSON arrays - (Peter Geoghegan, Andrew Dunstan) - </para> - - <para> - Previously, these operators returned <literal>NULL</literal> for negative - subscripts. - </para> - </listitem> - - </itemizedlist> - - </sect2> - - <sect2> - <title>Changes</title> - - <para> - Below you will find a detailed account of the changes between - <productname>PostgreSQL</productname> 9.5 and the previous major - release. - </para> - - <sect3> - <title>Server</title> - - <sect4> - <title>Indexes</title> - - <itemizedlist> - - <listitem> -<!-- -2014-11-07 [7516f52] Alvaro..: BRIN: Block Range Indexes -2015-05-05 [3b6db1f] Alvaro..: Add geometry/range functions to support BRIN in.. -2015-05-15 [b0b7be6] Alvaro..: Add BRIN infrastructure for "inclusion" opclasses ---> - <para> - Add <link linkend="brin">Block Range Indexes</link> (<acronym>BRIN</acronym>) - (Álvaro Herrera) - </para> - - <para> - <acronym>BRIN</acronym> indexes store only summary data (such as minimum - and maximum values) for ranges of heap blocks. They are therefore - very compact and cheap to update; but if the data is naturally - clustered, they can still provide substantial speedup of searches. - </para> - </listitem> - - <listitem> -<!-- -2015-05-15 [35fcb1b] Heikki..: Allow GiST distance function to return merely .. ---> - <para> - Allow queries to perform accurate distance filtering of - bounding-box-indexed objects (polygons, circles) using <link - linkend="gist">GiST</link> indexes (Alexander Korotkov, Heikki - Linnakangas) - </para> - - <para> - Previously, to exploit such an index a subquery had to be used to - select a large number of rows ordered by bounding-box distance, and - the result then had to be filtered further with a more accurate - distance calculation. - </para> - </listitem> - - <listitem> -<!-- -2015-03-26 [d04c8ed] Heikki..: Add support for index-only scans in GiST. -2015-03-27 [e09b483] Heikki..: Add index-only scan support to btree_gist. -2015-03-28 [3a20b0e] Heikki..: Add index-only scan support to inet GiST opclass. -2015-03-30 [0633a60] Heikki..: Add index-only scan support to range type GiST .. ---> - <para> - Allow <link linkend="gist">GiST</link> indexes to perform index-only - scans (Anastasia Lubennikova, Heikki Linnakangas, Andreas Karlsson) - </para> - </listitem> - - <listitem> -<!-- -Add GUC and storage parameter to set the maximum size of GIN pending list. ---> - <para> - Add configuration parameter <xref linkend="guc-gin-pending-list-limit"/> - to control the size of <acronym>GIN</acronym> pending lists (Fujii Masao) - </para> - - <para> - This value can also be set on a per-index basis as an index storage - parameter. Previously the pending-list size was controlled - by <xref linkend="guc-work-mem"/>, which was awkward because - appropriate values for <varname>work_mem</varname> are often much too large - for this purpose. - </para> - </listitem> - - <listitem> -<!-- -2014-09-10 [84aa8ba] Bruce ..: Issue a warning during the creation of hash in.. ---> - <para> - Issue a warning during the creation of <link - linkend="indexes-types">hash</link> indexes because they are not - crash-safe (Bruce Momjian) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>General Performance</title> - - <itemizedlist> - - <listitem> -<!-- -2015-01-19 [4ea51cd] Robert..: Use abbreviated keys for faster sorting of text.. -2014-09-19 [e246b3d] Robert..: Add a fast pre-check for equality of equal-leng.. -2015-05-13 [78efd5c] Robert..: Extend abbreviated key infrastructure to datum .. ---> - <para> - Improve the speed of sorting of <type>varchar</type>, <type>text</type>, - and <type>numeric</type> fields via <quote>abbreviated</quote> keys - (Peter Geoghegan, Andrew Gierth, Robert Haas) - </para> - </listitem> - - <listitem> -<!-- -2014-11-07 [5ea86e6] Robert..: Use the sortsupport infrastructure in more cas.. ---> - <para> - Extend the infrastructure that allows sorting to be performed by - inlined, non-<acronym>SQL</acronym>-callable comparison functions to - cover <command>CREATE INDEX</command>, <command>REINDEX</command>, and - <command>CLUSTER</command> (Peter Geoghegan) - </para> - </listitem> - - <listitem> -<!-- -2014-09-10 [45f6240] Heikki..: Pack tuples in a hash join batch densely, to sa.. -2014-09-12 [8cce08f] Robert..: Change NTUP_PER_BUCKET to 1 to improve hash joi.. -2014-10-13 [30d7ae3] Kevin ..: Increase number of hash join buckets for undere.. ---> - <para> - Improve performance of hash joins (Tomas Vondra, Robert Haas) - </para> - </listitem> - - <listitem> -<!-- -2014-09-25 [5d7962c] Robert..: Change locking regimen around buffer replacement. -2014-12-25 [d72731a] Andres..: Lockless StrategyGetBuffer clock sweep hot path. ---> - <para> - Improve concurrency of shared buffer replacement - (Robert Haas, Amit Kapila, Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -2015-03-25 [2ed5b87f] Kevin ..: Reduce pinning and buffer content locking for b.. ---> - <para> - Reduce the number of page locks and pins during index scans (Kevin Grittner) - </para> - - <para> - The primary benefit of this is to allow index vacuums to be blocked - less often. - </para> - </listitem> - - <listitem> -<!-- -2014-08-30 [4b4b680] Andres..: Make backend local tracking of buffer pins memo.. -2015-01-19 [2d115e4] Andres..: Fix various shortcomings of the new PrivateRefC.. ---> - <para> - Make per-backend tracking of buffer pins more memory-efficient - (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -2014-12-25 [ab5194e] Andres..: Improve LWLock scalability. ---> - <para> - Improve lock scalability (Andres Freund) - </para> - - <para> - This particularly addresses scalability problems when running on - systems with multiple <acronym>CPU</acronym> sockets. - </para> - </listitem> - - <listitem> -<!-- -2014-07-15 [f15821e] Tom Lane: Allow join removal in some cases involving a le.. ---> - <para> - Allow the optimizer to remove unnecessary references to left-joined - subqueries (David Rowley) - </para> - </listitem> - - <listitem> -<!-- -2014-06-27 [d222585] Tom Lane: Allow pushdown of WHERE quals into subqueries w.. ---> - <para> - Allow pushdown of query restrictions into subqueries with <link - linkend="tutorial-window">window functions</link>, where appropriate - (David Rowley) - </para> - </listitem> - - <listitem> -<!-- -2015-04-27 [dcbf594] Stephe..: Improve qual pushdown for RLS and SB views ---> - <para> - Allow a non-leakproof function to be pushed down into a security - barrier view if the function does not receive any view output - columns (Dean Rasheed) - </para> - </listitem> - - <listitem> -<!-- -2015-09-24 [45d256c] Tom Lane: Allow planner to use expression-index stats fo.. ---> - <para> - Teach the planner to use statistics obtained from an expression - index on a boolean-returning function, when a matching function call - appears in <literal>WHERE</literal> (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-09-23 [cfb2024] Tom Lane: Make ANALYZE compute basic statistics even for.. ---> - <para> - Make <command>ANALYZE</command> compute basic statistics (null fraction and - average column width) even for columns whose data type lacks an - equality function (Oleksandr Shulgin) - </para> - </listitem> - - <listitem> -<!-- -2014-11-04 [5028f22] Heikki..: Switch to CRC-32C in WAL and other places. -2015-02-10 [025c024] Heikki..: Speed up CRC calculation using slicing-by-8 alg.. -2015-04-14 [3dc2d62] Heikki..: Use Intel SSE 4.2 CRC instructions where availa.. - ---> - <para> - Speed up <acronym>CRC</acronym> (cyclic redundancy check) computations - and switch to CRC-32C (Abhijit Menon-Sen, Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -2015-01-16 [f5ae3ba] Andres..: Make tbm_add_tuples more efficient by caching t.. -2015-01-16 [779fdcd] Tom Lane: Improve new caching logic in tbm_add_tuples(). ---> - <para> - Improve bitmap index scan performance (Teodor Sigaev, Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2014-07-01 [9f03ca9] Robert..: Avoid copying index tuples when building an ind.. ---> - <para> - Speed up <command>CREATE INDEX</command> by avoiding unnecessary memory - copies (Robert Haas) - </para> - </listitem> - - <listitem> -<!-- -2014-10-02 [3acc10c9] Robert..: Increase the number of buffer mapping partitio.. ---> - <para> - Increase the number of buffer mapping partitions (Amit Kapila, - Andres Freund, Robert Haas) - </para> - - <para> - This improves performance for highly concurrent workloads. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>Monitoring</title> - - <itemizedlist> - - <listitem> -<!-- -2015-04-03 [4ff695b1] Alvaro..: Add log_min_autovacuum_duration per-table option ---> - <para> - Add per-table autovacuum logging control via new - <varname>log_autovacuum_min_duration</varname> storage parameter - (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2014-06-29 [51adcaa] Andres..: Add cluster_name GUC which is included in proce.. ---> - <para> - Add new configuration parameter <xref linkend="guc-cluster-name"/> - (Thomas Munro) - </para> - - <para> - This string, typically set in <link - linkend="config-setting-configuration-file"><filename>postgresql.conf</filename></link>, - allows clients to identify the cluster. This name also appears - in the process title of all server processes, allowing for easier - identification of processes belonging to the same cluster. - </para> - </listitem> - - <listitem> -<!-- -2014-09-13 [fe550b2] Tom Lane: Invent PGC_SU_BACKEND and mark log_connections.. ---> - <para> - Prevent non-superusers from changing <xref - linkend="guc-log-disconnections"/> on connection startup (Fujii Masao) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><acronym>SSL</acronym></title> - - <itemizedlist> - - <listitem> -<!-- -2014-09-12 [acd08d7] Heikki..: Support Subject Alternative Names in SSL server.. ---> - <para> - Check <link linkend="libpq-ssl"><quote>Subject Alternative - Names</quote></link> in <acronym>SSL</acronym> server certificates, if present - (Alexey Klyukin) - </para> - - <para> - When they are present, this replaces checks against the certificate's - <quote>Common Name</quote>. - </para> - </listitem> - - <listitem> -<!-- -2015-04-12 [9029f4b] Magnus..: Add system view pg_stat_ssl ---> - <para> - Add system view <link - linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</structname></link> to report - <acronym>SSL</acronym> connection information (Magnus Hagander) - </para> - </listitem> - - <listitem> -<!-- -2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL .. ---> - <para> - Add <application>libpq</application> functions to return <acronym>SSL</acronym> - information in an implementation-independent way (Heikki Linnakangas) - </para> - - <para> - While <link linkend="libpq-pqgetssl"><function>PQgetssl()</function></link> can - still be used to call <productname>OpenSSL</productname> functions, it is now - considered deprecated because future versions - of <application>libpq</application> might support other <acronym>SSL</acronym> - implementations. When possible, use the new - functions <link - linkend="libpq-pqsslattribute"><function>PQsslAttribute()</function></link>, <link - linkend="libpq-pqsslattributenames"><function>PQsslAttributeNames()</function></link>, - and <link linkend="libpq-pqsslinuse"><function>PQsslInUse()</function></link> - to obtain <acronym>SSL</acronym> information in - an <acronym>SSL</acronym>-implementation-independent way. - </para> - </listitem> - - <listitem> -<!-- -2015-04-09 [8a0d34e4] Peter ..: libpq: Don't overwrite existing OpenSSL thread.. ---> - <para> - Make <application>libpq</application> honor any <productname>OpenSSL</productname> - thread callbacks (Jan Urbanski) - </para> - - <para> - Previously they were overwritten. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>Server Settings</title> - - <itemizedlist> - - <listitem> -<!-- -2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a.. -2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1.. -2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz.. ---> - <para> - Replace configuration parameter <varname>checkpoint_segments</varname> - with <xref linkend="guc-min-wal-size"/> - and <xref linkend="guc-max-wal-size"/> (Heikki Linnakangas) - </para> - - <para> - This change allows the allocation of a large number of <acronym>WAL</acronym> - files without keeping them after they are no longer needed. - Therefore the default for <varname>max_wal_size</varname> has been set - to <literal>1GB</literal>, much larger than the old default - for <varname>checkpoint_segments</varname>. - Also note that standby servers perform restartpoints to try to limit - their WAL space consumption to <varname>max_wal_size</varname>; previously - they did not pay any attention to <varname>checkpoint_segments</varname>. - </para> - </listitem> - - <listitem> -<!-- -2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux.. ---> - <para> - Control the Linux <acronym>OOM</acronym> killer via new environment - variables <link - linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</envar></link> - and <link - linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</envar></link> - (Gurjeet Singh) - </para> - - <para> - The previous <acronym>OOM</acronym> control infrastructure involved - compile-time options <literal>LINUX_OOM_SCORE_ADJ</literal> and - <literal>LINUX_OOM_ADJ</literal>, which are no longer supported. - The new behavior is available in all builds. - </para> - </listitem> - - <listitem> -<!-- -2014-12-03 [73c986a] Alvaro..: Keep track of transaction commit timestamps ---> - <para> - Allow recording of transaction - commit time stamps when configuration parameter <xref - linkend="guc-track-commit-timestamp"/> - is enabled (Álvaro Herrera, Petr Jelínek) - </para> - - <para> - Time stamp information can be accessed using functions <link - linkend="functions-commit-timestamp"><function>pg_xact_commit_timestamp()</function></link> - and <function>pg_last_committed_xact()</function>. - </para> - </listitem> - - <listitem> -<!-- -2014-12-22 [584e35d] Peter ..: Change local_preload_libraries to PGC_USERSET ---> - <para> - Allow <xref linkend="guc-local-preload-libraries"/> to be set - by <command>ALTER ROLE SET</command> (Peter Eisentraut, Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> -<!-- -2015-04-03 [a75fb9b] Alvaro..: Have autovacuum workers listen to SIGHUP, too ---> - <para> - Allow <link linkend="autovacuum">autovacuum workers</link> - to respond to configuration parameter changes during a run - (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2014-06-20 [3bdcf6a] Andres..: Don't allow to disable backend assertions via t.. ---> - <para> - Make configuration parameter <xref linkend="guc-debug-assertions"/> - read-only (Andres Freund) - </para> - - <para> - This means that assertions can no longer be turned - off if they were enabled at compile time, allowing for more - efficient code optimization. This change also removes the <link - linkend="app-postgres-options">postgres</link> <option>-A</option> option. - </para> - </listitem> - - <listitem> -<!-- -2014-10-18 [7feaccc] Peter ..: Allow setting effective_io_concurrency even on.. ---> - <para> - Allow setting <xref linkend="guc-effective-io-concurrency"/> on - systems where it has no effect (Peter Eisentraut) - </para> - </listitem> - - <listitem> -<!-- -2015-05-08 [a97e0c3] Stephe..: Add pg_file_settings view and function -2015-06-28 [62d16c7] Tom Lane: Improve design and implementation of pg_file_se.. ---> - <para> - Add system view <link - linkend="view-pg-file-settings"><structname>pg_file_settings</structname></link> - to show the contents of the server's configuration files - (Sawada Masahiko) - </para> - </listitem> - - <listitem> -<!-- -2015-05-14 [a486e35] Peter ..: Add pg_settings.pending_restart column ---> - <para> - Add <structname>pending_restart</structname> to the system view <link - linkend="view-pg-settings"><structname>pg_settings</structname></link> to - indicate a change has been made but will not take effect until a - database restart (Peter Eisentraut) - </para> - </listitem> - - <listitem> -<!-- -2014-09-02 [bd3b7a9] Fujii ..: Support ALTER SYSTEM RESET command. ---> - <para> - Allow <link linkend="sql-altersystem"><command>ALTER SYSTEM</command></link> - values to be reset with <command>ALTER SYSTEM RESET</command> (Vik - Fearing) - </para> - - <para> - This command removes the specified setting - from <filename>postgresql.auto.conf</filename>. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Replication and Recovery</title> - - <itemizedlist> - - <listitem> -<!-- -2015-04-29 [5aa2350] Andres..: Introduce replication progress tracking infrast.. ---> - <para> - Create mechanisms for tracking - the <link linkend="replication-origins">progress of replication</link>, - including methods for identifying the origin of individual changes - during logical replication (Andres Freund) - </para> - - <para> - This is helpful when implementing replication solutions. - </para> - </listitem> - - <listitem> -<!-- -2015-09-26 [bd7c348] Andres..: Rework the way multixact truncations work. -2015-09-26 [6e8af37] Andres..: Remove legacy multixact truncation support. ---> - <para> - Rework truncation of the multixact commit log to be properly - WAL-logged (Andres Freund) - </para> - - <para> - This makes things substantially simpler and more robust. - </para> - </listitem> - - <listitem> -<!-- -2014-11-25 [aedccb1] Simon ..: action_at_recovery_target recovery config option -2014-12-07 [b8e33a8] Simon ..: Tweaks for recovery_target_action -2015-03-15 [51c11a7] Andres..: Remove pause_at_recovery_target recovery.conf s.. ---> - <para> - Add <link linkend="recovery-config"><filename>recovery.conf</filename></link> - parameter <link - linkend="recovery-target-action"><varname>recovery_target_action</varname></link> - to control post-recovery activity (Petr Jelínek) - </para> - - <para> - This replaces the old parameter <varname>pause_at_recovery_target</varname>. - </para> - </listitem> - - <listitem> -<!-- -2015-05-15 [ffd3774] Heikki..: Add archive_mode='always' option. ---> - <para> - Add new <xref linkend="guc-archive-mode"/> value - <literal>always</literal> to allow standbys to always archive received - <acronym>WAL</acronym> files (Fujii Masao) - </para> - </listitem> - - <listitem> -<!-- -2015-02-23 [5d2b45e] Fujii ..: Add GUC to control the time to wait before retr.. ---> - <para> - Add configuration - parameter <xref linkend="guc-wal-retrieve-retry-interval"/> to - control <acronym>WAL</acronym> read retry after failure - (Alexey Vasiliev, Michael Paquier) - </para> - - <para> - This is particularly helpful for warm standbys. - </para> - </listitem> - - <listitem> -<!-- -2015-03-11 [57aa5b2] Fujii ..: Add GUC to enable compression of full page imag.. ---> - <para> - Allow compression of full-page images stored in <acronym>WAL</acronym> - (Rahila Syed, Michael Paquier) - </para> - - <para> - This feature reduces WAL volume, at the cost of more CPU time spent - on WAL logging and WAL replay. It is controlled by a new - configuration parameter <xref linkend="guc-wal-compression"/>, which - currently is off by default. - </para> - </listitem> - - <listitem> -<!-- -2015-05-08 [de76884] Heikki..: At promotion, archive last segment from old tim.. ---> - <para> - Archive <acronym>WAL</acronym> files with suffix <literal>.partial</literal> - during standby promotion (Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -2014-09-13 [4ad2a54] Fujii ..: Add GUC to enable logging of replication comman.. ---> - <para> - Add configuration parameter <xref - linkend="guc-log-replication-commands"/> - to log replication commands (Fujii Masao) - </para> - - <para> - By default, replication commands, e.g. <link - linkend="protocol-replication"><literal>IDENTIFY_SYSTEM</literal></link>, - are not logged, even when <xref linkend="guc-log-statement"/> is set - to <literal>all</literal>. - </para> - </listitem> - - <listitem> -<!-- -2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots. ---> - <para> - Report the processes holding replication slots in <link - linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname></link> - (Craig Ringer) - </para> - - <para> - The new output column is <structname>active_pid</structname>. - </para> - </listitem> - - <listitem> -<!-- -2014-11-25 [b3fc672] Heikki..: Allow using connection URI in primary_conninfo. ---> - <para> - Allow <filename>recovery.conf</filename>'s <link - linkend="primary-conninfo"><varname>primary_conninfo</varname></link> setting to - use connection <acronym>URI</acronym>s, e.g. <literal>postgres://</literal> - (Alexander Shulgin) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Queries</title> - - <itemizedlist> - - <listitem> -<!-- -2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI.. -2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p.. ---> - <para> - Allow <link linkend="sql-on-conflict"><command>INSERT</command></link>s - that would generate constraint conflicts to be turned into - <command>UPDATE</command>s or ignored (Peter Geoghegan, Heikki - Linnakangas, Andres Freund) - </para> - - <para> - The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</command>. - This is the Postgres implementation of the popular - <command>UPSERT</command> command. - </para> - </listitem> - - <listitem> -<!-- -2015-05-16 [f3d3118] Andres..: Support GROUPING SETS, CUBE and ROLLUP. ---> - <para> - Add <literal>GROUP BY</literal> analysis features <link - linkend="queries-grouping-sets"><literal>GROUPING SETS</literal></link>, - <link linkend="queries-grouping-sets"><literal>CUBE</literal></link> and - <link linkend="queries-grouping-sets"><literal>ROLLUP</literal></link> - (Andrew Gierth, Atri Sharma) - </para> - </listitem> - - <listitem> -<!-- -2014-06-18 [8f889b1] Tom Lane: Implement UPDATE tab SET (col1,col2,...) = (SEL.. ---> - <para> - Allow setting multiple target columns in - an <link linkend="sql-update"><command>UPDATE</command></link> from the result of - a single sub-SELECT (Tom Lane) - </para> - - <para> - This is accomplished using the syntax <command>UPDATE tab SET - (col1, col2, ...) = (SELECT ...)</command>. - </para> - </listitem> - - <listitem> -<!-- -2014-10-07 [df630b0] Alvaro..: Implement SKIP LOCKED for row-level locks ---> - <para> - Add <link linkend="sql-select"><command>SELECT</command></link> option - <literal>SKIP LOCKED</literal> to skip locked rows (Thomas Munro) - </para> - - <para> - This does not throw an error for locked rows like - <literal>NOWAIT</literal> does. - </para> - </listitem> - - <listitem> -<!-- -2015-05-15 [f6d208d] Simon ..: TABLESAMPLE, SQL Standard and extensible ---> - <para> - Add <link linkend="sql-select"><command>SELECT</command></link> option - <literal>TABLESAMPLE</literal> to return a subset of a table (Petr - Jelínek) - </para> - - <para> - This feature supports the SQL-standard table sampling methods. - In addition, there are provisions - for <link linkend="tablesample-method">user-defined - table sampling methods</link>. - </para> - </listitem> - - <listitem> -<!-- -2015-03-11 [e529cd4] Robert..: Suggest to the user the column they may have m.. ---> - <para> - Suggest possible matches for mistyped column names (Peter - Geoghegan, Robert Haas) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Utility Commands</title> - - <itemizedlist> - - <listitem> -<!-- -2015-01-16 [20af53d] Tom Lane: Show sort ordering options in EXPLAIN output. ---> - <para> - Add more details about sort ordering in <link - linkend="sql-explain"><command>EXPLAIN</command></link> output (Marius Timmer, - Lukas Kreft, Arne Scheffer) - </para> - - <para> - Details include <literal>COLLATE</literal>, <literal>DESC</literal>, - <literal>USING</literal>, and <literal>NULLS FIRST</literal><literal>/LAST</literal>. - </para> - </listitem> - - <listitem> -<!-- -2014-12-18 [35192f0] Alvaro..: Have VACUUM log number of skipped pages due to .. ---> - <para> - Make <link linkend="sql-vacuum"><command>VACUUM</command></link> log the - number of pages skipped due to pins (Jim Nasby) - </para> - </listitem> - - <listitem> -<!-- -2015-02-20 [d42358e] Alvaro..: Have TRUNCATE update pgstat tuple counters ---> - <para> - Make <link linkend="sql-truncate"><command>TRUNCATE</command></link> properly - update the <literal>pg_stat</literal>* tuple counters (Alexander Shulgin) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><xref linkend="sql-reindex"/></title> - - <itemizedlist> - - <listitem> -<!-- -2014-12-09 [fe263d1] Simon ..: REINDEX SCHEMA ---> - <para> - Allow <command>REINDEX</command> to reindex an entire schema using the - <literal>SCHEMA</literal> option (Sawada Masahiko) - </para> - </listitem> - - <listitem> -<!-- -2015-05-15 [ecd222e] Fujii ..: Support VERBOSE option in REINDEX command. ---> - <para> - Add <literal>VERBOSE</literal> option to <command>REINDEX</command> (Sawada - Masahiko) - </para> - </listitem> - - <listitem> -<!-- -2014-12-09 [ae4e688] Simon ..: Silence REINDEX ---> - <para> - Prevent <command>REINDEX DATABASE</command> and <command>SCHEMA</command> - from outputting object names, unless <literal>VERBOSE</literal> is used - (Simon Riggs) - </para> - </listitem> - - <listitem> -<!-- -2015-04-09 [17d436d] Fujii ..: Remove obsolete FORCE option from REINDEX. ---> - <para> - Remove obsolete <literal>FORCE</literal> option from <command>REINDEX</command> - (Fujii Masao) - </para> - </listitem> - - </itemizedlist> - - </sect4> - </sect3> - - <sect3> - <title>Object Manipulation</title> - - <itemizedlist> - - <listitem> -<!-- -2014-09-19 [491c029] Stephe..: Row-Level Security Policies (RLS) ---> - <para> - Add <link linkend="ddl-rowsecurity">row-level security control</link> - (Craig Ringer, KaiGai Kohei, Adam Brightwell, Dean Rasheed, - Stephen Frost) - </para> - - <para> - This feature allows row-by-row control over which users can add, - modify, or even see rows in a table. This is controlled by new - commands <link linkend="sql-createpolicy"><command>CREATE</command></link>/<link - linkend="sql-alterpolicy"><command>ALTER</command></link>/<link - linkend="sql-droppolicy"><command>DROP POLICY</command></link> and <link - linkend="sql-altertable"><command>ALTER TABLE ... ENABLE/DISABLE - ROW SECURITY</command></link>. - </para> - </listitem> - - <listitem> -<!-- -2014-08-22 [f41872d] Alvaro..: Implement ALTER TABLE .. SET LOGGED / UNLOGGED ---> - <para> - Allow changing of the <acronym>WAL</acronym> - logging status of a table after creation with <link - linkend="sql-altertable"><command>ALTER TABLE ... SET LOGGED / - UNLOGGED</command></link> (Fabrízio de Royes Mello) - </para> - </listitem> - - <listitem> -<!-- -2014-08-26 [0076f26] Heikki..: Implement IF NOT EXISTS for CREATE SEQUENCE. -2014-11-06 [08309aa] Fujii ..: Implement IF NOT EXIST for CREATE INDEX. -2014-12-13 [e39b6f9] Andrew..: Add CINE option for CREATE TABLE AS and CREATE .. ---> - <para> - Add <literal>IF NOT EXISTS</literal> clause to <link - linkend="sql-createtableas"><command>CREATE TABLE AS</command></link>, - <link linkend="sql-createindex"><command>CREATE INDEX</command></link>, - <link linkend="sql-createsequence"><command>CREATE SEQUENCE</command></link>, - and <link linkend="sql-creatematerializedview"><command>CREATE - MATERIALIZED VIEW</command></link> (Fabrízio de Royes Mello) - </para> - </listitem> - - <listitem> -<!-- -2015-03-24 [1d8198b] Bruce ..: Add support for ALTER TABLE IF EXISTS ... RENAM.. ---> - <para> - Add support for <literal>IF EXISTS</literal> to <link - linkend="sql-altertable"><command>ALTER TABLE ... RENAME - CONSTRAINT</command></link> (Bruce Momjian) - </para> - </listitem> - - <listitem> -<!-- -2015-03-09 [31eae60] Alvaro..: Allow CURRENT/SESSION_USER to be used in certai.. ---> - <para> - Allow some DDL commands to accept <literal>CURRENT_USER</literal> - or <literal>SESSION_USER</literal>, meaning the current user or session - user, in place of a specific user name (Kyotaro Horiguchi, - Álvaro Herrera) - </para> - - <para> - This feature is now supported in - <xref linkend="sql-alteruser"/>, <xref linkend="sql-altergroup"/>, - <xref linkend="sql-alterrole"/>, <xref linkend="sql-grant"/>, - and <command>ALTER <replaceable>object</replaceable> OWNER TO</command> commands. - </para> - </listitem> - - <listitem> -<!-- -2014-12-23 [7eca575] Alvaro..: get_object_address: separate domain constraints.. ---> - <para> - Support comments on <link linkend="sql-createdomain">domain - constraints</link> (Álvaro Herrera) - </para> - </listitem> - - <listitem> -<!-- -2015-04-05 [0ef0396] Simon ..: Reduce lock levels of some trigger DDL and add .. ---> - <para> - Reduce lock levels of some create and alter trigger and foreign - key commands (Simon Riggs, Andreas Karlsson) - </para> - </listitem> - - <listitem> -<!-- -2015-05-11 [fa26424] Stephe..: Allow LOCK TABLE .. ROW EXCLUSIVE MODE with IN.. ---> - <para> - Allow <link linkend="sql-lock"><command>LOCK TABLE ... ROW EXCLUSIVE - MODE</command></link> for those with <command>INSERT</command> privileges on the - target table (Stephen Frost) - </para> - - <para> - Previously this command required <command>UPDATE</command>, <command>DELETE</command>, - or <command>TRUNCATE</command> privileges. - </para> - </listitem> - - <listitem> -<!-- -2015-03-23 [e5f455f] Tom Lane: Apply table and domain CHECK constraints in nam. ---> - <para> - Apply table and domain <literal>CHECK</literal> constraints in order by name - (Tom Lane) - </para> - - <para> - The previous ordering was indeterminate. - </para> - </listitem> - - <listitem> -<!-- -2014-07-01 [15c82ef] Tom Lane: Refactor CREATE/ALTER DATABASE syntax so option.. -2014-07-01 [fbb1d7d] Tom Lane: Allow CREATE/ALTER DATABASE to manipulate datis.. ---> - <para> - Allow <link - linkend="sql-createdatabase"><command>CREATE</command></link>/<link - linkend="sql-alterdatabase"><command>ALTER DATABASE</command></link> - to manipulate <structname>datistemplate</structname> and - <structname>datallowconn</structname> (Vik Fearing) - </para> - - <para> - This allows these per-database settings to be - changed without manually modifying the <link - linkend="catalog-pg-database"><structname>pg_database</structname></link> - system catalog. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><link linkend="ddl-foreign-data">Foreign Tables</link></title> - - <itemizedlist> - - <listitem> -<!-- -2014-07-10 [59efda3] Tom Lane: Implement IMPORT FOREIGN SCHEMA. ---> - <para> - Add support for <xref linkend="sql-importforeignschema"/> - (Ronan Dunklau, Michael Paquier, Tom Lane) - </para> - - <para> - This command allows automatic creation of local foreign tables - that match the structure of existing tables on a remote server. - </para> - </listitem> - - <listitem> -<!-- -2014-12-17 [fc2ac1f] Tom Lane: Allow CHECK constraints to be placed on foreign.. ---> - <para> - Allow <literal>CHECK</literal> constraints to be placed on foreign tables - (Shigeru Hanada, Etsuro Fujita) - </para> - - <para> - Such constraints are assumed to be enforced on the remote server, - and are not enforced locally. However, they are assumed to hold for - purposes of query optimization, such - as <link linkend="ddl-partitioning-constraint-exclusion">constraint - exclusion</link>. - </para> - </listitem> - - <listitem> -<!-- -2015-03-22 [cb1ca4d] Tom Lane: Allow foreign tables to participate in inherita.. ---> - <para> - Allow foreign tables to participate in inheritance (Shigeru Hanada, - Etsuro Fujita) - </para> - - <para> - To let this work naturally, foreign tables are now allowed to have - check constraints marked as not valid, and to set storage - and <type>OID</type> characteristics, even though these operations are - effectively no-ops for a foreign table. - </para> - </listitem> - - <listitem> -<!-- -2015-05-01 [e7cb7ee] Robert..: Allow FDWs and custom scan providers to replace.. -2015-05-10 [1a8a4e5] Tom Lane: Code review for foreign/custom join pushdown pa.. ---> - <para> - Allow foreign data wrappers and custom scans to implement join - pushdown (KaiGai Kohei) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><link linkend="event-triggers">Event Triggers</link></title> - - <itemizedlist> - - <listitem> -<!-- -2015-05-11 [b488c58] Alvaro..: Allow on-the-fly capture of DDL event details ---> - <para> - Whenever a <literal>ddl_command_end</literal> event trigger is installed, - capture details of <acronym>DDL</acronym> activity for it to inspect - (Álvaro Herrera) - </para> - - <para> - This information is available through a set-returning function <link - linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands()</function></link>, - or by inspection of C data structures if that function doesn't - provide enough detail. - </para> - </listitem> - - <listitem> -<!-- -2014-12-08 [618c943] Simon ..: Event Trigger for table_rewrite ---> - <para> - Allow event triggers on table rewrites caused by <link - linkend="sql-altertable"><command>ALTER TABLE</command></link> (Dimitri - Fontaine) - </para> - </listitem> - - <listitem> -<!-- -2015-02-23 [296f3a6] Alvaro..: Support more commands in event triggers ---> - <para> - Add event trigger support for database-level <link - linkend="sql-comment"><command>COMMENT</command></link>, <link - linkend="sql-security-label"><command>SECURITY LABEL</command></link>, - and <link linkend="sql-grant"><command>GRANT</command></link>/<link - linkend="sql-revoke"><command>REVOKE</command></link> (Álvaro Herrera) - </para> - </listitem> - - <listitem> -<!-- -2014-12-30 [72dd233] Alvaro..: pg_event_trigger_dropped_objects: Add name/args.. -2015-04-06 [e9a077c] Alvaro..: pg_event_trigger_dropped_objects: add is_temp c.. ---> - <para> - Add columns to the output of <link - linkend="pg-event-trigger-sql-drop-functions"><function>pg_event_trigger_dropped_objects</function></link> - (Álvaro Herrera) - </para> - - <para> - This allows simpler processing of delete operations. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Data Types</title> - - <itemizedlist> - - <listitem> -<!-- -2014-09-09 [57b1085] Peter ..: Allow empty content in xml type ---> - <para> - Allow the <link linkend="datatype-xml"><type>xml</type></link> data type - to accept empty or all-whitespace content values (Peter Eisentraut) - </para> - - <para> - This is required by the <acronym>SQL</acronym>/<acronym>XML</acronym> - specification. - </para> - </listitem> - - <listitem> -<!-- -2014-10-21 [6f04368] Peter ..: Allow input format xxxx-xxxx-xxxx for macaddr .. ---> - <para> - Allow <link linkend="datatype-macaddr"><type>macaddr</type></link> input - using the format <literal>xxxx-xxxx-xxxx</literal> (Herwin Weststrate) - </para> - </listitem> - - <listitem> -<!-- -2014-10-18 [417f924] Bruce ..: interval: tighten precision specification ---> - <para> - Disallow non-SQL-standard syntax for <link - linkend="datatype-interval-input"><type>interval</type></link> with - both precision and field specifications (Bruce Momjian) - </para> - - <para> - Per the standard, such type specifications should be written as, - for example, <literal>INTERVAL MINUTE TO SECOND(2)</literal>. - <productname>PostgreSQL</productname> formerly allowed this to be written as - <literal>INTERVAL(2) MINUTE TO SECOND</literal>, but it must now be - written in the standard way. - </para> - </listitem> - - <listitem> -<!-- -2015-04-01 [89840d7] Tom Lane: Provide real selectivity estimators for inet/ci.. ---> - <para> - Add selectivity estimators for <link - linkend="datatype-inet"><type>inet</type></link>/<link - linkend="datatype-cidr"><type>cidr</type></link> operators and improve - estimators for text search functions (Emre Hasegeli, Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-05-09 [0c90f67] Andrew..: Add new OID alias type regrole -2015-05-09 [cb9fa80] Andrew..: Add new OID alias type regnamespace ---> - <para> - Add data - types <link linkend="datatype-oid-table"><type>regrole</type></link> - and <link linkend="datatype-oid-table"><type>regnamespace</type></link> - to simplify entering and pretty-printing the <type>OID</type> of a role - or namespace (Kyotaro Horiguchi) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><link linkend="datatype-json"><acronym>JSON</acronym></link></title> - - <itemizedlist> - - <listitem> -<!-- -2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb -2015-05-31 [37def42] Andrew..: Rename jsonb_replace to jsonb_set and allow it .. ---> - <para> - Add <type>jsonb</type> functions <link - linkend="functions-json-processing-table"><function>jsonb_set()</function></link> - and <link - linkend="functions-json-processing-table"><function>jsonb_pretty()</function></link> - (Dmitry Dolgov, Andrew Dunstan, Petr Jelínek) - </para> - </listitem> - - <listitem> -<!-- -2014-12-12 [7e354ab] Andrew..: Add several generator functions for jsonb that .. ---> - <para> - Add <type>jsonb</type> generator functions <link - linkend="functions-json-creation-table"><function>to_jsonb()</function></link>, - <link - linkend="functions-json-creation-table"><function>jsonb_object()</function></link>, - <link - linkend="functions-json-creation-table"><function>jsonb_build_object()</function></link>, - <link - linkend="functions-json-creation-table"><function>jsonb_build_array()</function></link>, - <link - linkend="functions-aggregate-table"><function>jsonb_agg()</function></link>, - and <link - linkend="functions-aggregate-table"><function>jsonb_object_agg()</function></link> - (Andrew Dunstan) - </para> - - <para> - Equivalent functions already existed for type <type>json</type>. - </para> - </listitem> - - <listitem> -<!-- -2015-03-03 [b67f1ce] Tom Lane: Reduce json <=> jsonb casts from explicit-only.. ---> - <para> - Reduce casting requirements to/from <link - linkend="datatype-json"><type>json</type></link> and <link - linkend="datatype-json"><type>jsonb</type></link> (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-06-11 [908e234] Andrew..: Rename jsonb - text[] operator to #- to avoid a.. ---> - <para> - Allow <type>text</type>, <type>text</type> array, and <type>integer</type> - values to be <link linkend="functions-jsonb-op-table">subtracted</link> - from <type>jsonb</type> documents (Dmitry Dolgov, Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb ---> - <para> - Add <type>jsonb</type> <link - linkend="functions-jsonb-op-table"><literal>||</literal></link> operator - (Dmitry Dolgov, Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -2014-12-12 [237a882] Andrew..: Add json_strip_nulls and jsonb_strip_nulls fun.. ---> - <para> - Add <link - linkend="functions-json-processing-table"><function>json_strip_nulls()</function></link> - and <link - linkend="functions-json-processing-table"><function>jsonb_strip_nulls()</function></link> - functions to remove JSON null values from documents - (Andrew Dunstan) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Functions</title> - - <itemizedlist> - - <listitem> -<!-- -2014-11-11 [1871c89] Fujii ..: Add generate_series(numeric, numeric). ---> - <para> - Add <link linkend="functions-srf"><function>generate_series()</function></link> - for <type>numeric</type> values (Plato Malugin) - </para> - </listitem> - - <listitem> -<!-- -2014-11-25 [bac2739] Tom Lane: Support arrays as input to array_agg() and ARRA.. ---> - <para> - Allow <link - linkend="functions-aggregate-table"><function>array_agg()</function></link> and - <function>ARRAY()</function> to take arrays as inputs (Ali Akbar, Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-03-18 [13dbc7a] Alvaro..: array_offset() and array_offsets() -2015-03-30 [97690ea] Alvaro..: Change array_offset to return subscripts, not o.. ---> - <para> - Add functions <link - linkend="array-functions-table"><function>array_position()</function></link> - and <link - linkend="array-functions-table"><function>array_positions()</function></link> - to return subscripts of array values (Pavel Stehule) - </para> - </listitem> - - <listitem> -<!-- -2014-12-15 [4520ba6] Heikki..: Add point <-> polygon distance operator. ---> - <para> - Add a <type>point</type>-to-<type>polygon</type> distance operator - <link linkend="functions-geometry-op-table"><-></link> - (Alexander Korotkov) - </para> - </listitem> - - <listitem> -<!-- -2014-08-27 [8167a38] Jeff D..: Allow multibyte characters as escape in SIMILA.. ---> - <para> - Allow multibyte characters as escapes in <link - linkend="functions-similarto-regexp"><literal>SIMILAR TO</literal></link> - and <link linkend="functions-string-sql"><literal>SUBSTRING</literal></link> - (Jeff Davis) - </para> - - <para> - Previously, only a single-byte character was allowed as an escape. - </para> - </listitem> - - <listitem> -<!-- -2014-09-09 [e80252d] Tom Lane: Add width_bucket(anyelement, anyarray). ---> - <para> - Add a <link - linkend="functions-math-func-table"><function>width_bucket()</function></link> - variant that supports any sortable data type and non-uniform bucket - widths (Petr Jelínek) - </para> - </listitem> - - <listitem> -<!-- -2015-06-28 [cb2acb1] Heikki..: Add missing_ok option to the SQL functions for.. ---> - <para> - Add an optional <replaceable>missing_ok</replaceable> argument to <link - linkend="functions-admin-genfile-table"><function>pg_read_file()</function></link> - and related functions (Michael Paquier, Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -2015-03-10 [865f14a] Robert..: Allow named parameters to be specified using =>.. ---> - <para> - Allow <link linkend="sql-syntax-calling-funcs"><literal>=></literal></link> - to specify named parameters in function calls (Pavel Stehule) - </para> - - <para> - Previously only <literal>:=</literal> could be used. This requires removing - the possibility for <literal>=></literal> to be a user-defined operator. - Creation of user-defined <literal>=></literal> operators has been issuing - warnings since PostgreSQL 9.0. - </para> - </listitem> - - <listitem> -<!-- -2015-03-25 [06bf0dd] Tom Lane: Upgrade src/port/rint.c to be POSIX-compliant. ---> - <para> - Add <acronym>POSIX</acronym>-compliant rounding for platforms that use - PostgreSQL-supplied rounding functions (Pedro Gimeno Fortea) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title>System Information Functions and Views</title> - - <itemizedlist> - - <listitem> -<!-- -2014-12-23 [d7ee82e] Alvaro..: Add SQL-callable pg_get_object_address -2014-12-30 [a676201] Alvaro..: Add pg_identify_object_as_address ---> - <para> - Add function <link - linkend="functions-info-object-table"><function>pg_get_object_address()</function></link> - to return <type>OID</type>s that uniquely - identify an object, and function <link - linkend="functions-info-object-table"><function>pg_identify_object_as_address()</function></link> - to return object information based on <type>OID</type>s (Álvaro - Herrera) - </para> - </listitem> - - <listitem> -<!-- -2015-03-19 [bf03889] Stephe..: GetUserId() changes to has_privs_of_role() ---> - <para> - Loosen security checks for viewing queries in <link - linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname></link>, - executing <link - linkend="functions-admin-signal-table"><function>pg_cancel_backend()</function></link>, - and executing <link - linkend="functions-admin-signal-table"><function>pg_terminate_backend()</function></link> - (Stephen Frost) - </para> - - <para> - Previously, only the specific role owning the target session could - perform these operations; now membership in that role is sufficient. - </para> - </listitem> - - <listitem> -<!-- -2015-02-19 [2fb7a75] Tom Lane: Add pg_stat_get_snapshot_timestamp() to show s.. ---> - <para> - Add <link - linkend="monitoring-stats-funcs-table"><function>pg_stat_get_snapshot_timestamp()</function></link> - to output the time stamp of the statistics snapshot (Matt Kelly) - </para> - - <para> - This represents the last time the snapshot file was written to - the file system. - </para> - </listitem> - - <listitem> -<!-- -2014-09-10 [36ad1a8] Bruce ..: Implement mxid_age() to compute multi-xid age ---> - <para> - Add <link - linkend="vacuum-for-multixact-wraparound"><function>mxid_age()</function></link> - to compute multi-xid age (Bruce Momjian) - </para> - </listitem> - </itemizedlist> - - </sect4> - - <sect4> - <title>Aggregates</title> - - <itemizedlist> - - <listitem> -<!-- -2014-08-28 [6c40f83] Tom Lane: Add min and max aggregates for inet/cidr data t.. ---> - <para> - Add <function>min()</function>/<function>max()</function> aggregates - for <link linkend="datatype-inet"><type>inet</type></link>/<link - linkend="datatype-cidr"><type>cidr</type></link> data types (Haribabu - Kommi) - </para> - </listitem> - - <listitem> -<!-- -2015-03-20 [8122e14] Andres..: Add, optional, support for 128bit integers. -2015-03-20 [959277a] Andres..: Use 128-bit math to accelerate some aggregation.. ---> - <para> - Use 128-bit integers, where supported, as accumulators for some - aggregate functions (Andreas Karlsson) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Server-Side Languages</title> - - <itemizedlist> - - <listitem> -<!-- -2014-07-03 [8b6010b] Tom Lane: Improve support for composite types in PL/Python. ---> - <para> - Improve support for composite types in <link - linkend="plpython"><application>PL/Python</application></link> (Ed Behn, Ronan - Dunklau) - </para> - - <para> - This allows <application>PL/Python</application> functions to return arrays - of composite types. - </para> - </listitem> - - <listitem> -<!-- -2015-03-11 [1ce7a57] Peter ..: PL/Python: Avoid lossiness in float conversion ---> - <para> - Reduce lossiness of <link - linkend="plpython"><application>PL/Python</application></link> floating-point value - conversions (Marko Kreen) - </para> - </listitem> - - <listitem> -<!-- -2015-04-26 [cac7658] Peter ..: Add transforms feature ---> - <para> - Allow specification of conversion routines between <acronym>SQL</acronym> - data types and data types of procedural languages (Peter Eisentraut) - </para> - - <para> - This change adds new commands <link - linkend="sql-createtransform"><command>CREATE</command></link>/<link - linkend="sql-droptransform"><command>DROP TRANSFORM</command></link>. - This also adds optional transformations between the <link - linkend="hstore"><application>hstore</application></link> and <link - linkend="ltree"><application>ltree</application></link> types to/from <link - linkend="plperl"><application>PL/Perl</application></link> and <link - linkend="plpython"><application>PL/Python</application></link>. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title> - - <itemizedlist> - - <listitem> -<!-- -2015-05-14 [1dc5ebc] Tom Lane: Support "expanded" objects, particularly arrays.. -2015-02-16 [e983c4d] Tom Lane: Rationalize the APIs of array element/slice acc.. -2015-02-18 [56a79a8] Tom Lane: Split array_push into separate array_append and.. -2015-02-16 [9e3ad1a] Tom Lane: Use fast path in plpgsql's RETURN/RETURN NEXT i.. ---> - <para> - Improve <link linkend="plpgsql"><application>PL/pgSQL</application></link> array - performance (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-03-25 [a4847fc] Tom Lane: Add an ASSERT statement in plpgsql. ---> - <para> - Add an <link linkend="plpgsql-statements-assert"><command>ASSERT</command></link> - statement in <application>PL/pgSQL</application> (Pavel Stehule) - </para> - </listitem> - - <listitem> -<!-- -2014-11-25 [bb1b8f6] Tom Lane: De-reserve most statement-introducing keywords .. ---> - <para> - Allow more <link linkend="plpgsql"><application>PL/pgSQL</application></link> - keywords to be used as identifiers (Tom Lane) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Client Applications</title> - - <itemizedlist> - - <listitem> -<!-- -2015-04-11 [83aca89] Peter ..: Move pg_archivecleanup from contrib/ to src/bin/ -2015-04-19 [00882d9] Peter ..: Move pg_test_fsync from contrib/ to src/bin/ -2015-04-20 [528c2e4] Peter ..: Move pg_test_timing from contrib/ to src/bin/ -2015-04-21 [b0a738f] Peter ..: Move pg_xlogdump from contrib/ to src/bin/ ---> - <para> - Move <link - linkend="pgarchivecleanup"><application>pg_archivecleanup</application></link>, - <link linkend="pgtestfsync"><application>pg_test_fsync</application></link>, - <link linkend="pgtesttiming"><application>pg_test_timing</application></link>, - and <link linkend="pgwaldump"><application>pg_xlogdump</application></link> - from <filename>contrib</filename> to <filename>src/bin</filename> (Peter Eisentraut) - </para> - - <para> - This should result in these programs being installed by default in - most installations. - </para> - </listitem> - - <listitem> -<!-- -2015-03-23 [61081e7] Heikki..: Add pg_rewind, for re-synchronizing a master se.. ---> - <para> - Add <link linkend="app-pgrewind"><application>pg_rewind</application></link>, - which allows re-synchronizing a master server after failback - (Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -2014-10-06 [d9f38c7] Andres..: Add support for managing physical replication s.. ---> - <para> - Allow <link - linkend="app-pgreceivewal"><application>pg_receivexlog</application></link> - to manage physical replication slots (Michael Paquier) - </para> - - <para> - This is controlled via new <option>--create-slot</option> and - <option>--drop-slot</option> options. - </para> - </listitem> - - <listitem> -<!-- -2014-11-18 [c4f99d2] Fujii ..: Add ––synchronous option to pg_receivexlog, for.. ---> - <para> - Allow <link - linkend="app-pgreceivewal"><application>pg_receivexlog</application></link> - to synchronously flush <acronym>WAL</acronym> to storage using new - <option>--synchronous</option> option (Furuya Osamu, Fujii Masao) - </para> - - <para> - Without this, <acronym>WAL</acronym> files are fsync'ed only on close. - </para> - </listitem> - - <listitem> -<!-- -2015-01-23 [a179232] Alvaro..: vacuumdb: enable parallel mode ---> - <para> - Allow <link linkend="app-vacuumdb"><application>vacuumdb</application></link> to - vacuum in parallel using new <option>--jobs</option> option (Dilip Kumar) - </para> - </listitem> - - <listitem> -<!-- -2015-11-12 [5094da9] Alvaro..: vacuumdb: don't prompt for passwords over and .. ---> - <para> - In <link linkend="app-vacuumdb"><application>vacuumdb</application></link>, do not - prompt for the same password repeatedly when multiple connections - are necessary (Haribabu Kommi, Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2015-05-15 [458a077] Fujii ..: Support ––verbose option in reindexdb. ---> - <para> - Add <option>--verbose</option> option to <link - linkend="app-reindexdb"><application>reindexdb</application></link> (Sawada - Masahiko) - </para> - </listitem> - - <listitem> -<!-- -2015-05-12 [72d422a] Andrew..: Map basebackup tablespaces using a tablespace_.. ---> - <para> - Make <link linkend="app-pgbasebackup"><application>pg_basebackup</application></link> - use a tablespace mapping file when using <application>tar</application> format, - to support symbolic links and file paths of 100+ characters in length - on <systemitem class="osname">MS Windows</systemitem> (Amit Kapila) - </para> - </listitem> - - <listitem> -<!-- -2014-09-19 [728f152] Andres..: Add rmgr callback to name xlog record types for.. -2014-09-19 [bdd5726] Andres..: Add the capability to display summary statistic.. ---> - <para> - Add <link linkend="pgwaldump"><application>pg_xlogdump</application></link> option - <option>--stats</option> to display summary statistics (Abhijit Menon-Sen) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><xref linkend="app-psql"/></title> - - <itemizedlist> - - <listitem> -<!-- -2015-03-31 [9d9991c] Bruce ..: psql: add asciidoc output format ---> - <para> - Allow <application>psql</application> to produce AsciiDoc output (Szymon Guz) - </para> - </listitem> - - <listitem> -<!-- -2014-07-10 [5b214c5] Fujii ..: Add new ECHO mode 'errors' that displays only .. ---> - <para> - Add an <literal>errors</literal> mode that displays only failed commands - to <application>psql</application>'s <varname>ECHO</varname> variable - (Pavel Stehule) - </para> - - <para> - This behavior can also be selected with <application>psql</application>'s - <option>-b</option> option. - </para> - </listitem> - - <listitem> -<!-- -2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql ---> - <para> - Provide separate column, header, and border linestyle control - in <application>psql</application>'s unicode linestyle (Pavel Stehule) - </para> - - <para> - Single or double lines are supported; the default is - <literal>single</literal>. - </para> - </listitem> - - <listitem> -<!-- -2014-09-02 [51bb795] Andres..: Add psql PROMPT variable showing which line of .. ---> - <para> - Add new option <literal>%l</literal> in <application>psql</application>'s <link - linkend="app-psql-variables"><envar>PROMPT</envar></link> variables - to display the current multiline statement line number - (Sawada Masahiko) - </para> - </listitem> - - <listitem> -<!-- -2015-03-28 [7655f4c] Andrew..: Add a pager_min_lines setting to psql ---> - <para> - Add <literal>\pset</literal> option <link - linkend="app-psql-meta-commands"><varname>pager_min_lines</varname></link> - to control pager invocation (Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -2014-11-21 [4077fb4] Andrew..: Fix an error in psql that overcounted output l.. ---> - <para> - Improve <application>psql</application> line counting used when deciding - to invoke the pager (Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -2015-12-03 [07338cb] Tom Lane: Clean up some psql issues around handling of t.. -2015-12-08 [e90371d] Tom Lane: Make failure to open psql log-file fatal. ---> - <para> - <application>psql</application> now fails if the file specified by - an <option>--output</option> or <option>--log-file</option> switch cannot be - written (Tom Lane, Daniel Vérité) - </para> - - <para> - Previously, it effectively ignored the switch in such cases. - </para> - </listitem> - - <listitem> -<!-- -2014-07-12 [bd40951] Andres..: Minimal psql tab completion support for SET se.. ---> - <para> - Add <application>psql</application> tab completion when setting the - <xref linkend="guc-search-path"/> variable (Jeff Janes) - </para> - - <para> - Currently only the first schema can be tab-completed. - </para> - </listitem> - - <listitem> -<!-- -2014-06-23 [631e7f6] Heikki..: Improve tab-completion of DROP and ALTER ENABLE.. ---> - <para> - Improve <application>psql</application>'s tab completion for triggers and rules - (Andreas Karlsson) - </para> - </listitem> - - </itemizedlist> - - <sect5> - <title><link linkend="app-psql-meta-commands">Backslash Commands</link></title> - - <itemizedlist> - - <listitem> -<!-- -2014-09-10 [07c8651] Andres..: Add new psql help topics, accessible to both.. ---> - <para> - Add <application>psql</application> <command>\?</command> help sections - <literal>variables</literal> and <literal>options</literal> (Pavel Stehule) - </para> - - <para> - <literal>\? variables</literal> shows <application>psql</application>'s special - variables and <literal>\? options</literal> shows the command-line options. - <command>\? commands</command> shows the meta-commands, which is the - traditional output and remains the default. These help displays - can also be obtained with the command-line - option <literal>--help=<replaceable>section</replaceable></literal>. - </para> - </listitem> - - <listitem> -<!-- -2014-07-14 [ee80f04] Alvaro..: psql: Show tablespace size in \db+ ---> - <para> - Show tablespace size in <application>psql</application>'s <literal>\db+</literal> - (Fabrízio de Royes Mello) - </para> - </listitem> - - <listitem> -<!-- -2015-04-09 [a6f3c1f] Magnus..: Show owner of types in psql \dT+ ---> - <para> - Show data type owners in <application>psql</application>'s <literal>\dT+</literal> - (Magnus Hagander) - </para> - </listitem> - - <listitem> -<!-- -2014-09-04 [f6f654f] Fujii ..: Allow \watch to display query execution time if.. ---> - <para> - Allow <application>psql</application>'s <command>\watch</command> to output - <command>\timing</command> information (Fujii Masao) - </para> - - <para> - Also prevent <option>--echo-hidden</option> from echoing - <command>\watch</command> queries, since that is generally unwanted. - </para> - </listitem> - - <listitem> -<!-- -2014-11-22 [eca2b9b] Andrew..: Rework echo_hidden for \sf and \ef from commit .. ---> - <para> - Make <application>psql</application>'s <literal>\sf</literal> and <literal>\ef</literal> - commands honor <envar>ECHO_HIDDEN</envar> (Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -2014-08-12 [e15c4ab] Fujii ..: Add tab-completion for \unset and valid setting.. ---> - <para> - Improve <application>psql</application> tab completion for <command>\set</command>, - <command>\unset</command>, and <literal>:variable</literal> names (Pavel - Stehule) - </para> - </listitem> - - <listitem> -<!-- -2014-11-10 [095d401] Robert..: Tab complete second argument to \c with role n.. ---> - <para> - Allow tab completion of role names - in <application>psql</application> <literal>\c</literal> commands (Ian Barwick) - </para> - </listitem> - - </itemizedlist> - - </sect5> - - </sect4> - - <sect4> - <title><xref linkend="app-pgdump"/></title> - - <itemizedlist> - - <listitem> -<!-- -2014-11-17 [be1cc8f] Simon ..: Add pg_dump ––snapshot option ---> - <para> - Allow <application>pg_dump</application> to share a snapshot taken by another - session using <option>--snapshot</option> (Simon Riggs, Michael Paquier) - </para> - - <para> - The remote snapshot must have been exported by - <function>pg_export_snapshot()</function> or logical replication slot - creation. This can be used to share a consistent snapshot - across multiple <application>pg_dump</application> processes. - </para> - </listitem> - - <listitem> -<!-- -2015-11-21 [5f5e68b] Tom Lane: Adopt the GNU convention for handling tar-arch.. ---> - <para> - Support table sizes exceeding 8GB in tar archive format (Tom Lane) - </para> - - <para> - The POSIX standard for tar format does not allow elements of a tar - archive to exceed 8GB, but most modern implementations of tar - support an extension that does allow it. Use the extension format - when necessary, rather than failing. - </para> - </listitem> - - <listitem> -<!-- -2014-07-07 [7700597] Tom Lane: In pg_dump, show server and pg_dump versions w.. ---> - <para> - Make <application>pg_dump</application> always print the server and - <application>pg_dump</application> versions (Jing Wang) - </para> - - <para> - Previously, version information was only printed in - <option>--verbose</option> mode. - </para> - </listitem> - - <listitem> -<!-- -2015-06-04 [232cd63] Fujii ..: Remove -i/-ignore-version option from pg_dump.. ---> - <para> - Remove the long-ignored <option>-i</option>/<option>--ignore-version</option> - option from <application>pg_dump</application>, <application>pg_dumpall</application>, - and <application>pg_restore</application> (Fujii Masao) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><xref linkend="app-pg-ctl"/></title> - - <itemizedlist> - - <listitem> -<!-- -2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O opti.. ---> - <para> - Support multiple <application>pg_ctl</application> <option>-o</option> options, - concatenating their values (Bruce Momjian) - </para> - </listitem> - - <listitem> -<!-- -2014-07-17 [c0e4520] Magnus..: Add option to pg_ctl to choose event source for.. ---> - <para> - Allow control of <application>pg_ctl</application>'s event source logging - on <systemitem class="osname">MS Windows</systemitem> (MauMau) - </para> - - <para> - This only controls <application>pg_ctl</application>, not the server, which - has separate settings in <filename>postgresql.conf</filename>. - </para> - </listitem> - - <listitem> -<!-- -2015-11-08 [bdb42ba] Noah M..: Don't connect() to a wildcard address in test_.. ---> - <para> - If the server's listen address is set to a wildcard value - (<literal>0.0.0.0</literal> in IPv4 or <literal>::</literal> in IPv6), connect via - the loopback address rather than trying to use the wildcard address - literally (Kondo Yuta) - </para> - - <para> - This fix primarily affects Windows, since on other platforms - <application>pg_ctl</application> will prefer to use a Unix-domain socket. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><xref linkend="pgupgrade"/></title> - - <itemizedlist> - - <listitem> -<!-- -2015-04-14 [9fa8b0e] Peter ..: Move pg_upgrade from contrib/ to src/bin/ ---> - <para> - Move <application>pg_upgrade</application> from <filename>contrib</filename> to - <filename>src/bin</filename> (Peter Eisentraut) - </para> - - <para> - In connection with this change, the functionality previously - provided by the <application>pg_upgrade_support</application> module has been - moved into the core server. - </para> - </listitem> - - <listitem> -<!-- -2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O optio.. ---> - <para> - Support multiple <application>pg_upgrade</application> - <option>-o</option>/<option>-O</option> options, - concatenating their values (Bruce Momjian) - </para> - </listitem> - - <listitem> -<!-- -2014-10-10 [33755e8] Heikki..: Change the way encoding and locale checks are d.. ---> - <para> - Improve database collation comparisons in - <application>pg_upgrade</application> (Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -2014-08-25 [2209b39] Bruce ..: pg_upgrade: remove support for 8.3 old clusters ---> - <para> - Remove support for upgrading from 8.3 clusters (Bruce Momjian) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><xref linkend="pgbench"/></title> - - <itemizedlist> - - <listitem> -<!-- -2015-04-13 [81134af] Peter ..: Move pgbench from contrib/ to src/bin/ ---> - <para> - Move pgbench from <filename>contrib</filename> to <filename>src/bin</filename> - (Peter Eisentraut) - </para> - </listitem> - - <listitem> -<!-- -2015-09-30 [3c4c5ac] Tatsuo..: Fix incorrect tps number calculation in "exclu.. ---> - <para> - Fix calculation of TPS number <quote>excluding connections - establishing</quote> (Tatsuo Ishii, Fabien Coelho) - </para> - - <para> - The overhead for connection establishment was miscalculated whenever - the number of pgbench threads was less than the number of client - connections. Although this is clearly a bug, we won't back-patch it - into pre-9.5 branches since it makes TPS numbers not comparable to - previous results. - </para> - </listitem> - - <listitem> -<!-- -2014-10-13 [98aed6c] Heikki..: Add ––latency-limit option to pgbench. ---> - <para> - Allow counting of pgbench transactions that take over a specified - amount of time (Fabien Coelho) - </para> - - <para> - This is controlled by a new <option>--latency-limit</option> option. - </para> - </listitem> - - <listitem> -<!-- -2014-07-30 [ed802e7] Robert..: pgbench: Allow \setrandom to generate Gaussian.. ---> - <para> - Allow pgbench to generate Gaussian/exponential distributions - using <command>\setrandom</command> (Kondo Mitsumasa, Fabien Coelho) - </para> - </listitem> - - <listitem> -<!-- -2015-03-02 [878fdcb] Robert..: pgbench: Add a real expression syntax to \set ---> - <para> - Allow <application>pgbench</application>'s <command>\set</command> command to handle - arithmetic expressions containing more than one operator, and add - <literal>%</literal> (modulo) to the set of operators it supports - (Robert Haas, Fabien Coelho) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Source Code</title> - - <itemizedlist> - - <listitem> -<!-- -2014-11-20 [2c03216] Heikki..: Revamp the WAL record format. ---> - <para> - Simplify <link linkend="wal"><acronym>WAL</acronym></link> record format - (Heikki Linnakangas) - </para> - - <para> - This allows external tools to more easily track what blocks - are modified. - </para> - </listitem> - - <listitem> -<!-- -2015-03-15 [4f1b890] Andres..: Merge the various forms of transaction commit &.. ---> - <para> - Improve the representation of transaction commit and abort WAL - records (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -2014-09-25 [b64d92f] Andres..: Add a basic atomic ops API abstracting away pla.. ---> - <para> - Add atomic memory operations <acronym>API</acronym> (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -2014-11-07 [0b03e59] Robert..: Introduce custom path and scan providers. -2014-11-20 [a34fa8e] Tom Lane: Initial code review for CustomScan patch. -2014-11-21 [c2ea228] Tom Lane: Simplify API for initially hooking custom-path .. -2014-11-21 [4477704] Tom Lane: Rearrange CustomScan API. ---> - <para> - Allow custom path and scan methods (KaiGai Kohei, Tom Lane) - </para> - - <para> - This allows extensions greater control over the optimizer and - executor. - </para> - </listitem> - - <listitem> -<!-- -2015-05-12 [afb9249] Tom Lane: Add support for doing late row locking in FDWs. ---> - <para> - Allow foreign data wrappers to do post-filter locking (Etsuro - Fujita) - </para> - </listitem> - - <listitem> -<!-- -2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI.. -2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p.. ---> - <para> - Foreign tables can now take part in <command>INSERT ... ON CONFLICT - DO NOTHING</command> queries (Peter Geoghegan, Heikki Linnakangas, - Andres Freund) - </para> - - <para> - Foreign data wrappers must be modified to handle this. - <command>INSERT ... ON CONFLICT DO UPDATE</command> is not supported on - foreign tables. - </para> - </listitem> - - <listitem> -<!-- -2014-12-18 [4a14f13] Tom Lane: Improve hash_create's API for selecting simple-.. ---> - <para> - Improve <function>hash_create()</function>'s API for selecting - simple-binary-key hash functions (Teodor Sigaev, Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -2015-04-30 [924bcf4] Robert..: Create an infrastructure for parallel computati.. -2014-10-31 [2bd9e41] Robert..: Support frontend-backend protocol communication.. ---> - <para> - Improve parallel execution infrastructure (Robert Haas, Amit - Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke) - </para> - </listitem> - - <listitem> -<!-- -2014-06-28 [a6d488c] Andres..: Remove Alpha and Tru64 support. ---> - <para> - Remove <productname>Alpha</productname> (<acronym>CPU</acronym>) and <systemitem - class="osname">Tru64</systemitem> (OS) ports (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -2014-07-06 [4893ccd] Robert..: Remove swpb-based spinlock implementation for A.. ---> - <para> - Remove swap-byte-based spinlock implementation for - <acronym>ARM</acronym>v5 and earlier <acronym>CPU</acronym>s (Robert Haas) - </para> - - <para> - <acronym>ARM</acronym>v5's weak memory ordering made this locking - implementation unsafe. Spinlock support is still possible on - newer gcc implementations with atomics support. - </para> - </listitem> - - <listitem> -<!-- -2015-02-24 [23a7835] Peter ..: Error when creating names too long for tar for.. ---> - <para> - Generate an error when excessively long (100+ character) file - paths are written to tar files (Peter Eisentraut) - </para> - - <para> - Tar does not support such overly-long paths. - </para> - </listitem> - - <listitem> -<!-- -2015-05-19 [0b28ea7] Tom Lane: Avoid collation dependence in indexes of syste.. ---> - <para> - Change index operator class for columns <link - linkend="catalog-pg-seclabel"><structname>pg_seclabel</structname></link>.<structname>provider</structname> - and <link - linkend="catalog-pg-shseclabel"><structname>pg_shseclabel</structname></link>.<structname>provider</structname> - to be <literal>text_pattern_ops</literal> (Tom Lane) - </para> - - <para> - This avoids possible problems with these indexes when different - databases of a cluster have different default collations. - </para> - </listitem> - - <listitem> -<!-- -2014-09-09 [0709b7e] Robert..: Change the spinlock primitives to function as c.. ---> - <para> - Change the spinlock primitives to function as compiler barriers - (Robert Haas) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title>MS Windows</title> - - <itemizedlist> - - <listitem> -<!-- -2014-12-08 [519b075] Simon ..: Use GetSystemTimeAsFileTime directly in win32 -2014-12-08 [8001fe6] Simon ..: Windows: use GetSystemTimePreciseAsFileTime if .. ---> - <para> - Allow higher-precision time stamp resolution on <systemitem - class="osname">Windows 8</systemitem>, <systemitem class="osname">Windows - Server 2012</systemitem>, and later Windows systems (Craig Ringer) - </para> - </listitem> - - <listitem> -<!-- -2015-03-18 [f9dead5] Alvaro..: Install shared libraries to bin/ in Windows un.. ---> - <para> - Install shared libraries to <filename>bin</filename> in <systemitem - class="osname">MS Windows</systemitem> (Peter Eisentraut, Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2015-04-16 [22d0053] Alvaro..: MSVC: install src/test/modules together with c.. ---> - <para> - Install <filename>src/test/modules</filename> together with - <filename>contrib</filename> on <productname>MSVC</productname> builds (Michael - Paquier) - </para> - </listitem> - - <listitem> -<!-- -2014-07-12 [8d9a0e8] Magnus..: Support ––with-extra-version equivalent functi.. ---> - <para> - Allow <link linkend="install-procedure">configure</link>'s - <option>--with-extra-version</option> option to be honored by the - <productname>MSVC</productname> build (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2014-07-14 [91f03ba] Noah M..: MSVC: Recognize PGFILEDESC in contrib and conv.. ---> - <para> - Pass <envar>PGFILEDESC</envar> into <productname>MSVC</productname> contrib builds - (Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2014-07-14 [c4a448e] Noah M..: MSVC: Apply icons to all binaries having them .. ---> - <para> - Add icons to all <productname>MSVC</productname>-built binaries and version - information to all <systemitem class="osname">MS Windows</systemitem> - binaries (Noah Misch) - </para> - - <para> - MinGW already had such icons. - </para> - </listitem> - - <listitem> -<!-- -2014-09-10 [311da16] Andres..: Add support for optional_argument to our own ge.. ---> - <para> - Add optional-argument support to the internal - <function>getopt_long()</function> implementation (Michael Paquier, - Andres Freund) - </para> - - <para> - This is used by the <productname>MSVC</productname> build. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Additional Modules</title> - - <itemizedlist> - - <listitem> -<!-- -2015-03-27 [717f709] Andrew..: Add stats for min, max, mean, stddev times to p.. ---> - <para> - Add statistics for minimum, maximum, - mean, and standard deviation times to <link - linkend="pgstatstatements-columns"><application>pg_stat_statements</application></link> - (Mitsumasa Kondo, Andrew Dunstan) - </para> - </listitem> - - <listitem> -<!-- -2014-10-01 [32984d8] Heikki..: Add functions for dealing with PGP armor heade.. ---> - <para> - Add <link linkend="pgcrypto"><application>pgcrypto</application></link> function - <function>pgp_armor_headers()</function> to extract <productname>PGP</productname> - armor headers (Marko Tiikkaja, Heikki Linnakangas) - </para> - </listitem> - - <listitem> -<!-- -2014-06-30 [97c40ce] Tom Lane: Allow empty replacement strings in contrib/unac.. ---> - <para> - Allow empty replacement strings in <link - linkend="unaccent"><application>unaccent</application></link> (Mohammad Alhashash) - </para> - - <para> - This is useful in languages where diacritic signs are represented - as separate characters. - </para> - </listitem> - - <listitem> -<!-- -2014-06-30 [1b24887] Tom Lane: Allow multi-character source strings in contrib.. ---> - <para> - Allow multicharacter source strings in <link - linkend="unaccent"><application>unaccent</application></link> (Tom Lane) - </para> - - <para> - This could be useful in languages where diacritic signs are - represented as separate characters. It also allows more complex - unaccent dictionaries. - </para> - </listitem> - - <listitem> -<!-- -2015-05-15 [9689290] Simon ..: TABLESAMPLE system_rows(limit) -2015-05-15 [149f6f1] Simon ..: TABLESAMPLE system_time(limit) ---> - <para> - Add <filename>contrib</filename> modules <link - linkend="tsm-system-rows"><application>tsm_system_rows</application></link> and - <link linkend="tsm-system-time"><application>tsm_system_time</application></link> - to allow additional table sampling methods (Petr Jelínek) - </para> - </listitem> - - <listitem> -<!-- -2014-11-21 [3a82bc6] Heikki..: Add pageinspect functions for inspecting GIN in.. ---> - <para> - Add <link linkend="gin"><acronym>GIN</acronym></link> - index inspection functions to <link - linkend="pageinspect"><application>pageinspect</application></link> (Heikki - Linnakangas, Peter Geoghegan, Michael Paquier) - </para> - </listitem> - - <listitem> -<!-- -2014-08-22 [f577919] Andres..: Add pinning_backends column to the pg_buffercac.. ---> - <para> - Add information about buffer pins to <link - linkend="pgbuffercache"><application>pg_buffercache</application></link> display - (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -2015-05-13 [5850b20] Andres..: Add pgstattuple_approx() to the pgstattuple ext.. ---> - <para> - Allow <link linkend="pgstattuple"><application>pgstattuple</application></link> - to report approximate answers with less overhead using - <function>pgstattuple_approx()</function> (Abhijit Menon-Sen) - </para> - </listitem> - - <listitem> -<!-- -2014-11-29 [22dfd11] Alvaro..: Move test modules from contrib to src/test/modu.. -2014-12-01 [df761e3] Alvaro..: Move security_label test ---> - <para> - Move <application>dummy_seclabel</application>, <application>test_shm_mq</application>, - <application>test_parser</application>, and <application>worker_spi</application> - from <filename>contrib</filename> to <filename>src/test/modules</filename> - (Álvaro Herrera) - </para> - - <para> - These modules are only meant for server testing, so they do not need - to be built or installed when packaging <productname>PostgreSQL</productname>. - </para> - </listitem> - - </itemizedlist> - - </sect3> - - </sect2> - - </sect1> |