diff options
Diffstat (limited to 'doc/src/sgml/release-9.4.sgml')
-rw-r--r-- | doc/src/sgml/release-9.4.sgml | 13157 |
1 files changed, 0 insertions, 13157 deletions
diff --git a/doc/src/sgml/release-9.4.sgml b/doc/src/sgml/release-9.4.sgml deleted file mode 100644 index 42feaa65ccc..00000000000 --- a/doc/src/sgml/release-9.4.sgml +++ /dev/null @@ -1,13157 +0,0 @@ -<!-- doc/src/sgml/release-9.4.sgml --> -<!-- See header comment in release.sgml about typical markup --> - - <sect1 id="release-9-4-20"> - <title>Release 9.4.20</title> - - <formalpara> - <title>Release date:</title> - <para>2018-11-08</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.19. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.20</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.18, - see <xref linkend="release-9-4-18">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix corner-case failures - in <function>has_<replaceable>foo</replaceable>_privilege()</function> - family of functions (Tom Lane) - </para> - - <para> - Return NULL rather than throwing an error when an invalid object OID - is provided. Some of these functions got that right already, but not - all. <function>has_column_privilege()</function> was additionally - capable of crashing on some platforms. - </para> - </listitem> - - <listitem> - <para> - Avoid O(N^2) slowdown in regular expression match/split functions on - long strings (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Avoid O(N^3) slowdown in lexer for long strings - of <literal>+</literal> or <literal>-</literal> characters - (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix mis-execution of SubPlans when the outer query is being scanned - backwards (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command> - after rewinding the referenced cursor (Tom Lane) - </para> - - <para> - A cursor that scans multiple relations (particularly an inheritance - tree) could produce wrong behavior if rewound to an earlier relation. - </para> - </listitem> - - <listitem> - <para> - Fix <function>EvalPlanQual</function> to handle conditionally-executed - InitPlans properly (Andrew Gierth, Tom Lane) - </para> - - <para> - This resulted in hard-to-reproduce crashes or wrong answers in - concurrent updates, if they contained code such as an uncorrelated - sub-<literal>SELECT</literal> inside a <literal>CASE</literal> - construct. - </para> - </listitem> - - <listitem> - <para> - Fix character-class checks to not fail on Windows for Unicode - characters above U+FFFF (Tom Lane, Kenji Uno) - </para> - - <para> - This bug affected full-text-search operations, as well - as <filename>contrib/ltree</filename> - and <filename>contrib/pg_trgm</filename>. - </para> - </listitem> - - <listitem> - <para> - Ensure that sequences owned by a foreign table are processed - by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut) - </para> - - <para> - The ownership change should propagate to such sequences as well, but - this was missed for foreign tables. - </para> - </listitem> - - <listitem> - <para> - Fix over-allocation of space for <function>array_out()</function>'s - result string (Keiichi Hirobe) - </para> - </listitem> - - <listitem> - <para> - Fix memory leak in repeated SP-GiST index scans (Tom Lane) - </para> - - <para> - This is only known to amount to anything significant in cases where - an exclusion constraint using SP-GiST receives many new index entries - in a single command. - </para> - </listitem> - - <listitem> - <para> - Ensure that <function>ApplyLogicalMappingFile()</function> closes the - mapping file when done with it (Tomas Vondra) - </para> - - <para> - Previously, the file descriptor was leaked, eventually resulting in - failures during logical decoding. - </para> - </listitem> - - <listitem> - <para> - Fix logical decoding to handle cases where a mapped catalog table is - repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal> - (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Prevent starting the server with <varname>wal_level</varname> set - to too low a value to support an existing replication slot (Andres - Freund) - </para> - </listitem> - - <listitem> - <para> - Avoid crash if a utility command causes infinite recursion (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - When initializing a hot standby, cope with duplicate XIDs caused by - two-phase transactions on the master - (Michael Paquier, Konstantin Knizhnik) - </para> - </listitem> - - <listitem> - <para> - Randomize the <function>random()</function> seed in bootstrap and - standalone backends, and in <application>initdb</application> - (Noah Misch) - </para> - - <para> - The main practical effect of this change is that it avoids a scenario - where <application>initdb</application> might mistakenly conclude that - POSIX shared memory is not available, due to name collisions caused by - always using the same random seed. - </para> - </listitem> - - <listitem> - <para> - Allow DSM allocation to be interrupted (Chris Travers) - </para> - </listitem> - - <listitem> - <para> - Avoid possible buffer overrun when replaying GIN page recompression - from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian) - </para> - </listitem> - - <listitem> - <para> - Fix missed fsync of a replication slot's directory (Konstantin - Knizhnik, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix unexpected timeouts when - using <varname>wal_sender_timeout</varname> on a slow server - (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - Ensure that hot standby processes use the correct WAL consistency - point (Alexander Kukushkin, Michael Paquier) - </para> - - <para> - This prevents possible misbehavior just after a standby server has - reached a consistent database state during WAL replay. - </para> - </listitem> - - <listitem> - <para> - Don't run atexit callbacks when servicing <literal>SIGQUIT</literal> - (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Don't record foreign-server user mappings as members of extensions - (Tom Lane) - </para> - - <para> - If <command>CREATE USER MAPPING</command> is executed in an extension - script, an extension dependency was created for the user mapping, - which is unexpected. Roles can't be extension members, so user - mappings shouldn't be either. - </para> - </listitem> - - <listitem> - <para> - Make syslogger more robust against failures in opening CSV log files - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix possible inconsistency in <application>pg_dump</application>'s - sorting of dissimilar object names (Jacob Champion) - </para> - </listitem> - - <listitem> - <para> - Ensure that <application>pg_restore</application> will schema-qualify - the table name when - emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal> - commands (Tom Lane) - </para> - - <para> - This avoids failures due to the new policy of running restores with - restrictive search path. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</application> to handle event triggers in - extensions correctly (Haribabu Kommi) - </para> - - <para> - <application>pg_upgrade</application> failed to preserve an event - trigger's extension-membership status. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</application>'s cluster state check to - work correctly on a standby server (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Enforce type <type>cube</type>'s dimension limit in - all <filename>contrib/cube</filename> functions (Andrey Borodin) - </para> - - <para> - Previously, some cube-related functions could construct values that - would be rejected by <function>cube_in()</function>, leading to - dump/reload failures. - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/unaccent</filename>'s - <function>unaccent()</function> function to use - the <literal>unaccent</literal> text search dictionary that is in the - same schema as the function (Tom Lane) - </para> - - <para> - Previously it tried to look up the dictionary using the search path, - which could fail if the search path has a restrictive value. - </para> - </listitem> - - <listitem> - <para> - Fix build problems on macOS 10.14 (Mojave) (Tom Lane) - </para> - - <para> - Adjust <application>configure</application> to add - an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>; - without this, PL/Perl and PL/Tcl fail to configure or build on macOS - 10.14. The specific sysroot used can be overridden at configure time - or build time by setting the <varname>PG_SYSROOT</varname> variable in - the arguments of <application>configure</application> - or <application>make</application>. - </para> - - <para> - It is now recommended that Perl-related extensions - write <literal>$(perl_includespec)</literal> rather - than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler - flags. The latter continues to work on most platforms, but not recent - macOS. - </para> - - <para> - Also, it should no longer be necessary to - specify <option>--with-tclconfig</option> manually to get PL/Tcl to - build on recent macOS releases. - </para> - </listitem> - - <listitem> - <para> - Fix MSVC build and regression-test scripts to work on recent Perl - versions (Andrew Dunstan) - </para> - - <para> - Perl no longer includes the current directory in its search path - by default; work around that. - </para> - </listitem> - - <listitem> - <para> - Support building on Windows with Visual Studio 2015 or Visual Studio 2017 - (Michael Paquier, Haribabu Kommi) - </para> - </listitem> - - <listitem> - <para> - Allow btree comparison functions to return <literal>INT_MIN</literal> - (Tom Lane) - </para> - - <para> - Up to now, we've forbidden datatype-specific comparison functions from - returning <literal>INT_MIN</literal>, which allows callers to invert - the sort order just by negating the comparison result. However, this - was never safe for comparison functions that directly return the - result of <function>memcmp()</function>, <function>strcmp()</function>, - etc, as POSIX doesn't place any such restriction on those functions. - At least some recent versions of <function>memcmp()</function> can - return <literal>INT_MIN</literal>, causing incorrect sort ordering. - Hence, we've removed this restriction. Callers must now use - the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to - invert the sort order. - </para> - </listitem> - - <listitem> - <para> - Fix recursion hazard in shared-invalidation message processing - (Tom Lane) - </para> - - <para> - This error could, for example, result in failure to access a system - catalog or index that had just been processed by <command>VACUUM - FULL</command>. - </para> - - <para> - This change adds a new result code - for <function>LockAcquire</function>, which might possibly affect - external callers of that function, though only very unusual usage - patterns would have an issue with it. The API - of <function>LockAcquireExtended</function> is also changed. - </para> - </listitem> - - <listitem> - <para> - Save and restore SPI's global variables - during <function>SPI_connect()</function> - and <function>SPI_finish()</function> (Chapman Flack, Tom Lane) - </para> - - <para> - This prevents possible interference when one SPI-using function calls - another. - </para> - </listitem> - - <listitem> - <para> - Provide <literal>ALLOCSET_DEFAULT_SIZES</literal> and sibling macros - in back branches (Tom Lane) - </para> - - <para> - These macros have existed since 9.6, but there were requests to add - them to older branches to allow extensions to rely on them without - branch-specific coding. - </para> - </listitem> - - <listitem> - <para> - Avoid using potentially-under-aligned page buffers (Tom Lane) - </para> - - <para> - Invent new union types <type>PGAlignedBlock</type> - and <type>PGAlignedXLogBlock</type>, and use these in place of plain - char arrays, ensuring that the compiler can't place the buffer at a - misaligned start address. This fixes potential core dumps on - alignment-picky platforms, and may improve performance even on - platforms that allow misalignment. - </para> - </listitem> - - <listitem> - <para> - Make <filename>src/port/snprintf.c</filename> follow the C99 - standard's definition of <function>snprintf()</function>'s result - value (Tom Lane) - </para> - - <para> - On platforms where this code is used (mostly Windows), its pre-C99 - behavior could lead to failure to detect buffer overrun, if the - calling code assumed C99 semantics. - </para> - </listitem> - - <listitem> - <para> - When building on i386 with the <application>clang</application> - compiler, require <option>-msse2</option> to be used (Andres Freund) - </para> - - <para> - This avoids problems with missed floating point overflow checks. - </para> - </listitem> - - <listitem> - <para> - Fix <application>configure</application>'s detection of the result - type of <function>strerror_r()</function> (Tom Lane) - </para> - - <para> - The previous coding got the wrong answer when building - with <application>icc</application> on Linux (and perhaps in other - cases), leading to <application>libpq</application> not returning - useful error messages for system-reported errors. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia - (Volgograd), plus historical corrections for China, Hawaii, Japan, - Macau, and North Korea. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-19"> - <title>Release 9.4.19</title> - - <formalpara> - <title>Release date:</title> - <para>2018-08-09</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.18. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.19</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.18, - see <xref linkend="release-9-4-18">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix failure to reset <application>libpq</application>'s state fully - between connection attempts (Tom Lane) - </para> - - <para> - An unprivileged user of <filename>dblink</filename> - or <filename>postgres_fdw</filename> could bypass the checks intended - to prevent use of server-side credentials, such as - a <filename>~/.pgpass</filename> file owned by the operating-system - user running the server. Servers allowing peer authentication on - local connections are particularly vulnerable. Other attacks such - as SQL injection into a <filename>postgres_fdw</filename> session - are also possible. - Attacking <filename>postgres_fdw</filename> in this way requires the - ability to create a foreign server object with selected connection - parameters, but any user with access to <filename>dblink</filename> - could exploit the problem. - In general, an attacker with the ability to select the connection - parameters for a <application>libpq</application>-using application - could cause mischief, though other plausible attack scenarios are - harder to think of. - Our thanks to Andrew Krasichkov for reporting this issue. - (CVE-2018-10915) - </para> - </listitem> - - <listitem> - <para> - Ensure that updates to the <structfield>relfrozenxid</structfield> - and <structfield>relminmxid</structfield> values - for <quote>nailed</quote> system catalogs are processed in a timely - fashion (Andres Freund) - </para> - - <para> - Overoptimistic caching rules could prevent these updates from being - seen by other sessions, leading to spurious errors and/or data - corruption. The problem was significantly worse for shared catalogs, - such as <structname>pg_authid</structname>, because the stale cache - data could persist into new sessions as well as existing ones. - </para> - </listitem> - - <listitem> - <para> - Fix case where a freshly-promoted standby crashes before having - completed its first post-recovery checkpoint (Michael Paquier, Kyotaro - Horiguchi, Pavan Deolasee, Álvaro Herrera) - </para> - - <para> - This led to a situation where the server did not think it had reached - a consistent database state during subsequent WAL replay, preventing - restart. - </para> - </listitem> - - <listitem> - <para> - Avoid emitting a bogus WAL record when recycling an all-zero btree - page (Amit Kapila) - </para> - - <para> - This mistake has been seen to cause assertion failures, and - potentially it could result in unnecessary query cancellations on hot - standby servers. - </para> - </listitem> - - <listitem> - <para> - Improve performance of WAL replay for transactions that drop many - relations (Fujii Masao) - </para> - - <para> - This change reduces the number of times that shared buffers are - scanned, so that it is of most benefit when that setting is large. - </para> - </listitem> - - <listitem> - <para> - Improve performance of lock releasing in standby server WAL replay - (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Make logical WAL senders report streaming state correctly (Simon - Riggs, Sawada Masahiko) - </para> - - <para> - The code previously mis-detected whether or not it had caught up with - the upstream server. - </para> - </listitem> - - <listitem> - <para> - Fix bugs in snapshot handling during logical decoding, allowing wrong - decoding results in rare cases (Arseny Sher, Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Ensure a table's cached index list is correctly rebuilt after an index - creation fails partway through (Peter Geoghegan) - </para> - - <para> - Previously, the failed index's OID could remain in the list, causing - problems later in the same session. - </para> - </listitem> - - <listitem> - <para> - Fix mishandling of empty uncompressed posting list pages in GIN - indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov) - </para> - - <para> - This could result in an assertion failure after pg_upgrade of a - pre-9.4 GIN index (9.4 and later will not create such pages). - </para> - </listitem> - - <listitem> - <para> - Ensure that <command>VACUUM</command> will respond to signals - within btree page deletion loops (Andres Freund) - </para> - - <para> - Corrupted btree indexes could result in an infinite loop here, and - that previously wasn't interruptible without forcing a crash. - </para> - </listitem> - - <listitem> - <para> - Fix misoptimization of equivalence classes involving composite-type - columns (Tom Lane) - </para> - - <para> - This resulted in failure to recognize that an index on a composite - column could provide the sort order needed for a mergejoin on that - column. - </para> - </listitem> - - <listitem> - <para> - Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow - parameters (<literal>$<replaceable>n</replaceable></literal>), as the - standard expects (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix failure to schema-qualify some object names - in <function>getObjectDescription</function> output - (Kyotaro Horiguchi, Tom Lane) - </para> - - <para> - Names of collations, conversions, and text search objects - were not schema-qualified when they should be. - </para> - </listitem> - - <listitem> - <para> - Widen <command>COPY FROM</command>'s current-line-number counter - from 32 to 64 bits (David Rowley) - </para> - - <para> - This avoids two problems with input exceeding 4G lines: <literal>COPY - FROM WITH HEADER</literal> would drop a line every 4G lines, not only - the first line, and error reports could show a wrong line number. - </para> - </listitem> - - <listitem> - <para> - Add a string freeing function - to <application>ecpg</application>'s <filename>pgtypes</filename> - library, so that cross-module memory management problems can be - avoided on Windows (Takayuki Tsunakawa) - </para> - - <para> - On Windows, crashes can ensue if the <function>free</function> call - for a given chunk of memory is not made from the same DLL - that <function>malloc</function>'ed the memory. - The <filename>pgtypes</filename> library sometimes returns strings - that it expects the caller to free, making it impossible to follow - this rule. Add a <function>PGTYPESchar_free()</function> function - that just wraps <function>free</function>, allowing applications - to follow this rule. - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application>'s support for <type>long - long</type> variables on Windows, as well as other platforms that - declare <function>strtoll</function>/<function>strtoull</function> - nonstandardly or not at all (Dang Minh Huong, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix misidentification of SQL statement type in PL/pgSQL, when a rule - change causes a change in the semantics of a statement intra-session - (Tom Lane) - </para> - - <para> - This error led to assertion failures, or in rare cases, failure to - enforce the <literal>INTO STRICT</literal> option as expected. - </para> - </listitem> - - <listitem> - <para> - Fix password prompting in client programs so that echo is properly - disabled on Windows when <literal>stdin</literal> is not the - terminal (Matthew Stickney) - </para> - </listitem> - - <listitem> - <para> - Further fix mis-quoting of values for list-valued GUC variables in - dumps (Tom Lane) - </para> - - <para> - The previous fix for quoting of <varname>search_path</varname> and - other list-valued variables in <application>pg_dump</application> - output turned out to misbehave for empty-string list elements, and it - risked truncation of long file paths. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application>'s failure to - dump <literal>REPLICA IDENTITY</literal> properties for constraint - indexes (Tom Lane) - </para> - - <para> - Manually created unique indexes were properly marked, but not those - created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY - KEY</literal> constraints. - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_upgrade</application> check that the old server - was shut down cleanly (Bruce Momjian) - </para> - - <para> - The previous check could be fooled by an immediate-mode shutdown. - </para> - </listitem> - - <listitem> - <para> - Fix crash in <filename>contrib/ltree</filename>'s - <function>lca()</function> function when the input array is empty - (Pierre Ducroquet) - </para> - </listitem> - - <listitem> - <para> - Fix various error-handling code paths in which an incorrect error code - might be reported (Michael Paquier, Tom Lane, Magnus Hagander) - </para> - </listitem> - - <listitem> - <para> - Rearrange makefiles to ensure that programs link to freshly-built - libraries (such as <filename>libpq.so</filename>) rather than ones - that might exist in the system library directories (Tom Lane) - </para> - - <para> - This avoids problems when building on platforms that supply old copies - of <productname>PostgreSQL</productname> libraries. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018e for DST law changes in North Korea, plus historical - corrections for Czechoslovakia. - </para> - - <para> - This update includes a redefinition of <quote>daylight savings</quote> - in Ireland, as well as for some past years in Namibia and - Czechoslovakia. In those jurisdictions, legally standard time is - observed in summer, and daylight savings time in winter, so that the - daylight savings offset is one hour behind standard time not one hour - ahead. This does not affect either the actual UTC offset or the - timezone abbreviations in use; the only known effect is that - the <structfield>is_dst</structfield> column in - the <structname>pg_timezone_names</structname> view will now be true - in winter and false in summer in these cases. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-18"> - <title>Release 9.4.18</title> - - <formalpara> - <title>Release date:</title> - <para>2018-05-10</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.17. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.18</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if the function marking mistakes mentioned in the first - changelog entry below affect you, you will want to take steps to - correct your database catalogs. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.17, - see <xref linkend="release-9-4-17">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix incorrect volatility markings on a few built-in functions - (Thomas Munro, Tom Lane) - </para> - - <para> - The functions - <function>query_to_xml</function>, - <function>cursor_to_xml</function>, - <function>cursor_to_xmlschema</function>, - <function>query_to_xmlschema</function>, and - <function>query_to_xml_and_xmlschema</function> - should be marked volatile because they execute user-supplied queries - that might contain volatile operations. They were not, leading to a - risk of incorrect query optimization. This has been repaired for new - installations by correcting the initial catalog data, but existing - installations will continue to contain the incorrect markings. - Practical use of these functions seems to pose little hazard, but in - case of trouble, it can be fixed by manually updating these - functions' <structname>pg_proc</structname> entries, for example - <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, - boolean, text) VOLATILE</literal>. (Note that that will need to be - done in each database of the installation.) Another option is - to <application>pg_upgrade</application> the database to a version - containing the corrected initial data. - </para> - </listitem> - - <listitem> - <para> - Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed - TOAST entries (Pavan Deolasee) - </para> - - <para> - Once the OID counter has wrapped around, it's possible to assign a - TOAST value whose OID matches a previously deleted entry in the same - TOAST table. If that entry were not yet vacuumed away, this resulted - in <quote>unexpected chunk number 0 (expected 1) for toast - value <replaceable>nnnnn</replaceable></quote> errors, which would - persist until the dead entry was removed - by <command>VACUUM</command>. Fix by not selecting such OIDs when - creating a new TOAST entry. - </para> - </listitem> - - <listitem> - <para> - Change <command>ANALYZE</command>'s algorithm for updating - <structname>pg_class</structname>.<structfield>reltuples</structfield> - (David Gould) - </para> - - <para> - Previously, pages not actually scanned by <command>ANALYZE</command> - were assumed to retain their old tuple density. In a large table - where <command>ANALYZE</command> samples only a small fraction of the - pages, this meant that the overall tuple density estimate could not - change very much, so that <structfield>reltuples</structfield> would - change nearly proportionally to changes in the table's physical size - (<structfield>relpages</structfield>) regardless of what was actually - happening in the table. This has been observed to result - in <structfield>reltuples</structfield> becoming so much larger than - reality as to effectively shut off autovacuuming. To fix, assume - that <command>ANALYZE</command>'s sample is a statistically unbiased - sample of the table (as it should be), and just extrapolate the - density observed within those pages to the whole table. - </para> - </listitem> - - <listitem> - <para> - Avoid deadlocks in concurrent <command>CREATE INDEX - CONCURRENTLY</command> commands that are run - under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE - READ</literal> transaction isolation (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW - CONCURRENTLY</command> (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail - when the referenced cursor uses an index-only-scan plan (Yugo Nagata, - Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix incorrect planning of join clauses pushed into parameterized - paths (Andrew Gierth, Tom Lane) - </para> - - <para> - This error could result in misclassifying a condition as - a <quote>join filter</quote> for an outer join when it should be a - plain <quote>filter</quote> condition, leading to incorrect join - output. - </para> - </listitem> - - <listitem> - <para> - Fix misoptimization of <literal>CHECK</literal> constraints having - provably-NULL subclauses of - top-level <literal>AND</literal>/<literal>OR</literal> conditions - (Tom Lane, Dean Rasheed) - </para> - - <para> - This could, for example, allow constraint exclusion to exclude a - child table that should not be excluded from a query. - </para> - </listitem> - - <listitem> - <para> - Avoid failure if a query-cancel or session-termination interrupt - occurs while committing a prepared transaction (Stas Kelvich) - </para> - </listitem> - - <listitem> - <para> - Fix query-lifespan memory leakage in repeatedly executed hash joins - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix overly strict sanity check - in <function>heap_prepare_freeze_tuple</function> - (Álvaro Herrera) - </para> - - <para> - This could result in incorrect <quote>cannot freeze committed - xmax</quote> failures in databases that have - been <application>pg_upgrade</application>'d from 9.2 or earlier. - </para> - </listitem> - - <listitem> - <para> - Prevent dangling-pointer dereference when a C-coded before-update row - trigger returns the <quote>old</quote> tuple (Rushabh Lathia) - </para> - </listitem> - - <listitem> - <para> - Reduce locking during autovacuum worker scheduling (Jeff Janes) - </para> - - <para> - The previous behavior caused drastic loss of potential worker - concurrency in databases with many tables. - </para> - </listitem> - - <listitem> - <para> - Ensure client hostname is copied while copying - <structname>pg_stat_activity</structname> data to local memory - (Edmund Horner) - </para> - - <para> - Previously the supposedly-local snapshot contained a pointer into - shared memory, allowing the client hostname column to change - unexpectedly if any existing session disconnected. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect processing of multiple compound affixes - in <literal>ispell</literal> dictionaries (Arthur Zakirov) - </para> - </listitem> - - <listitem> - <para> - Fix collation-aware searches (that is, indexscans using inequality - operators) in SP-GiST indexes on text columns (Tom Lane) - </para> - - <para> - Such searches would return the wrong set of rows in most non-C - locales. - </para> - </listitem> - - <listitem> - <para> - Count the number of index tuples correctly during initial build of an - SP-GiST index (Tomas Vondra) - </para> - - <para> - Previously, the tuple count was reported to be the same as that of - the underlying table, which is wrong if the index is partial. - </para> - </listitem> - - <listitem> - <para> - Count the number of index tuples correctly during vacuuming of a - GiST index (Andrey Borodin) - </para> - - <para> - Previously it reported the estimated number of heap tuples, - which might be inaccurate, and is certainly wrong if the - index is partial. - </para> - </listitem> - - <listitem> - <para> - Fix a corner case where a streaming standby gets stuck at a WAL - continuation record (Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> - <para> - In logical decoding, avoid possible double processing of WAL data - when a walsender restarts (Craig Ringer) - </para> - </listitem> - - <listitem> - <para> - Allow <function>scalarltsel</function> - and <function>scalargtsel</function> to be used on non-core datatypes - (Tomas Vondra) - </para> - </listitem> - - <listitem> - <para> - Reduce <application>libpq</application>'s memory consumption when a - server error is reported after a large amount of query output has - been collected (Tom Lane) - </para> - - <para> - Discard the previous output before, not after, processing the error - message. On some platforms, notably Linux, this can make a - difference in the application's subsequent memory footprint. - </para> - </listitem> - - <listitem> - <para> - Fix double-free crashes in <application>ecpg</application> - (Patrick Krecker, Jeevan Ladhe) - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application> to handle <type>long long - int</type> variables correctly in MSVC builds (Michael Meskes, - Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Fix mis-quoting of values for list-valued GUC variables in dumps - (Michael Paquier, Tom Lane) - </para> - - <para> - The <varname>local_preload_libraries</varname>, - <varname>session_preload_libraries</varname>, - <varname>shared_preload_libraries</varname>, - and <varname>temp_tablespaces</varname> variables were not correctly - quoted in <application>pg_dump</application> output. This would - cause problems if settings for these variables appeared in - <command>CREATE FUNCTION ... SET</command> or <command>ALTER - DATABASE/ROLE ... SET</command> clauses. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_recvlogical</application> to not fail against - pre-v10 <productname>PostgreSQL</productname> servers - (Michael Paquier) - </para> - - <para> - A previous fix caused <application>pg_recvlogical</application> to - issue a command regardless of server version, but it should only be - issued to v10 and later servers. - </para> - </listitem> - - <listitem> - <para> - Fix overflow handling in <application>PL/pgSQL</application> - integer <command>FOR</command> loops (Tom Lane) - </para> - - <para> - The previous coding failed to detect overflow of the loop variable - on some non-gcc compilers, leading to an infinite loop. - </para> - </listitem> - - <listitem> - <para> - Adjust <application>PL/Python</application> regression tests to pass - under Python 3.7 (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Support testing <application>PL/Python</application> and related - modules when building with Python 3 and MSVC (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Rename internal <function>b64_encode</function> - and <function>b64_decode</function> functions to avoid conflict with - Solaris 11.4 built-in functions (Rainer Orth) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA tzcode release 2018e - (Tom Lane) - </para> - - <para> - This fixes the <application>zic</application> timezone data compiler - to cope with negative daylight-savings offsets. While - the <productname>PostgreSQL</productname> project will not - immediately ship such timezone data, <application>zic</application> - might be used with timezone data obtained directly from IANA, so it - seems prudent to update <application>zic</application> now. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018d for DST law changes in Palestine and Antarctica (Casey - Station), plus historical corrections for Portugal and its colonies, - as well as Enderbury, Jamaica, Turks & Caicos Islands, and - Uruguay. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-17"> - <title>Release 9.4.17</title> - - <formalpara> - <title>Release date:</title> - <para>2018-03-01</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.16. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.17</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you run an installation in which not all users are mutually - trusting, or if you maintain an application or extension that is - intended for use in arbitrary situations, it is strongly recommended - that you read the documentation changes described in the first changelog - entry below, and take suitable steps to ensure that your installation or - code is secure. - </para> - - <para> - Also, the changes described in the second changelog entry below may - cause functions used in index expressions or materialized views to fail - during auto-analyze, or when reloading from a dump. After upgrading, - monitor the server logs for such problems, and fix affected functions. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.13, - see <xref linkend="release-9-4-13">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Document how to configure installations and applications to guard - against search-path-dependent trojan-horse attacks from other users - (Noah Misch) - </para> - - <para> - Using a <varname>search_path</varname> setting that includes any - schemas writable by a hostile user enables that user to capture - control of queries and then run arbitrary SQL code with the - permissions of the attacked user. While it is possible to write - queries that are proof against such hijacking, it is notationally - tedious, and it's very easy to overlook holes. Therefore, we now - recommend configurations in which no untrusted schemas appear in - one's search path. Relevant documentation appears in - <xref linkend="ddl-schemas-patterns"> (for database administrators and users), - <xref linkend="libpq-connect"> (for application authors), - <xref linkend="extend-extensions-style"> (for extension authors), and - <xref linkend="sql-createfunction"> (for authors - of <literal>SECURITY DEFINER</literal> functions). - (CVE-2018-1058) - </para> - </listitem> - - <listitem> - <para> - Avoid use of insecure <varname>search_path</varname> settings - in <application>pg_dump</application> and other client programs - (Noah Misch, Tom Lane) - </para> - - <para> - <application>pg_dump</application>, - <application>pg_upgrade</application>, - <application>vacuumdb</application> and - other <productname>PostgreSQL</productname>-provided applications were - themselves vulnerable to the type of hijacking described in the previous - changelog entry; since these applications are commonly run by - superusers, they present particularly attractive targets. To make them - secure whether or not the installation as a whole has been secured, - modify them to include only the <structname>pg_catalog</structname> - schema in their <varname>search_path</varname> settings. - Autovacuum worker processes now do the same, as well. - </para> - - <para> - In cases where user-provided functions are indirectly executed by - these programs — 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-4-16"> - <title>Release 9.4.16</title> - - <formalpara> - <title>Release date:</title> - <para>2018-02-08</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.15. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.16</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.13, - see <xref linkend="release-9-4-13">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Ensure that all temporary files made - by <application>pg_upgrade</application> are non-world-readable - (Tom Lane, Noah Misch) - </para> - - <para> - <application>pg_upgrade</application> normally restricts its - temporary files to be readable and writable only by the calling user. - But the temporary file containing <literal>pg_dumpall -g</literal> - output would be group- or world-readable, or even writable, if the - user's <literal>umask</literal> setting allows. In typical usage on - multi-user machines, the <literal>umask</literal> and/or the working - directory's permissions would be tight enough to prevent problems; - but there may be people using <application>pg_upgrade</application> - in scenarios where this oversight would permit disclosure of database - passwords to unfriendly eyes. - (CVE-2018-1053) - </para> - </listitem> - - <listitem> - <para> - Fix vacuuming of tuples that were updated while key-share locked - (Andres Freund, Álvaro Herrera) - </para> - - <para> - In some cases <command>VACUUM</command> would fail to remove such - tuples even though they are now dead, leading to assorted data - corruption scenarios. - </para> - </listitem> - - <listitem> - <para> - Fix inadequate buffer locking in some LSN fetches (Jacob Champion, - Asim Praveen, Ashwin Agrawal) - </para> - - <para> - These errors could result in misbehavior under concurrent load. - The potential consequences have not been characterized fully. - </para> - </listitem> - - <listitem> - <para> - Avoid unnecessary failure in a query on an inheritance tree that - occurs concurrently with some child table being removed from the tree - by <command>ALTER TABLE NO INHERIT</command> (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix spurious deadlock failures when multiple sessions are - running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes) - </para> - </listitem> - - <listitem> - <para> - Repair failure with correlated sub-<literal>SELECT</literal> - inside <literal>VALUES</literal> inside a <literal>LATERAL</literal> - subquery (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <quote>could not devise a query plan for the given query</quote> - planner failure for some cases involving nested <literal>UNION - ALL</literal> inside a lateral subquery (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix logical decoding to correctly clean up disk files for crashed - transactions (Atsushi Torikoshi) - </para> - - <para> - Logical decoding may spill WAL records to disk for transactions - generating many WAL records. Normally these files are cleaned up - after the transaction's commit or abort record arrives; but if - no such record is ever seen, the removal code misbehaved. - </para> - </listitem> - - <listitem> - <para> - Fix walsender timeout failure and failure to respond to interrupts - when processing a large transaction (Petr Jelinek) - </para> - </listitem> - - <listitem> - <para> - Fix <function>has_sequence_privilege()</function> to - support <literal>WITH GRANT OPTION</literal> tests, - as other privilege-testing functions do (Joe Conway) - </para> - </listitem> - - <listitem> - <para> - In databases using UTF8 encoding, ignore any XML declaration that - asserts a different encoding (Pavel Stehule, Noah Misch) - </para> - - <para> - We always store XML strings in the database encoding, so allowing - libxml to act on a declaration of another encoding gave wrong results. - In encodings other than UTF8, we don't promise to support non-ASCII - XML data anyway, so retain the previous behavior for bug compatibility. - This change affects only <function>xpath()</function> and related - functions; other XML code paths already acted this way. - </para> - </listitem> - - <listitem> - <para> - Provide for forward compatibility with future minor protocol versions - (Robert Haas, Badrul Chowdhury) - </para> - - <para> - Up to now, <productname>PostgreSQL</productname> servers simply - rejected requests to use protocol versions newer than 3.0, so that - there was no functional difference between the major and minor parts - of the protocol version number. Allow clients to request versions 3.x - without failing, sending back a message showing that the server only - understands 3.0. This makes no difference at the moment, but - back-patching this change should allow speedier introduction of future - minor protocol upgrades. - </para> - </listitem> - - <listitem> - <para> - Cope with failure to start a parallel worker process - (Amit Kapila, Robert Haas) - </para> - - <para> - Parallel query previously tended to hang indefinitely if a worker - could not be started, as the result of <literal>fork()</literal> - failure or other low-probability problems. - </para> - </listitem> - - <listitem> - <para> - Prevent stack-overflow crashes when planning extremely deeply - nested set operations - (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>) - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix null-pointer crashes for some types of LDAP URLs appearing - in <filename>pg_hba.conf</filename> (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix sample <function>INSTR()</function> functions in the PL/pgSQL - documentation (Yugo Nagata, Tom Lane) - </para> - - <para> - These functions are stated to - be <trademark class="registered">Oracle</trademark> compatible, but - they weren't exactly. In particular, there was a discrepancy in the - interpretation of a negative third parameter: Oracle thinks that a - negative value indicates the last place where the target substring can - begin, whereas our functions took it as the last place where the - target can end. Also, Oracle throws an error for a zero or negative - fourth parameter, whereas our functions returned zero. - </para> - - <para> - The sample code has been adjusted to match Oracle's behavior more - precisely. Users who have copied this code into their applications - may wish to update their copies. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</application> to make ACL (permissions), - comment, and security label entries reliably identifiable in archive - output formats (Tom Lane) - </para> - - <para> - The <quote>tag</quote> portion of an ACL archive entry was usually - just the name of the associated object. Make it start with the object - type instead, bringing ACLs into line with the convention already used - for comment and security label archive entries. Also, fix the - comment and security label entries for the whole database, if present, - to make their tags start with <literal>DATABASE</literal> so that they - also follow this convention. This prevents false matches in code that - tries to identify large-object-related entries by seeing if the tag - starts with <literal>LARGE OBJECT</literal>. That could have resulted - in misclassifying entries as data rather than schema, with undesirable - results in a schema-only or data-only dump. - </para> - - <para> - Note that this change has user-visible results in the output - of <command>pg_restore --list</command>. - </para> - </listitem> - - <listitem> - <para> - In <application>ecpg</application>, detect indicator arrays that do - not have the correct length and report an error (David Rader) - </para> - </listitem> - - <listitem> - <para> - Avoid triggering a libc assertion - in <filename>contrib/hstore</filename>, due to use - of <function>memcpy()</function> with equal source and destination - pointers (Tomas Vondra) - </para> - </listitem> - - <listitem> - <para> - Provide modern examples of how to auto-start Postgres on macOS - (Tom Lane) - </para> - - <para> - The scripts in <filename>contrib/start-scripts/osx</filename> use - infrastructure that's been deprecated for over a decade, and which no - longer works at all in macOS releases of the last couple of years. - Add a new subdirectory <filename>contrib/start-scripts/macos</filename> - containing scripts that use the newer <application>launchd</application> - infrastructure. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect selection of configuration-specific libraries for - OpenSSL on Windows (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Support linking to MinGW-built versions of libperl (Noah Misch) - </para> - - <para> - This allows building PL/Perl with some common Perl distributions for - Windows. - </para> - </listitem> - - <listitem> - <para> - Fix MSVC build to test whether 32-bit libperl - needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch) - </para> - - <para> - Available Perl distributions are inconsistent about what they expect, - and lack any reliable means of reporting it, so resort to a build-time - test on what the library being used actually does. - </para> - </listitem> - - <listitem> - <para> - On Windows, install the crash dump handler earlier in postmaster - startup (Takayuki Tsunakawa) - </para> - - <para> - This may allow collection of a core dump for some early-startup - failures that did not produce a dump before. - </para> - </listitem> - - <listitem> - <para> - On Windows, avoid encoding-conversion-related crashes when emitting - messages very early in postmaster startup (Takayuki Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Use our existing Motorola 68K spinlock code on OpenBSD as - well as NetBSD (David Carlier) - </para> - </listitem> - - <listitem> - <para> - Add support for spinlocks on Motorola 88K (David Carlier) - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2018c for DST law changes in Brazil, Sao Tome and Principe, - plus historical corrections for Bolivia, Japan, and South Sudan. - The <literal>US/Pacific-New</literal> zone has been removed (it was - only an alias for <literal>America/Los_Angeles</literal> anyway). - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-15"> - <title>Release 9.4.15</title> - - <formalpara> - <title>Release date:</title> - <para>2017-11-09</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.14. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.15</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.13, - see <xref linkend="release-9-4-13">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix crash due to rowtype mismatch - in <function>json{b}_populate_recordset()</function> - (Michael Paquier, Tom Lane) - </para> - - <para> - These functions used the result rowtype specified in the <literal>FROM - ... AS</literal> clause without checking that it matched the actual - rowtype of the supplied tuple value. If it didn't, that would usually - result in a crash, though disclosure of server memory contents seems - possible as well. - (CVE-2017-15098) - </para> - </listitem> - - <listitem> - <para> - Fix sample server-start scripts to become <literal>$PGUSER</literal> - before opening <literal>$PGLOG</literal> (Noah Misch) - </para> - - <para> - Previously, the postmaster log file was opened while still running as - root. The database owner could therefore mount an attack against - another system user by making <literal>$PGLOG</literal> be a symbolic - link to some other file, which would then become corrupted by appending - log messages. - </para> - - <para> - By default, these scripts are not installed anywhere. Users who have - made use of them will need to manually recopy them, or apply the same - changes to their modified versions. If the - existing <literal>$PGLOG</literal> file is root-owned, it will need to - be removed or renamed out of the way before restarting the server with - the corrected script. - (CVE-2017-12172) - </para> - </listitem> - - <listitem> - <para> - Fix crash when logical decoding is invoked from a SPI-using function, - in particular any function written in a PL language - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <function>json_build_array()</function>, - <function>json_build_object()</function>, and their <type>jsonb</type> - equivalents to handle explicit <literal>VARIADIC</literal> arguments - correctly (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Properly reject attempts to convert infinite float values to - type <type>numeric</type> (Tom Lane, KaiGai Kohei) - </para> - - <para> - Previously the behavior was platform-dependent. - </para> - </listitem> - - <listitem> - <para> - Fix corner-case crashes when columns have been added to the end of a - view (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Record proper dependencies when a view or rule - contains <structname>FieldSelect</structname> - or <structname>FieldStore</structname> expression nodes (Tom Lane) - </para> - - <para> - Lack of these dependencies could allow a column or data - type <command>DROP</command> to go through when it ought to fail, - thereby causing later uses of the view or rule to get errors. - This patch does not do anything to protect existing views/rules, - only ones created in the future. - </para> - </listitem> - - <listitem> - <para> - Correctly detect hashability of range data types (Tom Lane) - </para> - - <para> - The planner mistakenly assumed that any range type could be hashed - for use in hash joins or hash aggregation, but actually it must check - whether the range's subtype has hash support. This does not affect any - of the built-in range types, since they're all hashable anyway. - </para> - </listitem> - - <listitem> - <para> - Fix low-probability loss of <command>NOTIFY</command> messages due to - XID wraparound (Marko Tiikkaja, Tom Lane) - </para> - - <para> - If a session executed no queries, but merely listened for - notifications, for more than 2 billion transactions, it started to miss - some notifications from concurrently-committing transactions. - </para> - </listitem> - - <listitem> - <para> - Avoid <systemitem>SIGBUS</systemitem> crash on Linux when a DSM memory - request exceeds the space available in <systemitem>tmpfs</systemitem> - (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Prevent low-probability crash in processing of nested trigger firings - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow <command>COPY</command>'s <literal>FREEZE</literal> option to - work when the transaction isolation level is <literal>REPEATABLE - READ</literal> or higher (Noah Misch) - </para> - - <para> - This case was unintentionally broken by a previous bug fix. - </para> - </listitem> - - <listitem> - <para> - Correctly restore the umask setting when file creation fails - in <command>COPY</command> or <function>lo_export()</function> - (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Give a better error message for duplicate column names - in <command>ANALYZE</command> (Nathan Bossart) - </para> - </listitem> - - <listitem> - <para> - Fix mis-parsing of the last line in a - non-newline-terminated <filename>pg_hba.conf</filename> file - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <application>libpq</application> to not require user's home - directory to exist (Tom Lane) - </para> - - <para> - In v10, failure to find the home directory while trying to - read <filename>~/.pgpass</filename> was treated as a hard error, - but it should just cause that file to not be found. Both v10 and - previous release branches made the same mistake when - reading <filename>~/.pg_service.conf</filename>, though this was less - obvious since that file is not sought unless a service name is - specified. - </para> - </listitem> - - <listitem> - <para> - Fix <application>libpq</application> to guard against integer - overflow in the row count of a <structname>PGresult</structname> - (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</application>'s handling of out-of-scope cursor - declarations with pointer or array variables (Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - In ecpglib, correctly handle backslashes in string literals depending - on whether <varname>standard_conforming_strings</varname> is set - (Tsunakawa Takayuki) - </para> - </listitem> - - <listitem> - <para> - Make ecpglib's Informix-compatibility mode ignore fractional digits in - integer input strings, as expected (Gao Zengqi, Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA release tzcode2017c - (Tom Lane) - </para> - - <para> - This fixes various issues; the only one likely to be user-visible - is that the default DST rules for a POSIX-style zone name, if - no <filename>posixrules</filename> file exists in the timezone data - directory, now match current US law rather than what it was a dozen - years ago. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</application> - release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus, - Sudan, Tonga, and Turks & Caicos Islands, plus historical - corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland, - Namibia, and Pago Pago. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-14"> - <title>Release 9.4.14</title> - - <formalpara> - <title>Release date:</title> - <para>2017-08-31</para> - </formalpara> - - <para> - This release contains a small number of fixes from 9.4.13. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.14</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.13, - see <xref linkend="release-9-4-13">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: REL9_4_STABLE [b51c8efc6] 2017-08-24 15:21:32 -0700 ---> - <para> - Fix failure of walsender processes to respond to shutdown signals - (Marco Nenciarini) - </para> - - <para> - A missed flag update resulted in walsenders continuing to run as long - as they had a standby server connected, preventing primary-server - shutdown unless immediate shutdown mode is used. - </para> - </listitem> - - <listitem> - <para> - Show foreign tables - in <structname>information_schema</>.<structname>table_privileges</> - view (Peter Eisentraut) - </para> - - <para> - All other relevant <structname>information_schema</> views include - foreign tables, but this one ignored them. - </para> - - <para> - Since this view definition is installed by <application>initdb</>, - merely upgrading will not fix the problem. If you need to fix this - in an existing installation, you can, as a superuser, do this - in <application>psql</>: -<programlisting> -SET search_path TO information_schema; -CREATE OR REPLACE VIEW table_privileges AS - SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, - CAST(grantee.rolname AS sql_identifier) AS grantee, - CAST(current_database() AS sql_identifier) AS table_catalog, - CAST(nc.nspname AS sql_identifier) AS table_schema, - CAST(c.relname AS sql_identifier) AS table_name, - CAST(c.prtype AS character_data) AS privilege_type, - CAST( - CASE WHEN - -- object owner always has grant options - pg_has_role(grantee.oid, c.relowner, 'USAGE') - OR c.grantable - THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, - CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy - - FROM ( - SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class - ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), - pg_namespace nc, - pg_authid u_grantor, - ( - SELECT oid, rolname FROM pg_authid - UNION ALL - SELECT 0::oid, 'PUBLIC' - ) AS grantee (oid, rolname) - - WHERE c.relnamespace = nc.oid - AND c.relkind IN ('r', 'v', 'f') - AND c.grantee = grantee.oid - AND c.grantor = u_grantor.oid - AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') - AND (pg_has_role(u_grantor.oid, 'USAGE') - OR pg_has_role(grantee.oid, 'USAGE') - OR grantee.rolname = 'PUBLIC'); -</programlisting> - This must be repeated in each database to be fixed, - including <literal>template0</>. - </para> - </listitem> - - <listitem> - <para> - Clean up handling of a fatal exit (e.g., due to receipt - of <systemitem>SIGTERM</>) that occurs while trying to execute - a <command>ROLLBACK</> of a failed transaction (Tom Lane) - </para> - - <para> - This situation could result in an assertion failure. In production - builds, the exit would still occur, but it would log an unexpected - message about <quote>cannot drop active portal</>. - </para> - </listitem> - - <listitem> - <para> - Remove assertion that could trigger during a fatal exit (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Correctly identify columns that are of a range type or domain type over - a composite type or domain type being searched for (Tom Lane) - </para> - - <para> - Certain <command>ALTER</> commands that change the definition of a - composite type or domain type are supposed to fail if there are any - stored values of that type in the database, because they lack the - infrastructure needed to update or check such values. Previously, - these checks could miss relevant values that are wrapped inside range - types or sub-domains, possibly allowing the database to become - inconsistent. - </para> - </listitem> - - <listitem> - <para> - Fix crash in <application>pg_restore</> when using parallel mode and - using a list file to select a subset of items to restore - (Fabrízio de Royes Mello) - </para> - </listitem> - - <listitem> - <para> - Change <application>ecpg</>'s parser to allow <literal>RETURNING</> - clauses without attached C variables (Michael Meskes) - </para> - - <para> - This allows <application>ecpg</> programs to contain SQL constructs - that use <literal>RETURNING</> internally (for example, inside a CTE) - rather than using it to define values to be returned to the client. - </para> - </listitem> - - <listitem> - <para> - Improve selection of compiler flags for PL/Perl on Windows (Tom Lane) - </para> - - <para> - This fix avoids possible crashes of PL/Perl due to inconsistent - assumptions about the width of <type>time_t</> values. - A side-effect that may be visible to extension developers is - that <literal>_USE_32BIT_TIME_T</> is no longer defined globally - in <productname>PostgreSQL</> Windows builds. This is not expected - to cause problems, because type <type>time_t</> is not used - in any <productname>PostgreSQL</> API definitions. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-13"> - <title>Release 9.4.13</title> - - <formalpara> - <title>Release date:</title> - <para>2017-08-10</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.12. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.13</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you use foreign data servers that make use of user - passwords for authentication, see the first changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.12, - see <xref linkend="release-9-4-12">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Further restrict visibility - of <structname>pg_user_mappings</>.<structfield>umoptions</>, to - protect passwords stored as user mapping options - (Noah Misch) - </para> - - <para> - The fix for CVE-2017-7486 was incorrect: it allowed a user - to see the options in her own user mapping, even if she did not - have <literal>USAGE</> permission on the associated foreign server. - Such options might include a password that had been provided by the - server owner rather than the user herself. - Since <structname>information_schema.user_mapping_options</> does not - show the options in such cases, <structname>pg_user_mappings</> - should not either. - (CVE-2017-7547) - </para> - - <para> - By itself, this patch will only fix the behavior in newly initdb'd - databases. If you wish to apply this change in an existing database, - you will need to do the following: - </para> - - <procedure> - <step> - <para> - Restart the postmaster after adding <literal>allow_system_table_mods - = true</> to <filename>postgresql.conf</>. (In versions - supporting <command>ALTER SYSTEM</>, you can use that to make the - configuration change, but you'll still need a restart.) - </para> - </step> - - <step> - <para> - In <emphasis>each</> database of the cluster, - run the following commands as superuser: -<programlisting> -SET search_path = pg_catalog; -CREATE OR REPLACE VIEW pg_user_mappings AS - SELECT - U.oid AS umid, - S.oid AS srvid, - S.srvname AS srvname, - U.umuser AS umuser, - CASE WHEN U.umuser = 0 THEN - 'public' - ELSE - A.rolname - END AS usename, - CASE WHEN (U.umuser <> 0 AND A.rolname = current_user - AND (pg_has_role(S.srvowner, 'USAGE') - OR has_server_privilege(S.oid, 'USAGE'))) - OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) - OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) - THEN U.umoptions - ELSE NULL END AS umoptions - FROM pg_user_mapping U - LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN - pg_foreign_server S ON (U.umserver = S.oid); -</programlisting> - </para> - </step> - - <step> - <para> - Do not forget to include the <literal>template0</> - and <literal>template1</> databases, or the vulnerability will still - exist in databases you create later. To fix <literal>template0</>, - you'll need to temporarily make it accept connections. - In <productname>PostgreSQL</> 9.5 and later, you can use -<programlisting> -ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; -</programlisting> - and then after fixing <literal>template0</>, undo that with -<programlisting> -ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; -</programlisting> - In prior versions, instead use -<programlisting> -UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; -UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; -</programlisting> - </para> - </step> - - <step> - <para> - Finally, remove the <literal>allow_system_table_mods</> configuration - setting, and again restart the postmaster. - </para> - </step> - </procedure> - </listitem> - - <listitem> - <para> - Disallow empty passwords in all password-based authentication methods - (Heikki Linnakangas) - </para> - - <para> - <application>libpq</> ignores empty password specifications, and does - not transmit them to the server. So, if a user's password has been - set to the empty string, it's impossible to log in with that password - via <application>psql</> or other <application>libpq</>-based - clients. An administrator might therefore believe that setting the - password to empty is equivalent to disabling password login. - However, with a modified or non-<application>libpq</>-based client, - logging in could be possible, depending on which authentication - method is configured. In particular the most common - method, <literal>md5</>, accepted empty passwords. - Change the server to reject empty passwords in all cases. - (CVE-2017-7546) - </para> - </listitem> - - <listitem> - <para> - Make <function>lo_put()</> check for <literal>UPDATE</> privilege on - the target large object (Tom Lane, Michael Paquier) - </para> - - <para> - <function>lo_put()</> should surely require the same permissions - as <function>lowrite()</>, but the check was missing, allowing any - user to change the data in a large object. - (CVE-2017-7548) - </para> - </listitem> - - <listitem> - <para> - Fix concurrent locking of tuple update chains (Álvaro Herrera) - </para> - - <para> - If several sessions concurrently lock a tuple update chain with - nonconflicting lock modes using an old snapshot, and they all - succeed, it was possible for some of them to nonetheless fail (and - conclude there is no live tuple version) due to a race condition. - This had consequences such as foreign-key checks failing to see a - tuple that definitely exists but is being updated concurrently. - </para> - </listitem> - - <listitem> - <para> - Fix potential data corruption when freezing a tuple whose XMAX is a - multixact with exactly one still-interesting member (Teodor Sigaev) - </para> - </listitem> - - <listitem> - <para> - Avoid integer overflow and ensuing crash when sorting more than one - billion tuples in-memory (Sergey Koposov) - </para> - </listitem> - - <listitem> - <para> - On Windows, retry process creation if we fail to reserve the address - range for our shared memory in the new process (Tom Lane, Amit - Kapila) - </para> - - <para> - This is expected to fix infrequent child-process-launch failures that - are probably due to interference from antivirus products. - </para> - </listitem> - - <listitem> - <para> - Fix low-probability corruption of shared predicate-lock hash table - in Windows builds (Thomas Munro, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Avoid logging clean closure of an SSL connection as though - it were a connection reset (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Prevent sending SSL session tickets to clients (Tom Lane) - </para> - - <para> - This fix prevents reconnection failures with ticket-aware client-side - SSL code. - </para> - </listitem> - - <listitem> - <para> - Fix code for setting <xref linkend="guc-tcp-keepalives-idle"> on - Solaris (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix statistics collector to honor inquiry messages issued just after - a postmaster shutdown and immediate restart (Tom Lane) - </para> - - <para> - Statistics inquiries issued within half a second of the previous - postmaster shutdown were effectively ignored. - </para> - </listitem> - - <listitem> - <para> - Ensure that the statistics collector's receive buffer size is at - least 100KB (Tom Lane) - </para> - - <para> - This reduces the risk of dropped statistics data on older platforms - whose default receive buffer size is less than that. - </para> - </listitem> - - <listitem> - <para> - Fix possible creation of an invalid WAL segment when a standby is - promoted just after it processes an <literal>XLOG_SWITCH</> WAL - record (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Fix <application>walsender</> to exit promptly when client requests - shutdown (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <systemitem>SIGHUP</> and <systemitem>SIGUSR1</> handling in - walsender processes (Petr Jelinek, Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Prevent walsender-triggered panics during shutdown checkpoints - (Andres Freund, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix unnecessarily slow restarts of <application>walreceiver</> - processes due to race condition in postmaster (Tom Lane) - </para> - </listitem> - - <listitem> -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: REL9_4_STABLE [23a2b818f] 2017-08-05 14:56:40 -0700 ---> - <para> - Fix logical decoding failure with very wide tuples (Andres Freund) - </para> - - <para> - Logical decoding crashed on tuples that are wider than 64KB (after - compression, but with all data in-line). The case arises only - when <literal>REPLICA IDENTITY FULL</> is enabled for a table - containing such tuples. - </para> - </listitem> - - <listitem> - <para> - Fix leakage of small subtransactions spilled to disk during logical - decoding (Andres Freund) - </para> - - <para> - This resulted in temporary files consuming excessive disk space. - </para> - </listitem> - - <listitem> - <para> - Reduce the work needed to build snapshots during creation of - logical-decoding slots (Andres Freund, Petr Jelinek) - </para> - - <para> - The previous algorithm was infeasibly expensive on a server with a - lot of open transactions. - </para> - </listitem> - - <listitem> - <para> - Fix race condition that could indefinitely delay creation of - logical-decoding slots (Andres Freund, Petr Jelinek) - </para> - </listitem> - - <listitem> - <para> - Reduce overhead in processing syscache invalidation events (Tom Lane) - </para> - - <para> - This is particularly helpful for logical decoding, which triggers - frequent cache invalidation. - </para> - </listitem> - - <listitem> - <para> - Fix cases where an <command>INSERT</> or <command>UPDATE</> assigns - to more than one element of a column that is of domain-over-array - type (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow window functions to be used in sub-<literal>SELECT</>s that - are within the arguments of an aggregate function (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Move autogenerated array types out of the way during - <command>ALTER ... RENAME</> (Vik Fearing) - </para> - - <para> - Previously, we would rename a conflicting autogenerated array type - out of the way during <command>CREATE</>; this fix extends that - behavior to renaming operations. - </para> - </listitem> - - <listitem> - <para> - Ensure that <command>ALTER USER ... SET</> accepts all the syntax - variants that <command>ALTER ROLE ... SET</> does (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Properly update dependency info when changing a datatype I/O - function's argument or return type from <type>opaque</> to the - correct type (Heikki Linnakangas) - </para> - - <para> - <command>CREATE TYPE</> updates I/O functions declared in this - long-obsolete style, but it forgot to record a dependency on the - type, allowing a subsequent <command>DROP TYPE</> to leave broken - function definitions behind. - </para> - </listitem> - - <listitem> - <para> - Reduce memory usage when <command>ANALYZE</> processes - a <type>tsvector</> column (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Fix unnecessary precision loss and sloppy rounding when multiplying - or dividing <type>money</> values by integers or floats (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Tighten checks for whitespace in functions that parse identifiers, - such as <function>regprocedurein()</> (Tom Lane) - </para> - - <para> - Depending on the prevailing locale, these functions could - misinterpret fragments of multibyte characters as whitespace. - </para> - </listitem> - - <listitem> - <para> - Use relevant <literal>#define</> symbols from Perl while - compiling <application>PL/Perl</> (Ashutosh Sharma, Tom Lane) - </para> - - <para> - This avoids portability problems, typically manifesting as - a <quote>handshake</> mismatch during library load, when working with - recent Perl versions. - </para> - </listitem> - - <listitem> - <para> - In <application>libpq</>, reset GSS/SASL and SSPI authentication - state properly after a failed connection attempt (Michael Paquier) - </para> - - <para> - Failure to do this meant that when falling back from SSL to non-SSL - connections, a GSS/SASL failure in the SSL attempt would always cause - the non-SSL attempt to fail. SSPI did not fail, but it leaked memory. - </para> - </listitem> - - <listitem> - <para> - In <application>psql</>, fix failure when <command>COPY FROM STDIN</> - is ended with a keyboard EOF signal and then another <command>COPY - FROM STDIN</> is attempted (Thomas Munro) - </para> - - <para> - This misbehavior was observed on BSD-derived platforms (including - macOS), but not on most others. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</> and <application>pg_restore</> to - emit <command>REFRESH MATERIALIZED VIEW</> commands last (Tom Lane) - </para> - - <para> - This prevents errors during dump/restore when a materialized view - refers to tables owned by a different user. - </para> - </listitem> - - <listitem> - <para> - Improve <application>pg_dump</>/<application>pg_restore</>'s - reporting of error conditions originating in <application>zlib</> - (Vladimir Kunschikov, Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</> with the <option>--clean</> option to - drop event triggers as expected (Tom Lane) - </para> - - <para> - It also now correctly assigns ownership of event triggers; before, - they were restored as being owned by the superuser running the - restore script. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</> to not emit invalid SQL for an empty - operator class (Daniel Gustafsson) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</> output to stdout on Windows (Kuntal Ghosh) - </para> - - <para> - A compressed plain-text dump written to stdout would contain corrupt - data due to failure to put the file descriptor into binary mode. - </para> - </listitem> - - <listitem> - <para> - Fix <function>pg_get_ruledef()</> to print correct output for - the <literal>ON SELECT</> rule of a view whose columns have been - renamed (Tom Lane) - </para> - - <para> - In some corner cases, <application>pg_dump</> relies - on <function>pg_get_ruledef()</> to dump views, so that this error - could result in dump/reload failures. - </para> - </listitem> - - <listitem> - <para> - Fix dumping of outer joins with empty constraints, such as the result - of a <literal>NATURAL LEFT JOIN</> with no common columns (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix dumping of function expressions in the <literal>FROM</> clause in - cases where the expression does not deparse into something that looks - like a function call (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</> output to stdout on Windows - (Haribabu Kommi) - </para> - - <para> - A backup written to stdout would contain corrupt data due to failure - to put the file descriptor into binary mode. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</> to ensure that the ending WAL record - does not have <xref linkend="guc-wal-level"> = <literal>minimum</> - (Bruce Momjian) - </para> - - <para> - This condition could prevent upgraded standby servers from - reconnecting. - </para> - </listitem> - - <listitem> - <para> - In <filename>postgres_fdw</>, re-establish connections to remote - servers after <command>ALTER SERVER</> or <command>ALTER USER - MAPPING</> commands (Kyotaro Horiguchi) - </para> - - <para> - This ensures that option changes affecting connection parameters will - be applied promptly. - </para> - </listitem> - - <listitem> - <para> - In <filename>postgres_fdw</>, allow cancellation of remote - transaction control commands (Robert Haas, Rafia Sabih) - </para> - - <para> - This change allows us to quickly escape a wait for an unresponsive - remote server in many more cases than previously. - </para> - </listitem> - - <listitem> - <para> - Increase <literal>MAX_SYSCACHE_CALLBACKS</> to provide more room for - extensions (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Always use <option>-fPIC</>, not <option>-fpic</>, when building - shared libraries with gcc (Tom Lane) - </para> - - <para> - This supports larger extension libraries on platforms where it makes - a difference. - </para> - </listitem> - - <listitem> - <para> - Fix unescaped-braces issue in our build scripts for Microsoft MSVC, - to avoid a warning or error from recent Perl versions (Andrew - Dunstan) - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, handle the case where the <application>openssl</> - library is not within a <filename>VC</> subdirectory (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, add proper include path for <application>libxml2</> - header files (Andrew Dunstan) - </para> - - <para> - This fixes a former need to move things around in standard Windows - installations of <application>libxml2</>. - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, recognize a Tcl library that is - named <filename>tcl86.lib</> (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, honor <literal>PROVE_FLAGS</> settings - on <filename>vcregress.pl</>'s command line (Andrew Dunstan) - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-12"> - <title>Release 9.4.12</title> - - <formalpara> - <title>Release date:</title> - <para>2017-05-11</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.11. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.12</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you use foreign data servers that make use of user - passwords for authentication, see the first changelog entry below. - </para> - - <para> - Also, if you are using third-party replication tools that depend - on <quote>logical decoding</>, see the fourth changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.11, - see <xref linkend="release-9-4-11">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Restrict visibility - of <structname>pg_user_mappings</>.<structfield>umoptions</>, to - protect passwords stored as user mapping options - (Michael Paquier, Feike Steenbergen) - </para> - - <para> - The previous coding allowed the owner of a foreign server object, - or anyone he has granted server <literal>USAGE</> permission to, - to see the options for all user mappings associated with that server. - This might well include passwords for other users. - Adjust the view definition to match the behavior of - <structname>information_schema.user_mapping_options</>, namely that - these options are visible to the user being mapped, or if the mapping - is for <literal>PUBLIC</literal> and the current user is the server - owner, or if the current user is a superuser. - (CVE-2017-7486) - </para> - - <para> - By itself, this patch will only fix the behavior in newly initdb'd - databases. If you wish to apply this change in an existing database, - follow the corrected procedure shown in the changelog entry for - CVE-2017-7547, in <xref linkend="release-9-4-13">. - </para> - </listitem> - - <listitem> - <para> - Prevent exposure of statistical information via leaky operators - (Peter Eisentraut) - </para> - - <para> - Some selectivity estimation functions in the planner will apply - user-defined operators to values obtained - from <structname>pg_statistic</>, such as most common values and - histogram entries. This occurs before table permissions are checked, - so a nefarious user could exploit the behavior to obtain these values - for table columns he does not have permission to read. To fix, - fall back to a default estimate if the operator's implementation - function is not certified leak-proof and the calling user does not have - permission to read the table column whose statistics are needed. - At least one of these criteria is satisfied in most cases in practice. - (CVE-2017-7484) - </para> - </listitem> - - <listitem> - <para> - Restore <application>libpq</>'s recognition of - the <envar>PGREQUIRESSL</> environment variable (Daniel Gustafsson) - </para> - - <para> - Processing of this environment variable was unintentionally dropped - in <productname>PostgreSQL</> 9.3, but its documentation remained. - This creates a security hazard, since users might be relying on the - environment variable to force SSL-encrypted connections, but that - would no longer be guaranteed. Restore handling of the variable, - but give it lower priority than <envar>PGSSLMODE</>, to avoid - breaking configurations that work correctly with post-9.3 code. - (CVE-2017-7485) - </para> - </listitem> - - <listitem> - <para> - Fix possibly-invalid initial snapshot during logical decoding - (Petr Jelinek, Andres Freund) - </para> - - <para> - The initial snapshot created for a logical decoding replication slot - was potentially incorrect. This could cause third-party tools that - use logical decoding to copy incomplete/inconsistent initial data. - This was more likely to happen if the source server was busy at the - time of slot creation, or if another logical slot already existed. - </para> - - <para> - If you are using a replication tool that depends on logical decoding, - and it should have copied a nonempty data set at the start of - replication, it is advisable to recreate the replica after - installing this update, or to verify its contents against the source - server. - </para> - </listitem> - - <listitem> - <para> - Fix possible corruption of <quote>init forks</> of unlogged indexes - (Robert Haas, Michael Paquier) - </para> - - <para> - This could result in an unlogged index being set to an invalid state - after a crash and restart. Such a problem would persist until the - index was dropped and rebuilt. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect reconstruction of <structname>pg_subtrans</> entries - when a standby server replays a prepared but uncommitted two-phase - transaction (Tom Lane) - </para> - - <para> - In most cases this turned out to have no visible ill effects, but in - corner cases it could result in circular references - in <structname>pg_subtrans</>, potentially causing infinite loops - in queries that examine rows modified by the two-phase transaction. - </para> - </listitem> - - <listitem> - <para> - Avoid possible crash in <application>walsender</> due to failure - to initialize a string buffer (Stas Kelvich, Fujii Masao) - </para> - </listitem> - - <listitem> - <para> - Fix postmaster's handling of <function>fork()</> failure for a - background worker process (Tom Lane) - </para> - - <para> - Previously, the postmaster updated portions of its state as though - the process had been launched successfully, resulting in subsequent - confusion. - </para> - </listitem> - - <listitem> - <para> - Ensure parsing of queries in extension scripts sees the results of - immediately-preceding DDL (Julien Rouhaud, Tom Lane) - </para> - - <para> - Due to lack of a cache flush step between commands in an extension - script file, non-utility queries might not see the effects of an - immediately preceding catalog change, such as <command>ALTER TABLE - ... RENAME</>. - </para> - </listitem> - - <listitem> - <para> - Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER - COLUMN TYPE</> rebuilds an existing index (Noah Misch) - </para> - - <para> - The command failed if the calling user did not currently have - <literal>CREATE</> privilege for the tablespace containing the index. - That behavior seems unhelpful, so skip the check, allowing the - index to be rebuilt where it is. - </para> - </listitem> - - <listitem> - <para> - Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</> to not recurse - to child tables when the constraint is marked <literal>NO INHERIT</> - (Amit Langote) - </para> - - <para> - This fix prevents unwanted <quote>constraint does not exist</> failures - when no matching constraint is present in the child tables. - </para> - </listitem> - - <listitem> - <para> - Fix <command>VACUUM</> to account properly for pages that could not - be scanned due to conflicting page pins (Andrew Gierth) - </para> - - <para> - This tended to lead to underestimation of the number of tuples in - the table. In the worst case of a small heavily-contended - table, <command>VACUUM</> could incorrectly report that the table - contained no tuples, leading to very bad planning choices. - </para> - </listitem> - - <listitem> - <para> - Ensure that bulk-tuple-transfer loops within a hash join are - interruptible by query cancel requests (Tom Lane, Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix integer-overflow problems in <type>interval</> comparison (Kyotaro - Horiguchi, Tom Lane) - </para> - - <para> - The comparison operators for type <type>interval</> could yield wrong - answers for intervals larger than about 296000 years. Indexes on - columns containing such large values should be reindexed, since they - may be corrupt. - </para> - </listitem> - - <listitem> - <para> - Fix <function>cursor_to_xml()</> to produce valid output - with <replaceable>tableforest</> = false - (Thomas Munro, Peter Eisentraut) - </para> - - <para> - Previously it failed to produce a wrapping <literal><table></> - element. - </para> - </listitem> - - <listitem> - <para> - Fix roundoff problems in <function>float8_timestamptz()</> - and <function>make_interval()</> (Tom Lane) - </para> - - <para> - These functions truncated, rather than rounded, when converting a - floating-point value to integer microseconds; that could cause - unexpectedly off-by-one results. - </para> - </listitem> - - <listitem> - <para> - Improve performance of <structname>pg_timezone_names</> view - (Tom Lane, David Rowley) - </para> - </listitem> - - <listitem> - <para> - Reduce memory management overhead for contexts containing many large - blocks (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix sloppy handling of corner-case errors from <function>lseek()</> - and <function>close()</> (Tom Lane) - </para> - - <para> - Neither of these system calls are likely to fail in typical situations, - but if they did, <filename>fd.c</> could get quite confused. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect check for whether postmaster is running as a Windows - service (Michael Paquier) - </para> - - <para> - This could result in attempting to write to the event log when that - isn't accessible, so that no logging happens at all. - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</> to support <command>COMMIT PREPARED</> - and <command>ROLLBACK PREPARED</> (Masahiko Sawada) - </para> - </listitem> - - <listitem> - <para> - Fix a double-free error when processing dollar-quoted string literals - in <application>ecpg</> (Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - In <application>pg_dump</>, fix incorrect schema and owner marking for - comments and security labels of some types of database objects - (Giuseppe Broccolo, Tom Lane) - </para> - - <para> - In simple cases this caused no ill effects; but for example, a - schema-selective restore might omit comments it should include, because - they were not marked as belonging to the schema of their associated - object. - </para> - </listitem> - - <listitem> - <para> - Avoid emitting an invalid list file in <literal>pg_restore -l</> - when SQL object names contain newlines (Tom Lane) - </para> - - <para> - Replace newlines by spaces, which is sufficient to make the output - valid for <literal>pg_restore -L</>'s purposes. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</> to transfer comments and security labels - attached to <quote>large objects</> (blobs) (Stephen Frost) - </para> - - <para> - Previously, blobs were correctly transferred to the new database, but - any comments or security labels attached to them were lost. - </para> - </listitem> - - <listitem> - <para> - Improve error handling - in <filename>contrib/adminpack</>'s <function>pg_file_write()</> - function (Noah Misch) - </para> - - <para> - Notably, it failed to detect errors reported - by <function>fclose()</>. - </para> - </listitem> - - <listitem> - <para> - In <filename>contrib/dblink</>, avoid leaking the previous unnamed - connection when establishing a new unnamed connection (Joe Conway) - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/pg_trgm</>'s extraction of trigrams from regular - expressions (Tom Lane) - </para> - - <para> - In some cases it would produce a broken data structure that could never - match anything, leading to GIN or GiST indexscans that use a trigram - index not finding any matches to the regular expression. - </para> - </listitem> - - <listitem> - <para> - In <filename>contrib/postgres_fdw</>, - transmit query cancellation requests to the remote server - (Michael Paquier, Etsuro Fujita) - </para> - - <para> - Previously, a local query cancellation request did not cause an - already-sent remote query to terminate early. This is a back-patch - of work originally done for 9.6. - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_4_STABLE [bb132cddf] 2017-04-15 20:16:03 -0400 -Branch: REL9_3_STABLE [fbfeceb25] 2017-04-17 12:51:40 -0400 -Branch: REL9_2_STABLE [58384149b] 2017-04-17 12:51:40 -0400 -Branch: REL9_3_STABLE [4e91330da] 2017-04-17 13:52:42 -0400 -Branch: REL9_2_STABLE [fb50c38e9] 2017-04-17 13:52:42 -0400 ---> - <para> - Support OpenSSL 1.1.0 (Heikki Linnakangas, Andreas Karlsson, Tom Lane) - </para> - - <para> - This is a back-patch of work previously done in newer branches; - it's needed since many platforms are adopting newer OpenSSL versions. - </para> - </listitem> - - <listitem> - <para> - Support Tcl 8.6 in MSVC builds (Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA release tzcode2017b - (Tom Lane) - </para> - - <para> - This fixes a bug affecting some DST transitions in January 2038. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2017b - for DST law changes in Chile, Haiti, and Mongolia, plus historical - corrections for Ecuador, Kazakhstan, Liberia, and Spain. - Switch to numeric abbreviations for numerous time zones in South - America, the Pacific and Indian oceans, and some Asian and Middle - Eastern countries. - </para> - - <para> - The IANA time zone database previously provided textual abbreviations - for all time zones, sometimes making up abbreviations that have little - or no currency among the local population. They are in process of - reversing that policy in favor of using numeric UTC offsets in zones - where there is no evidence of real-world use of an English - abbreviation. At least for the time being, <productname>PostgreSQL</> - will continue to accept such removed abbreviations for timestamp input. - But they will not be shown in the <structname>pg_timezone_names</> - view nor used for output. - </para> - </listitem> - - <listitem> - <para> - Use correct daylight-savings rules for POSIX-style time zone names - in MSVC builds (David Rowley) - </para> - - <para> - The Microsoft MSVC build scripts neglected to install - the <filename>posixrules</> file in the timezone directory tree. - This resulted in the timezone code falling back to its built-in - rule about what DST behavior to assume for a POSIX-style time zone - name. For historical reasons that still corresponds to the DST rules - the USA was using before 2007 (i.e., change on first Sunday in April - and last Sunday in October). With this fix, a POSIX-style zone name - will use the current and historical DST transition dates of - the <literal>US/Eastern</> zone. If you don't want that, remove - the <filename>posixrules</> file, or replace it with a copy of some - other zone file (see <xref linkend="datatype-timezones">). Note that - due to caching, you may need to restart the server to get such changes - to take effect. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-11"> - <title>Release 9.4.11</title> - - <formalpara> - <title>Release date:</title> - <para>2017-02-09</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.10. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.11</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if your installation has been affected by the bug described in - the first changelog entry below, then after updating you may need - to take action to repair corrupted indexes. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.10, - see <xref linkend="release-9-4-10">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix a race condition that could cause indexes built - with <command>CREATE INDEX CONCURRENTLY</> to be corrupt - (Pavan Deolasee, Tom Lane) - </para> - - <para> - If <command>CREATE INDEX CONCURRENTLY</> was used to build an index - that depends on a column not previously indexed, then rows - updated by transactions that ran concurrently with - the <command>CREATE INDEX</> command could have received incorrect - index entries. If you suspect this may have happened, the most - reliable solution is to rebuild affected indexes after installing - this update. - </para> - </listitem> - - <listitem> - <para> - Ensure that the special snapshot used for catalog scans is not - invalidated by premature data pruning (Tom Lane) - </para> - - <para> - Backends failed to account for this snapshot when advertising their - oldest xmin, potentially allowing concurrent vacuuming operations to - remove data that was still needed. This led to transient failures - along the lines of <quote>cache lookup failed for relation 1255</>. - </para> - </listitem> - - <listitem> - <para> - Unconditionally WAL-log creation of the <quote>init fork</> for an - unlogged table (Michael Paquier) - </para> - - <para> - Previously, this was skipped when <xref linkend="guc-wal-level"> - = <literal>minimal</>, but actually it's necessary even in that case - to ensure that the unlogged table is properly reset to empty after a - crash. - </para> - </listitem> - - <listitem> - <para> - Reduce interlocking on standby servers during the replay of btree - index vacuuming operations (Simon Riggs) - </para> - - <para> - This change avoids substantial replication delays that sometimes - occurred while replaying such operations. - </para> - </listitem> - - <listitem> - <para> - If the stats collector dies during hot standby, restart it (Takayuki - Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Ensure that hot standby feedback works correctly when it's enabled at - standby server start (Ants Aasma, Craig Ringer) - </para> - </listitem> - - <listitem> - <para> - Check for interrupts while hot standby is waiting for a conflicting - query (Simon Riggs) - </para> - </listitem> - - <listitem> - <para> - Avoid constantly respawning the autovacuum launcher in a corner case - (Amit Khandekar) - </para> - - <para> - This fix avoids problems when autovacuum is nominally off and there - are some tables that require freezing, but all such tables are - already being processed by autovacuum workers. - </para> - </listitem> - - <listitem> - <para> - Fix check for when an extension member object can be dropped (Tom Lane) - </para> - - <para> - Extension upgrade scripts should be able to drop member objects, - but this was disallowed for serial-column sequences, and possibly - other cases. - </para> - </listitem> - - <listitem> - <para> - Make sure <command>ALTER TABLE</> preserves index tablespace - assignments when rebuilding indexes (Tom Lane, Michael Paquier) - </para> - - <para> - Previously, non-default settings - of <xref linkend="guc-default-tablespace"> could result in broken - indexes. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect updating of trigger function properties when changing a - foreign-key constraint's deferrability properties with <command>ALTER - TABLE ... ALTER CONSTRAINT</> (Tom Lane) - </para> - - <para> - This led to odd failures during subsequent exercise of the foreign - key, as the triggers were fired at the wrong times. - </para> - </listitem> - - <listitem> - <para> - Prevent dropping a foreign-key constraint if there are pending - trigger events for the referenced relation (Tom Lane) - </para> - - <para> - This avoids <quote>could not find trigger <replaceable>NNN</></quote> - or <quote>relation <replaceable>NNN</> has no triggers</quote> errors. - </para> - </listitem> - - <listitem> - <para> - Fix processing of OID column when a table with OIDs is associated to - a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit - Langote) - </para> - - <para> - The OID column should be treated the same as regular user columns in - this case, but it wasn't, leading to odd behavior in later - inheritance changes. - </para> - </listitem> - - <listitem> - <para> - Fix <command>CREATE OR REPLACE VIEW</> to update the view query - before attempting to apply the new view options (Dean Rasheed) - </para> - - <para> - Previously the command would fail if the new options were - inconsistent with the old view definition. - </para> - </listitem> - - <listitem> - <para> - Report correct object identity during <command>ALTER TEXT SEARCH - CONFIGURATION</> (Artur Zakirov) - </para> - - <para> - The wrong catalog OID was reported to extensions such as logical - decoding. - </para> - </listitem> - - <listitem> - <para> - Check for serializability conflicts before reporting - constraint-violation failures (Thomas Munro) - </para> - - <para> - When using serializable transaction isolation, it is desirable - that any error due to concurrent transactions should manifest - as a serialization failure, thereby cueing the application that - a retry might succeed. Unfortunately, this does not reliably - happen for duplicate-key failures caused by concurrent insertions. - This change ensures that such an error will be reported as a - serialization error if the application explicitly checked for - the presence of a conflicting key (and did not find it) earlier - in the transaction. - </para> - </listitem> - - <listitem> - <para> - Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in - an <command>UPDATE</> source expression (Tom Lane) - </para> - - <para> - This led to <quote>UPDATE target count mismatch --- internal - error</>. Now the syntax is understood as a whole-row variable, - as it would be in other contexts. - </para> - </listitem> - - <listitem> - <para> - Ensure that column typmods are determined accurately for - multi-row <literal>VALUES</> constructs (Tom Lane) - </para> - - <para> - This fixes problems occurring when the first value in a column has a - determinable typmod (e.g., length for a <type>varchar</> value) but - later values don't share the same limit. - </para> - </listitem> - - <listitem> - <para> - Throw error for an unfinished Unicode surrogate pair at the end of a - Unicode string (Tom Lane) - </para> - - <para> - Normally, a Unicode surrogate leading character must be followed by a - Unicode surrogate trailing character, but the check for this was - missed if the leading character was the last character in a Unicode - string literal (<literal>U&'...'</>) or Unicode identifier - (<literal>U&"..."</>). - </para> - </listitem> - - <listitem> - <para> - Ensure that a purely negative text search query, such - as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan) - </para> - - <para> - Such matches were found by GIN index searches, but not by sequential - scans or GiST index searches. - </para> - </listitem> - - <listitem> - <para> - Prevent crash when <function>ts_rewrite()</> replaces a non-top-level - subtree with an empty query (Artur Zakirov) - </para> - </listitem> - - <listitem> - <para> - Fix performance problems in <function>ts_rewrite()</> (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <function>ts_rewrite()</>'s handling of nested NOT operators - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix one-byte buffer overrun in <function>quote_literal_cstr()</> - (Heikki Linnakangas) - </para> - - <para> - The overrun occurred only if the input consisted entirely of single - quotes and/or backslashes. - </para> - </listitem> - - <listitem> - <para> - Prevent multiple calls of <function>pg_start_backup()</> - and <function>pg_stop_backup()</> from running concurrently (Michael - Paquier) - </para> - - <para> - This avoids an assertion failure, and possibly worse things, if - someone tries to run these functions in parallel. - </para> - </listitem> - - <listitem> - <para> - Avoid discarding <type>interval</>-to-<type>interval</> casts - that aren't really no-ops (Tom Lane) - </para> - - <para> - In some cases, a cast that should result in zeroing out - low-order <type>interval</> fields was mistakenly deemed to be a - no-op and discarded. An example is that casting from <type>INTERVAL - MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field. - </para> - </listitem> - - <listitem> - <para> - Ensure that cached plans are invalidated by changes in foreign-table - options (Amit Langote, Etsuro Fujita, Ashutosh Bapat) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_dump</> to dump user-defined casts and transforms - that use built-in functions (Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_restore</> with <option>--create --if-exists</> - to behave more sanely if an archive contains - unrecognized <command>DROP</> commands (Tom Lane) - </para> - - <para> - This doesn't fix any live bug, but it may improve the behavior in - future if <application>pg_restore</> is used with an archive - generated by a later <application>pg_dump</> version. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</>'s rate limiting in the presence of - slow I/O (Antonin Houska) - </para> - - <para> - If disk I/O was transiently much slower than the specified rate - limit, the calculation overflowed, effectively disabling the rate - limit for the rest of the run. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_basebackup</>'s handling of - symlinked <filename>pg_stat_tmp</> and <filename>pg_replslot</> - subdirectories (Magnus Hagander, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix possible <application>pg_basebackup</> failure on standby - server when including WAL files (Amit Kapila, Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Ensure that the Python exception objects we create for PL/Python are - properly reference-counted (Rafa de la Torre, Tom Lane) - </para> - - <para> - This avoids failures if the objects are used after a Python garbage - collection cycle has occurred. - </para> - </listitem> - - <listitem> - <para> - Fix PL/Tcl to support triggers on tables that have <literal>.tupno</> - as a column name (Tom Lane) - </para> - - <para> - This matches the (previously undocumented) behavior of - PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands, - namely that a magic <literal>.tupno</> column is inserted only if - there isn't a real column named that. - </para> - </listitem> - - <listitem> - <para> - Allow DOS-style line endings in <filename>~/.pgpass</> files, - even on Unix (Vik Fearing) - </para> - - <para> - This change simplifies use of the same password file across Unix and - Windows machines. - </para> - </listitem> - - <listitem> - <para> - Fix one-byte buffer overrun if <application>ecpg</> is given a file - name that ends with a dot (Takayuki Tsunakawa) - </para> - </listitem> - - <listitem> - <para> - Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT - PRIVILEGES</> (Gilles Darold, Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - In <application>psql</>, treat an empty or all-blank setting of - the <envar>PAGER</> environment variable as meaning <quote>no - pager</> (Tom Lane) - </para> - - <para> - Previously, such a setting caused output intended for the pager to - vanish entirely. - </para> - </listitem> - - <listitem> - <para> - Improve <filename>contrib/dblink</>'s reporting of - low-level <application>libpq</> errors, such as out-of-memory - (Joe Conway) - </para> - </listitem> - - <listitem> - <para> - Teach <filename>contrib/dblink</> to ignore irrelevant server options - when it uses a <filename>contrib/postgres_fdw</> foreign server as - the source of connection options (Corey Huinker) - </para> - - <para> - Previously, if the foreign server object had options that were not - also <application>libpq</> connection options, an error occurred. - </para> - </listitem> - - <listitem> - <para> - On Windows, ensure that environment variable changes are propagated - to DLLs built with debug options (Christian Ullrich) - </para> - </listitem> - - <listitem> - <para> - Sync our copy of the timezone library with IANA release tzcode2016j - (Tom Lane) - </para> - - <para> - This fixes various issues, most notably that timezone data - installation failed if the target directory didn't support hard - links. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2016j - for DST law changes in northern Cyprus (adding a new zone - Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, - and Antarctica/Casey. - Historical corrections for Italy, Kazakhstan, Malta, and Palestine. - Switch to preferring numeric zone abbreviations for Tonga. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-10"> - <title>Release 9.4.10</title> - - <formalpara> - <title>Release date:</title> - <para>2016-10-27</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.9. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.10</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if your installation has been affected by the bug described in - the first changelog entry below, then after updating you may need - to take action to repair corrupted free space maps. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.6, - see <xref linkend="release-9-4-6">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix WAL-logging of truncation of relation free space maps and - visibility maps (Pavan Deolasee, Heikki Linnakangas) - </para> - - <para> - It was possible for these files to not be correctly restored during - crash recovery, or to be written incorrectly on a standby server. - Bogus entries in a free space map could lead to attempts to access - pages that have been truncated away from the relation itself, typically - producing errors like <quote>could not read block <replaceable>XXX</>: - read only 0 of 8192 bytes</quote>. Checksum failures in the - visibility map are also possible, if checksumming is enabled. - </para> - - <para> - Procedures for determining whether there is a problem and repairing it - if so are discussed at - <ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect creation of GIN index WAL records on big-endian machines - (Tom Lane) - </para> - - <para> - The typical symptom was <quote>unexpected GIN leaf action</> errors - during WAL replay. - </para> - </listitem> - - <listitem> - <para> - Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that - have been updated by a subsequently-aborted transaction - (Álvaro Herrera) - </para> - - <para> - In 9.5 and later, the <command>SELECT</> would sometimes fail to - return such tuples at all. A failure has not been proven to occur in - earlier releases, but might be possible with concurrent updates. - </para> - </listitem> - - <listitem> - <para> - Fix EvalPlanQual rechecks involving CTE scans (Tom Lane) - </para> - - <para> - The recheck would always see the CTE as returning no rows, typically - leading to failure to update rows that were recently updated. - </para> - </listitem> - - <listitem> - <para> - Fix improper repetition of previous results from hashed aggregation in - a subquery (Andrew Gierth) - </para> - - <para> - The test to see if we can reuse a previously-computed hash table of - the aggregate state values neglected the possibility of an outer query - reference appearing in an aggregate argument expression. A change in - the value of such a reference should lead to recalculating the hash - table, but did not. - </para> - </listitem> - - <listitem> - <para> - Fix query-lifespan memory leak in a bulk <command>UPDATE</> on a table - with a <literal>PRIMARY KEY</> or <literal>REPLICA IDENTITY</> index - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <command>EXPLAIN</> to emit valid XML when - <xref linkend="guc-track-io-timing"> is on (Markus Winand) - </para> - - <para> - Previously the XML output-format option produced syntactically invalid - tags such as <literal><I/O-Read-Time></>. That is now - rendered as <literal><I-O-Read-Time></>. - </para> - </listitem> - - <listitem> - <para> - Suppress printing of zeroes for unmeasured times - in <command>EXPLAIN</> (Maksim Milyutin) - </para> - - <para> - Certain option combinations resulted in printing zero values for times - that actually aren't ever measured in that combination. Our general - policy in <command>EXPLAIN</> is not to print such fields at all, so - do that consistently in all cases. - </para> - </listitem> - - <listitem> - <para> - Fix timeout length when <command>VACUUM</> is waiting for exclusive - table lock so that it can truncate the table (Simon Riggs) - </para> - - <para> - The timeout was meant to be 50 milliseconds, but it was actually only - 50 microseconds, causing <command>VACUUM</> to give up on truncation - much more easily than intended. Set it to the intended value. - </para> - </listitem> - - <listitem> - <para> - Fix bugs in merging inherited <literal>CHECK</> constraints while - creating or altering a table (Tom Lane, Amit Langote) - </para> - - <para> - Allow identical <literal>CHECK</> constraints to be added to a parent - and child table in either order. Prevent merging of a valid - constraint from the parent table with a <literal>NOT VALID</> - constraint on the child. Likewise, prevent merging of a <literal>NO - INHERIT</> child constraint with an inherited constraint. - </para> - </listitem> - - <listitem> - <para> - Remove artificial restrictions on the values accepted - by <function>numeric_in()</> and <function>numeric_recv()</> - (Tom Lane) - </para> - - <para> - We allow numeric values up to the limit of the storage format (more - than <literal>1e100000</>), so it seems fairly pointless - that <function>numeric_in()</> rejected scientific-notation exponents - above 1000. Likewise, it was silly for <function>numeric_recv()</> to - reject more than 1000 digits in an input value. - </para> - </listitem> - - <listitem> - <para> - Avoid very-low-probability data corruption due to testing tuple - visibility without holding buffer lock (Thomas Munro, Peter Geoghegan, - Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix logical WAL decoding to work properly when a subtransaction's WAL - output is large enough to spill to disk (Andres Freund) - </para> - </listitem> - - <listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_4_STABLE [10ad15f48] 2016-09-01 11:45:16 -0400 ---> - <para> - Fix buffer overread in logical WAL decoding (Tom Lane) - </para> - - <para> - Logical decoding of a tuple update record read 23 bytes too many, - which was usually harmless but with very bad luck could result in a - crash. - </para> - </listitem> - - <listitem> - <para> - Fix file descriptor leakage when truncating a temporary relation of - more than 1GB (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Disallow starting a standalone backend with <literal>standby_mode</> - turned on (Michael Paquier) - </para> - - <para> - This can't do anything useful, since there will be no WAL receiver - process to fetch more WAL data; and it could result in misbehavior - in code that wasn't designed with this situation in mind. - </para> - </listitem> - - <listitem> - <para> - Properly initialize replication slot state when recycling a - previously-used slot (Michael Paquier) - </para> - - <para> - This failure to reset all of the fields of the slot could - prevent <command>VACUUM</> from removing dead tuples. - </para> - </listitem> - - <listitem> - <para> - Round shared-memory allocation request to a multiple of the actual - huge page size when attempting to use huge pages on Linux (Tom Lane) - </para> - - <para> - This avoids possible failures during <function>munmap()</> on systems - with atypical default huge page sizes. Except in crash-recovery - cases, there were no ill effects other than a log message. - </para> - </listitem> - - <listitem> - <para> - Use a more random value for the dynamic shared memory control - segment's ID (Robert Haas, Tom Lane) - </para> - - <para> - Previously, the same value would be chosen every time, because it was - derived from <function>random()</> but <function>srandom()</> had not - yet been called. While relatively harmless, this was not the intended - behavior. - </para> - </listitem> - - <listitem> - <para> - On Windows, retry creation of the dynamic shared memory control - segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila) - </para> - - <para> - Windows sometimes returns <literal>ERROR_ACCESS_DENIED</> rather - than <literal>ERROR_ALREADY_EXISTS</> when there is an existing - segment. This led to postmaster startup failure due to believing that - the former was an unrecoverable error. - </para> - </listitem> - - <listitem> - <para> - Don't try to share SSL contexts across multiple connections - in <application>libpq</> (Heikki Linnakangas) - </para> - - <para> - This led to assorted corner-case bugs, particularly when trying to use - different SSL parameters for different connections. - </para> - </listitem> - - <listitem> - <para> - Avoid corner-case memory leak in <application>libpq</> (Tom Lane) - </para> - - <para> - The reported problem involved leaking an error report - during <function>PQreset()</>, but there might be related cases. - </para> - </listitem> - - <listitem> - <para> - Make <application>ecpg</>'s <option>--help</> and <option>--version</> - options work consistently with our other executables (Haribabu Kommi) - </para> - </listitem> - - <listitem> - <para> - Fix <application>pgbench</>'s calculation of average latency - (Fabien Coelho) - </para> - - <para> - The calculation was incorrect when there were <literal>\sleep</> - commands in the script, or when the test duration was specified in - number of transactions rather than total time. - </para> - </listitem> - - <listitem> - <para> - In <application>pg_dump</>, never dump range constructor functions - (Tom Lane) - </para> - - <para> - This oversight led to <application>pg_upgrade</> failures with - extensions containing range types, due to duplicate creation of the - constructor functions. - </para> - </listitem> - - <listitem> - <para> - In <application>pg_xlogdump</>, retry opening new WAL segments when - using <option>--follow</> option (Magnus Hagander) - </para> - - <para> - This allows for a possible delay in the server's creation of the next - segment. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_xlogdump</> to cope with a WAL file that begins - with a continuation record spanning more than one page (Pavan - Deolasee) - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/pg_buffercache</> to work - when <varname>shared_buffers</> exceeds 256GB (KaiGai Kohei) - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/intarray/bench/bench.pl</> to print the results - of the <command>EXPLAIN</> it does when given the <option>-e</> option - (Daniel Gustafsson) - </para> - </listitem> - - <listitem> - <para> - Install TAP test infrastructure so that it's available for extension - testing (Craig Ringer) - </para> - - <para> - When <productname>PostgreSQL</> has been configured - with <option>--enable-tap-tests</>, <quote>make install</> will now - install the Perl support files for TAP testing where PGXS can find - them. This allows non-core extensions to - use <literal>$(prove_check)</> without extra tests. - </para> - </listitem> - - <listitem> - <para> - In MSVC builds, include <application>pg_recvlogical</> in a - client-only installation (MauMau) - </para> - </listitem> - - <listitem> - <para> - Update Windows time zone mapping to recognize some time zone names - added in recent Windows versions (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane) - </para> - - <para> - If a dynamic time zone abbreviation does not match any entry in the - referenced time zone, treat it as equivalent to the time zone name. - This avoids unexpected failures when IANA removes abbreviations from - their time zone database, as they did in <application>tzdata</> - release 2016f and seem likely to do again in the future. The - consequences were not limited to not recognizing the individual - abbreviation; any mismatch caused - the <structname>pg_timezone_abbrevs</> view to fail altogether. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2016h - for DST law changes in Palestine and Turkey, plus historical - corrections for Turkey and some regions of Russia. - Switch to numeric abbreviations for some time zones in Antarctica, - the former Soviet Union, and Sri Lanka. - </para> - - <para> - The IANA time zone database previously provided textual abbreviations - for all time zones, sometimes making up abbreviations that have little - or no currency among the local population. They are in process of - reversing that policy in favor of using numeric UTC offsets in zones - where there is no evidence of real-world use of an English - abbreviation. At least for the time being, <productname>PostgreSQL</> - will continue to accept such removed abbreviations for timestamp input. - But they will not be shown in the <structname>pg_timezone_names</> - view nor used for output. - </para> - - <para> - In this update, <literal>AMT</> is no longer shown as being in use to - mean Armenia Time. Therefore, we have changed the <literal>Default</> - abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-9"> - <title>Release 9.4.9</title> - - <formalpara> - <title>Release date:</title> - <para>2016-08-11</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.8. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.9</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.6, - see <xref linkend="release-9-4-6">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix possible mis-evaluation of - nested <literal>CASE</>-<literal>WHEN</> expressions (Heikki - Linnakangas, Michael Paquier, Tom Lane) - </para> - - <para> - A <literal>CASE</> expression appearing within the test value - subexpression of another <literal>CASE</> could become confused about - whether its own test value was null or not. Also, inlining of a SQL - function implementing the equality operator used by - a <literal>CASE</> expression could result in passing the wrong test - value to functions called within a <literal>CASE</> expression in the - SQL function's body. If the test values were of different data - types, a crash might result; moreover such situations could be abused - to allow disclosure of portions of server memory. (CVE-2016-5423) - </para> - </listitem> - - <listitem> - <para> - Fix client programs' handling of special characters in database and - role names (Noah Misch, Nathan Bossart, Michael Paquier) - </para> - - <para> - Numerous places in <application>vacuumdb</> and other client programs - could become confused by database and role names containing double - quotes or backslashes. Tighten up quoting rules to make that safe. - Also, ensure that when a conninfo string is used as a database name - parameter to these programs, it is correctly treated as such throughout. - </para> - - <para> - Fix handling of paired double quotes - in <application>psql</>'s <command>\connect</> - and <command>\password</> commands to match the documentation. - </para> - - <para> - Introduce a new <option>-reuse-previous</> option - in <application>psql</>'s <command>\connect</> command to allow - explicit control of whether to re-use connection parameters from a - previous connection. (Without this, the choice is based on whether - the database name looks like a conninfo string, as before.) This - allows secure handling of database names containing special - characters in <application>pg_dumpall</> scripts. - </para> - - <para> - <application>pg_dumpall</> now refuses to deal with database and role - names containing carriage returns or newlines, as it seems impractical - to quote those characters safely on Windows. In future we may reject - such names on the server side, but that step has not been taken yet. - </para> - - <para> - These are considered security fixes because crafted object names - containing special characters could have been used to execute - commands with superuser privileges the next time a superuser - executes <application>pg_dumpall</> or other routine maintenance - operations. (CVE-2016-5424) - </para> - </listitem> - - <listitem> - <para> - Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT - NULL</> applied to nested composite values (Andrew Gierth, Tom Lane) - </para> - - <para> - The SQL standard specifies that <literal>IS NULL</> should return - TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS - NULL</> yields TRUE), but this is not meant to apply recursively - (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE). - The core executor got this right, but certain planner optimizations - treated the test as recursive (thus producing TRUE in both cases), - and <filename>contrib/postgres_fdw</> could produce remote queries - that misbehaved similarly. - </para> - </listitem> - - <listitem> - <para> - Make the <type>inet</> and <type>cidr</> data types properly reject - IPv6 addresses with too many colon-separated fields (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Prevent crash in <function>close_ps()</> - (the <type>point</> <literal>##</> <type>lseg</> operator) - for NaN input coordinates (Tom Lane) - </para> - - <para> - Make it return NULL instead of crashing. - </para> - </listitem> - - <listitem> - <para> - Avoid possible crash in <function>pg_get_expr()</> when inconsistent - values are passed to it (Michael Paquier, Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix several one-byte buffer over-reads in <function>to_number()</> - (Peter Eisentraut) - </para> - - <para> - In several cases the <function>to_number()</> function would read one - more character than it should from the input string. There is a - small chance of a crash, if the input happens to be adjacent to the - end of memory. - </para> - </listitem> - - <listitem> - <para> - Do not run the planner on the query contained in <literal>CREATE - MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</> - when <literal>WITH NO DATA</> is specified (Michael Paquier, - Tom Lane) - </para> - - <para> - This avoids some unnecessary failure conditions, for example if a - stable function invoked by the materialized view depends on a table - that doesn't exist yet. - </para> - </listitem> - - <listitem> - <para> - Avoid unsafe intermediate state during expensive paths - through <function>heap_update()</> (Masahiko Sawada, Andres Freund) - </para> - - <para> - Previously, these cases locked the target tuple (by setting its XMAX) - but did not WAL-log that action, thus risking data integrity problems - if the page were spilled to disk and then a database crash occurred - before the tuple update could be completed. - </para> - </listitem> - - <listitem> - <para> - Fix hint bit update during WAL replay of row locking operations - (Andres Freund) - </para> - - <para> - The only known consequence of this problem is that row locks held by - a prepared, but uncommitted, transaction might fail to be enforced - after a crash and restart. - </para> - </listitem> - - <listitem> - <para> - Avoid unnecessary <quote>could not serialize access</> errors when - acquiring <literal>FOR KEY SHARE</> row locks in serializable mode - (Álvaro Herrera) - </para> - </listitem> - - <listitem> - <para> - Avoid crash in <literal>postgres -C</> when the specified variable - has a null string value (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Fix possible loss of large subtransactions in logical decoding - (Petru-Florin Mihancea) - </para> - </listitem> - - <listitem> - <para> - Fix failure of logical decoding when a subtransaction contains no - actual changes (Marko Tiikkaja, Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Ensure that backends see up-to-date statistics for shared catalogs - (Tom Lane) - </para> - - <para> - The statistics collector failed to update the statistics file for - shared catalogs after a request from a regular backend. This problem - was partially masked because the autovacuum launcher regularly makes - requests that did cause such updates; however, it became obvious with - autovacuum disabled. - </para> - </listitem> - - <listitem> - <para> - Avoid redundant writes of the statistics files when multiple - backends request updates close together (Tom Lane, Tomas Vondra) - </para> - </listitem> - - <listitem> - <para> - Avoid consuming a transaction ID during <command>VACUUM</> - (Alexander Korotkov) - </para> - - <para> - Some cases in <command>VACUUM</> unnecessarily caused an XID to be - assigned to the current transaction. Normally this is negligible, - but if one is up against the XID wraparound limit, consuming more - XIDs during anti-wraparound vacuums is a very bad thing. - </para> - </listitem> - - <listitem> -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: REL9_4_STABLE [7a0f09da7] 2016-05-25 19:39:49 -0400 -Branch: REL9_3_STABLE [6537a48c5] 2016-05-25 19:39:49 -0400 -Branch: REL9_2_STABLE [294509ea9] 2016-05-25 19:39:49 -0400 -Branch: REL9_1_STABLE [de887cc8a] 2016-05-25 19:39:49 -0400 ---> - <para> - Avoid canceling hot-standby queries during <command>VACUUM FREEZE</> - (Simon Riggs, Álvaro Herrera) - </para> - - <para> - <command>VACUUM FREEZE</> on an otherwise-idle master server could - result in unnecessary cancellations of queries on its standby - servers. - </para> - </listitem> - - <listitem> - <para> - Prevent possible failure when vacuuming multixact IDs in an - installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, - Álvaro Herrera) - </para> - - <para> - The usual symptom of this bug is errors - like <quote>MultiXactId <replaceable>NNN</> has not been created - yet -- apparent wraparound</quote>. - </para> - </listitem> - - <listitem> - <para> - When a manual <command>ANALYZE</> specifies a column list, don't - reset the table's <literal>changes_since_analyze</> counter - (Tom Lane) - </para> - - <para> - If we're only analyzing some columns, we should not prevent routine - auto-analyze from happening for the other columns. - </para> - </listitem> - - <listitem> - <para> - Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</> - for a unique or nearly-unique column with many null entries (Tom - Lane) - </para> - - <para> - The nulls could get counted as though they were themselves distinct - values, leading to serious planner misestimates in some types of - queries. - </para> - </listitem> - - <listitem> - <para> - Prevent autovacuum from starting multiple workers for the same shared - catalog (Álvaro Herrera) - </para> - - <para> - Normally this isn't much of a problem because the vacuum doesn't take - long anyway; but in the case of a severely bloated catalog, it could - result in all but one worker uselessly waiting instead of doing - useful work on other tables. - </para> - </listitem> - - <listitem> - <para> - Avoid duplicate buffer lock release when abandoning a b-tree index - page deletion attempt (Tom Lane) - </para> - - <para> - This mistake prevented <command>VACUUM</> from completing in some - cases involving corrupt b-tree indexes. - </para> - </listitem> - - <listitem> - <para> - Prevent infinite loop in GiST index build for geometric columns - containing NaN component values (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <filename>contrib/btree_gin</> to handle the smallest - possible <type>bigint</> value correctly (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Teach libpq to correctly decode server version from future servers - (Peter Eisentraut) - </para> - - <para> - It's planned to switch to two-part instead of three-part server - version numbers for releases after 9.6. Make sure - that <function>PQserverVersion()</> returns the correct value for - such cases. - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</>'s code for <literal>unsigned long long</> - array elements (Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - In <application>pg_dump</> with both <option>-c</> and <option>-C</> - options, avoid emitting an unwanted <literal>CREATE SCHEMA public</> - command (David Johnston, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Improve handling of <systemitem>SIGTERM</>/control-C in - parallel <application>pg_dump</> and <application>pg_restore</> (Tom - Lane) - </para> - - <para> - Make sure that the worker processes will exit promptly, and also arrange - to send query-cancel requests to the connected backends, in case they - are doing something long-running such as a <command>CREATE INDEX</>. - </para> - </listitem> - - <listitem> - <para> - Fix error reporting in parallel <application>pg_dump</> - and <application>pg_restore</> (Tom Lane) - </para> - - <para> - Previously, errors reported by <application>pg_dump</> - or <application>pg_restore</> worker processes might never make it to - the user's console, because the messages went through the master - process, and there were various deadlock scenarios that would prevent - the master process from passing on the messages. Instead, just print - everything to <literal>stderr</>. In some cases this will result in - duplicate messages (for instance, if all the workers report a server - shutdown), but that seems better than no message. - </para> - </listitem> - - <listitem> - <para> - Ensure that parallel <application>pg_dump</> - or <application>pg_restore</> on Windows will shut down properly - after an error (Kyotaro Horiguchi) - </para> - - <para> - Previously, it would report the error, but then just sit until - manually stopped by the user. - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_dump</> behave better when built without zlib - support (Kyotaro Horiguchi) - </para> - - <para> - It didn't work right for parallel dumps, and emitted some rather - pointless warnings in other cases. - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_basebackup</> accept <literal>-Z 0</> as - specifying no compression (Fujii Masao) - </para> - </listitem> - - <listitem> - <para> - Fix makefiles' rule for building AIX shared libraries to be safe for - parallel make (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - Fix TAP tests and MSVC scripts to work when build directory's path - name contains spaces (Michael Paquier, Kyotaro Horiguchi) - </para> - </listitem> - - <listitem> - <para> - Be more predictable about reporting <quote>statement timeout</> - versus <quote>lock timeout</> (Tom Lane) - </para> - - <para> - On heavily loaded machines, the regression tests sometimes failed due - to reporting <quote>lock timeout</> even though the statement timeout - should have occurred first. - </para> - </listitem> - - <listitem> - <para> - Make regression tests safe for Danish and Welsh locales (Jeff Janes, - Tom Lane) - </para> - - <para> - Change some test data that triggered the unusual sorting rules of - these locales. - </para> - </listitem> - - <listitem> - <para> - Update our copy of the timezone code to match - IANA's <application>tzcode</> release 2016c (Tom Lane) - </para> - - <para> - This is needed to cope with anticipated future changes in the time - zone data files. It also fixes some corner-case bugs in coping with - unusual time zones. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2016f - for DST law changes in Kemerovo and Novosibirsk, plus historical - corrections for Azerbaijan, Belarus, and Morocco. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-8"> - <title>Release 9.4.8</title> - - <formalpara> - <title>Release date:</title> - <para>2016-05-12</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.7. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.8</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.6, - see <xref linkend="release-9-4-6">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Clear the OpenSSL error queue before OpenSSL calls, rather than - assuming it's clear already; and make sure we leave it clear - afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut) - </para> - - <para> - This change prevents problems when there are multiple connections - using OpenSSL within a single process and not all the code involved - follows the same rules for when to clear the error queue. - Failures have been reported specifically when a client application - uses SSL connections in <application>libpq</> concurrently with - SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL. - It's possible for similar problems to arise within the server as well, - if an extension module establishes an outgoing SSL connection. - </para> - </listitem> - - <listitem> - <para> - Fix <quote>failed to build any <replaceable>N</>-way joins</quote> - planner error with a full join enclosed in the right-hand side of a - left join (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix incorrect handling of equivalence-class tests in multilevel - nestloop plans (Tom Lane) - </para> - - <para> - Given a three-or-more-way equivalence class of variables, such - as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit - some of the tests needed to enforce that all the variables are actually - equal, leading to join rows being output that didn't satisfy - the <literal>WHERE</> clauses. For various reasons, erroneous plans - were seldom selected in practice, so that this bug has gone undetected - for a long time. - </para> - </listitem> - - <listitem> - <para> - Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud) - </para> - </listitem> - - <listitem> - <para> - Fix query-lifespan memory leak and potential index corruption hazard in - GIN index insertion (Tom Lane) - </para> - - <para> - The memory leak would typically not amount to much in simple queries, - but it could be very substantial during a large GIN index build with - high <varname>maintenance_work_mem</>. - </para> - </listitem> - - <listitem> - <para> - Fix possible misbehavior of <literal>TH</>, <literal>th</>, - and <literal>Y,YYY</> format codes in <function>to_timestamp()</> - (Tom Lane) - </para> - - <para> - These could advance off the end of the input string, causing subsequent - format codes to read garbage. - </para> - </listitem> - - <listitem> - <para> - Fix dumping of rules and views in which the <replaceable>array</> - argument of a <literal><replaceable>value</> <replaceable>operator</> - ANY (<replaceable>array</>)</literal> construct is a sub-SELECT - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Disallow newlines in <command>ALTER SYSTEM</> parameter values - (Tom Lane) - </para> - - <para> - The configuration-file parser doesn't support embedded newlines in - string literals, so we mustn't allow them in values to be inserted - by <command>ALTER SYSTEM</>. - </para> - </listitem> - - <listitem> - <para> - Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</> to - work properly if an index on OID is selected (David Rowley) - </para> - </listitem> - - <listitem> - <para> - Fix crash in logical decoding on alignment-picky platforms (Tom Lane, - Andres Freund) - </para> - - <para> - The failure occurred only with a transaction large enough to spill to - disk and a primary-key change within that transaction. - </para> - </listitem> - - <listitem> - <para> - Avoid repeated requests for feedback from receiver while shutting down - walsender (Nick Cleaton) - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_regress</> use a startup timeout from the - <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane) - </para> - - <para> - This is for consistency with a behavior recently added - to <application>pg_ctl</>; it eases automated testing on slow machines. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</> to correctly restore extension - membership for operator families containing only one operator class - (Tom Lane) - </para> - - <para> - In such a case, the operator family was restored into the new database, - but it was no longer marked as part of the extension. This had no - immediate ill effects, but would cause later <application>pg_dump</> - runs to emit output that would cause (harmless) errors on restore. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules - differ from old (Tom Lane) - </para> - - <para> - <application>pg_upgrade</> had special-case code to handle the - situation where the new <productname>PostgreSQL</> version thinks that - a table should have a TOAST table while the old version did not. That - code was broken, so remove it, and instead do nothing in such cases; - there seems no reason to believe that we can't get along fine without - a TOAST table if that was okay according to the old version's rules. - </para> - </listitem> - - <listitem> - <para> - Reduce the number of SysV semaphores used by a build configured with - <option>--disable-spinlocks</> (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Rename internal function <function>strtoi()</> - to <function>strtoint()</> to avoid conflict with a NetBSD library - function (Thomas Munro) - </para> - </listitem> - - <listitem> - <para> - Fix reporting of errors from <function>bind()</> - and <function>listen()</> system calls on Windows (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Reduce verbosity of compiler output when building with Microsoft Visual - Studio (Christian Ullrich) - </para> - </listitem> - - <listitem> - <para> - Fix <function>putenv()</> to work properly with Visual Studio 2013 - (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Avoid possibly-unsafe use of Windows' <function>FormatMessage()</> - function (Christian Ullrich) - </para> - - <para> - Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where - appropriate. No live bug is known to exist here, but it seems like a - good idea to be careful. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2016d - for DST law changes in Russia and Venezuela. There are new zone - names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect - the fact that these regions now have different time zone histories from - adjacent regions. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-7"> - <title>Release 9.4.7</title> - - <formalpara> - <title>Release date:</title> - <para>2016-03-31</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.6. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.7</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.6, - see <xref linkend="release-9-4-6">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - - <listitem> - <para> - Fix incorrect handling of NULL index entries in - indexed <literal>ROW()</> comparisons (Tom Lane) - </para> - - <para> - An index search using a row comparison such as <literal>ROW(a, b) > - ROW('x', 'y')</> would stop upon reaching a NULL entry in - the <structfield>b</> column, ignoring the fact that there might be - non-NULL <structfield>b</> values associated with later values - of <structfield>a</>. - </para> - </listitem> - - <listitem> - <para> - Avoid unlikely data-loss scenarios due to renaming files without - adequate <function>fsync()</> calls before and after (Michael Paquier, - Tomas Vondra, Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Fix bug in <function>json_to_record()</> when a field of its input - object contains a sub-object with a field name matching one of the - requested output column names (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix misformatting of negative time zone offsets - by <function>to_char()</>'s <literal>OF</> format code - (Thomas Munro, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Ignore <xref linkend="recovery-min-apply-delay"> parameter until - recovery has reached a consistent state (Michael Paquier) - </para> - - <para> - Previously, standby servers would delay application of WAL records in - response to <varname>recovery_min_apply_delay</> even while replaying - the initial portion of WAL needed to make their database state valid. - Since the standby is useless until it's reached a consistent database - state, this was deemed unhelpful. - </para> - </listitem> - - <listitem> - <para> - Correctly handle cases where <literal>pg_subtrans</> is close to XID - wraparound during server startup (Jeff Janes) - </para> - </listitem> - - <listitem> - <para> - Fix assorted bugs in logical decoding (Andres Freund) - </para> - - <para> - Trouble cases included tuples larger than one page when replica - identity is <literal>FULL</>, <command>UPDATE</>s that change a - primary key within a transaction large enough to be spooled to disk, - incorrect reports of <quote>subxact logged without previous toplevel - record</>, and incorrect reporting of a transaction's commit time. - </para> - </listitem> - - <listitem> - <para> - Fix planner error with nested security barrier views when the outer - view has a <literal>WHERE</> clause containing a correlated subquery - (Dean Rasheed) - </para> - </listitem> - - <listitem> - <para> - Fix corner-case crash due to trying to free <function>localeconv()</> - output strings more than once (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix parsing of affix files for <literal>ispell</> dictionaries - (Tom Lane) - </para> - - <para> - The code could go wrong if the affix file contained any characters - whose byte length changes during case-folding, for - example <literal>I</> in Turkish UTF8 locales. - </para> - </listitem> - - <listitem> - <para> - Avoid use of <function>sscanf()</> to parse <literal>ispell</> - dictionary files (Artur Zakirov) - </para> - - <para> - This dodges a portability problem on FreeBSD-derived platforms - (including macOS). - </para> - </listitem> - - <listitem> - <para> - Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an - AVX2-capable CPU and a Postgres build done with Visual Studio 2013 - (Christian Ullrich) - </para> - - <para> - This is a workaround for a bug in Visual Studio 2013's runtime - library, which Microsoft have stated they will not fix in that - version. - </para> - </listitem> - - <listitem> - <para> - Fix <application>psql</>'s tab completion logic to handle multibyte - characters properly (Kyotaro Horiguchi, Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Fix <application>psql</>'s tab completion for - <literal>SECURITY LABEL</> (Tom Lane) - </para> - - <para> - Pressing TAB after <literal>SECURITY LABEL</> might cause a crash - or offering of inappropriate keywords. - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_ctl</> accept a wait timeout from the - <envar>PGCTLTIMEOUT</> environment variable, if none is specified on - the command line (Noah Misch) - </para> - - <para> - This eases testing of slower buildfarm members by allowing them - to globally specify a longer-than-normal timeout for postmaster - startup and shutdown. - </para> - </listitem> - - <listitem> - <para> - Fix incorrect test for Windows service status - in <application>pg_ctl</> (Manuel Mathar) - </para> - - <para> - The previous set of minor releases attempted to - fix <application>pg_ctl</> to properly determine whether to send log - messages to Window's Event Log, but got the test backwards. - </para> - </listitem> - - <listitem> - <para> - Fix <application>pgbench</> to correctly handle the combination - of <literal>-C</> and <literal>-M prepared</> options (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - In <application>pg_upgrade</>, skip creating a deletion script when - the new data directory is inside the old data directory (Bruce - Momjian) - </para> - - <para> - Blind application of the script in such cases would result in loss of - the new data directory. - </para> - </listitem> - - <listitem> - <para> - In PL/Perl, properly translate empty Postgres arrays into empty Perl - arrays (Alex Hunsaker) - </para> - </listitem> - - <listitem> - <para> - Make PL/Python cope with function names that aren't valid Python - identifiers (Jim Nasby) - </para> - </listitem> - - <listitem> - <para> - Fix multiple mistakes in the statistics returned - by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</> - function (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Remove dependency on <literal>psed</> in MSVC builds, since it's no - longer provided by core Perl (Michael Paquier, Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2016c - for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia - (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus - historical corrections for Lithuania, Moldova, and Russia - (Kaliningrad, Samara, Volgograd). - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-6"> - <title>Release 9.4.6</title> - - <formalpara> - <title>Release date:</title> - <para>2016-02-11</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.5. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.6</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading an installation that contains any GIN - indexes that use the (non-default) <literal>jsonb_path_ops</> operator - class, see the first changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.4, - see <xref linkend="release-9-4-4">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b23af4587] 2015-11-05 18:15:48 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [4d867458f] 2015-11-05 18:15:48 -0500 -Branch: REL9_4_STABLE [788e35ac0] 2015-11-05 18:15:48 -0500 ---> - - <listitem> - <para> - Fix inconsistent hash calculations in <literal>jsonb_path_ops</> GIN - indexes (Tom Lane) - </para> - - <para> - When processing <type>jsonb</> values that contain both scalars and - sub-objects at the same nesting level, for example an array containing - both scalars and sub-arrays, key hash values could be calculated - differently than they would be for the same key in a different context. - This could result in queries not finding entries that they should find. - Fixing this means that existing indexes may now be inconsistent with the - new hash calculation code. Users - should <command>REINDEX</> <literal>jsonb_path_ops</> GIN indexes after - installing this update to make sure that all searches work as expected. - </para> - </listitem> - - <listitem> - <para> - Fix infinite loops and buffer-overrun problems in regular expressions - (Tom Lane) - </para> - - <para> - Very large character ranges in bracket expressions could cause - infinite loops in some cases, and memory overwrites in other cases. - (CVE-2016-0773) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [7e2a18a91] 2015-10-06 17:15:52 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [02580df6c] 2015-10-06 17:15:27 -0400 -Branch: REL9_4_STABLE [3d701277f] 2015-10-06 17:15:27 -0400 -Branch: REL9_3_STABLE [31bc563b9] 2015-10-06 17:15:27 -0400 -Branch: REL9_2_STABLE [3d10f3970] 2015-10-06 17:15:27 -0400 -Branch: REL9_1_STABLE [dea6da132] 2015-10-06 17:15:27 -0400 ---> - - <listitem> - <para> - Perform an immediate shutdown if the <filename>postmaster.pid</> file - is removed (Tom Lane) - </para> - - <para> - The postmaster now checks every minute or so - that <filename>postmaster.pid</> is still there and still contains its - own PID. If not, it performs an immediate shutdown, as though it had - received <systemitem>SIGQUIT</>. The main motivation for this change - is to ensure that failed buildfarm runs will get cleaned up without - manual intervention; but it also serves to limit the bad effects if a - DBA forcibly removes <filename>postmaster.pid</> and then starts a new - postmaster. - </para> - </listitem> - -<!-- -Author: Kevin Grittner <kgrittn@postgresql.org> -Branch: master [585e2a3b1] 2015-10-31 14:43:34 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [50ca917d9] 2015-10-31 14:42:46 -0500 -Branch: REL9_4_STABLE [1d95617f7] 2015-10-31 14:45:15 -0500 -Branch: REL9_3_STABLE [18479293c] 2015-10-31 14:46:57 -0500 -Branch: REL9_2_STABLE [caff7fc3f] 2015-10-31 14:36:37 -0500 -Branch: REL9_1_STABLE [08322daed] 2015-10-31 14:36:58 -0500 ---> - - <listitem> - <para> - In <literal>SERIALIZABLE</> transaction isolation mode, serialization - anomalies could be missed due to race conditions during insertions - (Kevin Grittner, Thomas Munro) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [f54d0629e] 2015-12-12 14:17:39 +0100 -Branch: REL9_5_STABLE Release: REL9_5_0 [ada9c09ae] 2015-12-12 14:19:19 +0100 -Branch: REL9_4_STABLE [d638aeef6] 2015-12-12 14:19:23 +0100 -Branch: REL9_3_STABLE [9037bdc88] 2015-12-12 14:19:25 +0100 -Branch: REL9_2_STABLE [a15ad6708] 2015-12-12 14:19:51 +0100 -Branch: REL9_1_STABLE [5f9a86b35] 2015-12-12 14:19:29 +0100 ---> - - <listitem> - <para> - Fix failure to emit appropriate WAL records when doing <literal>ALTER - TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier, - Andres Freund) - </para> - - <para> - Even though the relation's data is unlogged, the move must be logged or - the relation will be inaccessible after a standby is promoted to master. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [e3f4cfc7a] 2015-12-10 16:29:26 +0100 -Branch: REL9_5_STABLE Release: REL9_5_0 [5b51805fe] 2015-12-10 16:39:25 +0100 -Branch: REL9_4_STABLE [c6a67bbc7] 2015-12-10 16:29:26 +0100 -Branch: REL9_3_STABLE [b19405a44] 2015-12-10 16:29:27 +0100 -Branch: REL9_2_STABLE [2de281da2] 2015-12-10 16:29:27 +0100 -Branch: REL9_1_STABLE [3199c13fc] 2015-12-10 16:29:27 +0100 ---> - - <listitem> - <para> - Fix possible misinitialization of unlogged relations at the end of - crash recovery (Andres Freund, Michael Paquier) - </para> - </listitem> - -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [263c19572] 2015-12-13 16:46:56 +0100 -Branch: REL9_5_STABLE Release: REL9_5_0 [a9c56ff0e] 2015-12-13 16:43:35 +0100 -Branch: REL9_4_STABLE [61c7bee21] 2015-12-13 16:43:52 +0100 -Branch: REL9_3_STABLE [a1fb84990] 2015-12-13 16:44:04 +0100 ---> - - <listitem> - <para> - Ensure walsender slots are fully re-initialized when being re-used - (Magnus Hagander) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [074c5cfbf] 2015-11-20 14:55:47 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [a35c5b7c1] 2015-11-20 14:55:28 -0500 -Branch: REL9_4_STABLE [47ea4614e] 2015-11-20 14:55:28 -0500 -Branch: REL9_3_STABLE [64349f1d2] 2015-11-20 14:55:29 -0500 -Branch: REL9_2_STABLE [c49279dfd] 2015-11-20 14:55:29 -0500 -Branch: REL9_1_STABLE [60ba32cb5] 2015-11-20 14:55:29 -0500 ---> - - <listitem> - <para> - Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check - constraints properly (Tom Lane) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: REL9_4_STABLE [d07afa42d] 2015-12-21 19:49:15 -0300 -Branch: REL9_3_STABLE [bc72c3b3f] 2015-12-21 19:49:15 -0300 -Branch: REL9_2_STABLE [f9643d0d6] 2015-12-21 19:49:15 -0300 -Branch: REL9_1_STABLE [7e29e7f55] 2015-12-21 19:49:15 -0300 ---> - - <listitem> - <para> - Fix <command>REASSIGN OWNED</> to change ownership of composite types - properly (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: REL9_4_STABLE [2c8ae6442] 2015-12-21 19:16:15 -0300 -Branch: REL9_3_STABLE [62e6eba8d] 2015-12-21 19:16:15 -0300 -Branch: REL9_2_STABLE [7af3dd540] 2015-12-21 19:16:15 -0300 -Branch: REL9_1_STABLE [ab14c1383] 2015-12-21 19:16:15 -0300 ---> - - <listitem> - <para> - Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly - update granted-permissions lists when changing owners of data types, - foreign data wrappers, or foreign servers (Bruce Momjian, - Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [8c1615531] 2015-12-11 18:39:09 -0300 -Branch: REL9_5_STABLE Release: REL9_5_0 [31f88a12a] 2015-12-11 18:39:09 -0300 -Branch: REL9_4_STABLE [1f8757ad8] 2015-12-11 18:39:09 -0300 -Branch: REL9_3_STABLE [4626245bc] 2015-12-11 18:39:09 -0300 -Branch: REL9_2_STABLE [629842a8e] 2015-12-11 18:39:09 -0300 -Branch: REL9_1_STABLE [f44c5203b] 2015-12-11 18:39:09 -0300 ---> - - <listitem> - <para> - Fix <command>REASSIGN OWNED</> to ignore foreign user mappings, - rather than fail (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [6f8cb1e23] 2015-12-21 10:34:14 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [496943ec2] 2015-12-21 10:34:20 -0500 -Branch: REL9_4_STABLE [f02137da8] 2015-12-21 10:34:23 -0500 -Branch: REL9_3_STABLE [4271ed386] 2015-12-21 10:34:28 -0500 ---> - - <listitem> - <para> - Fix possible crash after doing query rewrite for an updatable view - (Stephen Frost) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [acfcd45ca] 2015-12-11 14:22:20 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [564c19e86] 2015-12-11 14:22:20 -0500 -Branch: REL9_4_STABLE [7ad696066] 2015-12-11 14:22:20 -0500 -Branch: REL9_3_STABLE [260590e6b] 2015-12-11 14:22:20 -0500 -Branch: master [7e19db0c0] 2015-12-07 17:42:11 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [25517ee14] 2015-12-07 17:41:45 -0500 -Branch: REL9_4_STABLE [0901d68ba] 2015-12-07 17:41:45 -0500 -Branch: REL9_3_STABLE [0a34ff7e9] 2015-12-07 17:41:45 -0500 ---> - - <listitem> - <para> - Fix planner's handling of <literal>LATERAL</> references (Tom - Lane) - </para> - - <para> - This fixes some corner cases that led to <quote>failed to build any - N-way joins</> or <quote>could not devise a query plan</> planner - failures. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3c93a60f6] 2016-01-01 13:42:21 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [d932391fd] 2016-01-01 13:42:30 -0500 -Branch: REL9_4_STABLE [76eccf07b] 2016-01-01 13:42:35 -0500 -Branch: REL9_3_STABLE [94114469f] 2016-01-01 13:42:39 -0500 -Branch: REL9_2_STABLE [8e79b24c5] 2016-01-01 13:42:43 -0500 -Branch: REL9_1_STABLE [60f8cc91d] 2016-01-01 13:42:48 -0500 ---> - - <listitem> - <para> - Add more defenses against bad planner cost estimates for GIN index - scans when the index's internal statistics are very out-of-date - (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [7fb008c5e] 2015-12-01 16:24:34 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [e9986a811] 2015-12-01 16:24:34 -0500 -Branch: REL9_4_STABLE [ab14e0e4c] 2015-12-01 16:24:34 -0500 -Branch: REL9_3_STABLE [52774e52d] 2015-12-01 16:24:34 -0500 -Branch: REL9_2_STABLE [3d4bdd2f9] 2015-12-01 16:24:35 -0500 -Branch: REL9_1_STABLE [7882143dc] 2015-12-01 16:24:35 -0500 ---> - - <listitem> - <para> - Make planner cope with hypothetical GIN indexes suggested by an index - advisor plug-in (Julien Rouhaud) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8004953b5] 2015-11-16 13:45:17 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [34d4f49bb] 2015-11-16 13:45:17 -0500 -Branch: REL9_4_STABLE [a6c4c07fc] 2015-11-16 13:45:17 -0500 -Branch: REL9_3_STABLE [faf18a905] 2015-11-16 13:45:17 -0500 ---> - - <listitem> - <para> - Speed up generation of unique table aliases in <command>EXPLAIN</> and - rule dumping, and ensure that generated aliases do not - exceed <literal>NAMEDATALEN</> (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [7745bc352] 2015-11-15 14:41:09 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [0489a048d] 2015-11-15 14:41:09 -0500 -Branch: REL9_4_STABLE [d33ab56b0] 2015-11-15 14:41:09 -0500 -Branch: REL9_3_STABLE [7d0e87208] 2015-11-15 14:41:09 -0500 -Branch: REL9_2_STABLE [ed824cf80] 2015-11-15 14:41:09 -0500 -Branch: REL9_1_STABLE [7b21d1bca] 2015-11-15 14:41:09 -0500 ---> - - <listitem> - <para> - Fix dumping of whole-row Vars in <literal>ROW()</> - and <literal>VALUES()</> lists (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d43554258] 2015-10-20 11:07:04 -0700 -Branch: REL9_5_STABLE Release: REL9_5_0 [5fb20a5ba] 2015-10-20 11:07:05 -0700 -Branch: REL9_4_STABLE [4f33572ee] 2015-10-20 11:06:24 -0700 ---> - - <listitem> - <para> - Translation of minus-infinity dates and timestamps to <type>json</> - or <type>jsonb</> incorrectly rendered them as plus-infinity (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [5f10b7a60] 2015-11-17 15:46:47 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [80be41979] 2015-11-17 15:46:54 -0500 -Branch: REL9_4_STABLE [cc95595e0] 2015-11-17 15:46:59 -0500 -Branch: REL9_3_STABLE [7df6dc405] 2015-11-17 15:47:03 -0500 -Branch: REL9_2_STABLE [c47bdb372] 2015-11-17 15:47:08 -0500 -Branch: REL9_1_STABLE [728a2ac21] 2015-11-17 15:47:12 -0500 ---> - - <listitem> - <para> - Fix possible internal overflow in <type>numeric</> division - (Dean Rasheed) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a43b4ab11] 2015-11-07 12:43:24 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [44fc25153] 2015-11-07 12:43:24 -0500 -Branch: REL9_4_STABLE [f69c01f2c] 2015-11-07 12:43:24 -0500 -Branch: REL9_3_STABLE [8db652359] 2015-11-07 12:43:24 -0500 -Branch: REL9_2_STABLE [bfb10db81] 2015-11-07 12:43:24 -0500 -Branch: REL9_1_STABLE [03ee6591d] 2015-11-07 12:43:24 -0500 ---> - - <listitem> - <para> - Fix enforcement of restrictions inside parentheses within regular - expression lookahead constraints (Tom Lane) - </para> - - <para> - Lookahead constraints aren't allowed to contain backrefs, and - parentheses within them are always considered non-capturing, according - to the manual. However, the code failed to handle these cases properly - inside a parenthesized subexpression, and would give unexpected - results. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9f1e642d5] 2015-10-19 13:54:53 -0700 -Branch: REL9_5_STABLE Release: REL9_5_0 [43e36f8dd] 2015-10-19 13:54:53 -0700 -Branch: REL9_4_STABLE [52f21c588] 2015-10-19 13:54:53 -0700 -Branch: REL9_3_STABLE [e69d4756e] 2015-10-19 13:54:54 -0700 -Branch: REL9_2_STABLE [05e62ff59] 2015-10-19 13:54:54 -0700 -Branch: REL9_1_STABLE [0ce829caf] 2015-10-19 13:54:54 -0700 ---> - - <listitem> - <para> - Conversion of regular expressions to indexscan bounds could produce - incorrect bounds from regexps containing lookahead constraints - (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [48789c5d2] 2015-10-16 15:55:58 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [0889e1857] 2015-10-16 15:56:00 -0400 -Branch: REL9_4_STABLE [b6eb5fc40] 2015-10-16 14:14:41 -0400 -Branch: REL9_3_STABLE [6e4dda796] 2015-10-16 14:14:41 -0400 -Branch: REL9_2_STABLE [83c34825e] 2015-10-16 14:14:41 -0400 -Branch: REL9_1_STABLE [d394f12c0] 2015-10-16 14:14:41 -0400 ---> - - <listitem> - <para> - Fix regular-expression compiler to handle loops of constraint arcs - (Tom Lane) - </para> - - <para> - The code added for CVE-2007-4772 was both incomplete, in that it didn't - handle loops involving more than one state, and incorrect, in that it - could cause assertion failures (though there seem to be no bad - consequences of that in a non-assert build). Multi-state loops would - cause the compiler to run until the query was canceled or it reached - the too-many-states error condition. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [538b3b8b3] 2015-10-16 15:55:59 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [e91cfdead] 2015-10-16 15:56:00 -0400 -Branch: REL9_4_STABLE [0ecf4a9e5] 2015-10-16 15:36:17 -0400 -Branch: REL9_3_STABLE [ad5e5a62a] 2015-10-16 15:36:17 -0400 -Branch: REL9_2_STABLE [4e4610a8a] 2015-10-16 15:36:17 -0400 -Branch: REL9_1_STABLE [b94c2b6a6] 2015-10-16 15:36:17 -0400 ---> - - <listitem> - <para> - Improve memory-usage accounting in regular-expression compiler - (Tom Lane) - </para> - - <para> - This causes the code to emit <quote>regular expression is too - complex</> errors in some cases that previously used unreasonable - amounts of time and memory. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [6a7153661] 2015-10-16 15:55:59 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [1bb0fbca3] 2015-10-16 15:56:00 -0400 -Branch: REL9_4_STABLE [9774fda86] 2015-10-16 15:11:49 -0400 -Branch: REL9_3_STABLE [2a8d6e4d0] 2015-10-16 15:11:49 -0400 -Branch: REL9_2_STABLE [a257b808a] 2015-10-16 15:11:49 -0400 -Branch: REL9_1_STABLE [067f96fe3] 2015-10-16 15:11:49 -0400 -Branch: master [f5b7d103b] 2015-10-16 15:55:59 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [e9cf3dc30] 2015-10-16 15:56:00 -0400 -Branch: REL9_4_STABLE [8cf4eed0b] 2015-10-16 14:58:11 -0400 -Branch: REL9_3_STABLE [677e64cb8] 2015-10-16 14:58:11 -0400 -Branch: REL9_2_STABLE [18b032f8f] 2015-10-16 14:58:11 -0400 -Branch: REL9_1_STABLE [5503e6e0f] 2015-10-16 14:58:11 -0400 -Branch: master [579840ca0] 2015-10-16 15:55:59 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [cff9e0659] 2015-10-16 15:56:00 -0400 -Branch: REL9_4_STABLE [bdde29e1c] 2015-10-16 14:43:18 -0400 -Branch: REL9_3_STABLE [296241635] 2015-10-16 14:43:18 -0400 -Branch: REL9_2_STABLE [a2ad467ae] 2015-10-16 14:43:18 -0400 -Branch: REL9_1_STABLE [b00c79b5b] 2015-10-16 14:43:18 -0400 ---> - - <listitem> - <para> - Improve performance of regular-expression compiler (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Make <literal>%h</> and <literal>%r</> escapes - in <varname>log_line_prefix</> work for messages emitted due - to <varname>log_connections</> (Tom Lane) - </para> - - <para> - Previously, <literal>%h</>/<literal>%r</> started to work just after a - new session had emitted the <quote>connection received</> log message; - now they work for that message too. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [869f693a3] 2015-10-13 11:21:33 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [39ac29394] 2015-10-13 11:21:33 -0400 -Branch: REL9_4_STABLE [44a6e24fb] 2015-10-13 11:21:33 -0400 -Branch: REL9_3_STABLE [bc6b03bb8] 2015-10-13 11:21:33 -0400 -Branch: REL9_2_STABLE [39cd1bdb8] 2015-10-13 11:21:33 -0400 -Branch: REL9_1_STABLE [b0d858359] 2015-10-13 11:21:33 -0400 ---> - - <listitem> - <para> - On Windows, ensure the shared-memory mapping handle gets closed in - child processes that don't need it (Tom Lane, Amit Kapila) - </para> - - <para> - This oversight resulted in failure to recover from crashes - whenever <varname>logging_collector</> is turned on. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_4_STABLE [add6d821b] 2016-01-04 17:41:33 -0500 -Branch: REL9_3_STABLE [0f527f73b] 2016-01-04 17:41:33 -0500 -Branch: REL9_2_STABLE [9b2eacba7] 2016-01-04 17:41:33 -0500 -Branch: REL9_1_STABLE [d05103b77] 2016-01-04 17:41:33 -0500 ---> - - <listitem> - <para> - Fix possible failure to detect socket EOF in non-blocking mode on - Windows (Tom Lane) - </para> - - <para> - It's not entirely clear whether this problem can happen in pre-9.5 - branches, but if it did, the symptom would be that a walsender process - would wait indefinitely rather than noticing a loss of connection. - </para> - </listitem> - - <listitem> - <para> - Avoid leaking a token handle during SSPI authentication - (Christian Ullrich) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [2ec477dc8] 2015-12-16 16:59:35 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [f1c152866] 2015-12-16 16:58:55 -0500 -Branch: REL9_4_STABLE [e168dfef6] 2015-12-16 16:58:55 -0500 -Branch: REL9_3_STABLE [9afe392dc] 2015-12-16 16:58:56 -0500 -Branch: REL9_2_STABLE [bcce4a5e3] 2015-12-16 16:58:56 -0500 -Branch: REL9_1_STABLE [03b138e90] 2015-12-16 16:58:56 -0500 -Branch: master [aee7705be] 2015-12-17 16:55:23 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [5ec0aad01] 2015-12-17 16:55:33 -0500 -Branch: REL9_4_STABLE [acb6c64f4] 2015-12-17 16:55:39 -0500 -Branch: REL9_3_STABLE [09b7abc27] 2015-12-17 16:55:43 -0500 -Branch: REL9_2_STABLE [b41777988] 2015-12-17 16:55:47 -0500 -Branch: REL9_1_STABLE [db462a44e] 2015-12-17 16:55:51 -0500 ---> - - <listitem> - <para> - In <application>psql</>, ensure that <application>libreadline</>'s idea - of the screen size is updated when the terminal window size changes - (Merlin Moncure) - </para> - - <para> - Previously, <application>libreadline</> did not notice if the window - was resized during query output, leading to strange behavior during - later input of multiline queries. - </para> - </listitem> - - <listitem> - <para> - Fix <application>psql</>'s <literal>\det</> command to interpret its - pattern argument the same way as other <literal>\d</> commands with - potentially schema-qualified patterns do (Reece Hart) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c5ef8ce53] 2015-11-25 17:31:53 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [55a2cc844] 2015-11-25 17:31:53 -0500 -Branch: REL9_4_STABLE [3d357b48f] 2015-11-25 17:31:53 -0500 -Branch: REL9_3_STABLE [64b7079e5] 2015-11-25 17:31:53 -0500 -Branch: REL9_2_STABLE [d44b4deaa] 2015-11-25 17:31:54 -0500 -Branch: REL9_1_STABLE [6430a11fa] 2015-11-25 17:31:54 -0500 ---> - - <listitem> - <para> - Avoid possible crash in <application>psql</>'s <literal>\c</> command - when previous connection was via Unix socket and command specifies a - new hostname and same username (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [6bcce2580] 2015-10-12 18:30:36 -0400 -Branch: REL9_5_STABLE Release: REL9_5_0 [a151a5c38] 2015-10-12 18:30:36 -0400 -Branch: REL9_4_STABLE [57f54b5e4] 2015-10-12 18:30:36 -0400 -Branch: REL9_3_STABLE [dfe572de0] 2015-10-12 18:30:37 -0400 -Branch: REL9_2_STABLE [250108b6f] 2015-10-12 18:30:37 -0400 -Branch: REL9_1_STABLE [c869a7d5b] 2015-10-12 18:30:37 -0400 ---> - - <listitem> - <para> - In <literal>pg_ctl start -w</>, test child process status directly - rather than relying on heuristics (Tom Lane, Michael Paquier) - </para> - - <para> - Previously, <application>pg_ctl</> relied on an assumption that the new - postmaster would always create <filename>postmaster.pid</> within five - seconds. But that can fail on heavily-loaded systems, - causing <application>pg_ctl</> to report incorrectly that the - postmaster failed to start. - </para> - - <para> - Except on Windows, this change also means that a <literal>pg_ctl start - -w</> done immediately after another such command will now reliably - fail, whereas previously it would report success if done within two - seconds of the first command. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [fed19f312] 2015-11-08 17:28:53 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [bdb42bac3] 2015-11-08 17:29:47 -0500 -Branch: REL9_4_STABLE [24379a45c] 2015-11-08 17:31:21 -0500 -Branch: REL9_3_STABLE [34725292d] 2015-11-08 17:31:22 -0500 -Branch: REL9_2_STABLE [99027350e] 2015-11-08 17:31:23 -0500 -Branch: REL9_1_STABLE [87deb55a4] 2015-11-08 17:31:24 -0500 ---> - - <listitem> - <para> - In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen - address to connect to the postmaster (Kondo Yuta) - </para> - - <para> - On Windows, <application>pg_ctl</> would fail to detect postmaster - startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</> - or <literal>::</>, because it would try to use that value verbatim as - the address to connect to, which doesn't work. Instead assume - that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the - right thing to use. - </para> - </listitem> - - <listitem> - <para> - In <application>pg_ctl</> on Windows, check service status to decide - where to send output, rather than checking if standard output is a - terminal (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [00cdd8352] 2015-11-21 20:21:31 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [5f5e68b08] 2015-11-21 20:21:32 -0500 -Branch: REL9_4_STABLE [7acad9546] 2015-11-21 20:22:39 -0500 -Branch: REL9_3_STABLE [0e6185283] 2015-11-21 20:21:32 -0500 -Branch: REL9_2_STABLE [b054ca031] 2015-11-21 20:21:32 -0500 -Branch: REL9_1_STABLE [8f1559aa5] 2015-11-21 20:21:32 -0500 -Branch: REL9_2_STABLE [05c9bc063] 2015-11-23 00:32:01 -0500 -Branch: REL9_1_STABLE [6df62ef43] 2015-11-23 00:32:01 -0500 ---> - - <listitem> - <para> - In <application>pg_dump</> and <application>pg_basebackup</>, adopt - the GNU convention for handling tar-archive members exceeding 8GB - (Tom Lane) - </para> - - <para> - The POSIX standard for <literal>tar</> file format does not allow - archive member files to exceed 8GB, but most modern implementations - of <application>tar</> support an extension that fixes that. Adopt - this extension so that <application>pg_dump</> with <option>-Ft</> no - longer fails on tables with more than 8GB of data, and so - that <application>pg_basebackup</> can handle files larger than 8GB. - In addition, fix some portability issues that could cause failures for - members between 4GB and 8GB on some platforms. Potentially these - problems could cause unrecoverable data loss due to unreadable backup - files. - </para> - </listitem> - - <listitem> - <para> - Fix assorted corner-case bugs in <application>pg_dump</>'s processing - of extension member objects (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_dump</> mark a view's triggers as needing to be - processed after its rule, to prevent possible failure during - parallel <application>pg_restore</> (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c7e27becd] 2016-01-01 15:27:53 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [404c45bac] 2016-01-01 15:27:53 -0500 -Branch: REL9_4_STABLE [f9b3b3fec] 2016-01-01 15:27:53 -0500 -Branch: REL9_3_STABLE [babf38e88] 2016-01-01 15:27:53 -0500 -Branch: REL9_2_STABLE [69cfe15b5] 2016-01-01 15:27:53 -0500 -Branch: REL9_1_STABLE [85dbc46bd] 2016-01-01 15:27:53 -0500 -Branch: master [b416c0bb6] 2016-01-02 19:04:45 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [b01828e97] 2016-01-02 19:04:45 -0500 -Branch: REL9_4_STABLE [aab4b73bd] 2016-01-02 19:04:45 -0500 -Branch: REL9_3_STABLE [6a0d63d35] 2016-01-02 19:04:45 -0500 -Branch: REL9_2_STABLE [1eb515ad7] 2016-01-02 19:04:45 -0500 -Branch: REL9_1_STABLE [e4959fb5c] 2016-01-02 19:04:45 -0500 ---> - - <listitem> - <para> - Ensure that relation option values are properly quoted - in <application>pg_dump</> (Kouhei Sutou, Tom Lane) - </para> - - <para> - A reloption value that isn't a simple identifier or number could lead - to dump/reload failures due to syntax errors in CREATE statements - issued by <application>pg_dump</>. This is not an issue with any - reloption currently supported by core <productname>PostgreSQL</>, but - extensions could allow reloptions that cause the problem. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [1aa41e3ea] 2015-12-23 14:25:53 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [a21994c1b] 2015-12-23 14:25:31 -0500 -Branch: REL9_4_STABLE [f56802a2d] 2015-12-23 14:25:31 -0500 -Branch: REL9_3_STABLE [534a4159c] 2015-12-23 14:25:31 -0500 ---> - - <listitem> - <para> - Avoid repeated password prompts during parallel <application>pg_dump</> - (Zeus Kronion) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [025106e31] 2015-11-14 11:47:12 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [fae58d5be] 2015-11-14 11:47:11 -0500 -Branch: REL9_4_STABLE [87cdfeb18] 2015-11-14 11:47:11 -0500 -Branch: REL9_3_STABLE [a75efb483] 2015-11-14 11:47:11 -0500 -Branch: REL9_2_STABLE [b4c4220ed] 2015-11-14 11:47:11 -0500 -Branch: REL9_1_STABLE [bdcbc2b47] 2015-11-14 11:47:11 -0500 -Branch: master [13b30c16f] 2015-11-24 17:18:28 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [b17dbf262] 2015-11-24 17:18:28 -0500 -Branch: REL9_4_STABLE [f91c4e326] 2015-11-24 17:18:28 -0500 -Branch: REL9_3_STABLE [6638c9aaf] 2015-11-24 17:18:27 -0500 -Branch: REL9_2_STABLE [0ca3c51e5] 2015-11-24 17:18:27 -0500 -Branch: REL9_1_STABLE [c36064e43] 2015-11-24 17:18:27 -0500 ---> - - <listitem> - <para> - Fix <application>pg_upgrade</>'s file-copying code to handle errors - properly on Windows (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Install guards in <application>pgbench</> against corner-case overflow - conditions during evaluation of script-specified division or modulo - operators (Fabien Coelho, Michael Paquier) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [fc995bfdb] 2015-12-28 10:50:35 -0300 -Branch: REL9_5_STABLE Release: REL9_5_0 [c3e068b26] 2015-12-28 10:50:35 -0300 -Branch: REL9_4_STABLE [f98bc20dd] 2015-12-28 10:50:35 -0300 -Branch: REL9_3_STABLE [7533d5d35] 2015-12-28 10:50:35 -0300 -Branch: REL9_2_STABLE [4fb9e6109] 2015-12-28 10:50:35 -0300 ---> - - <listitem> - <para> - Fix failure to localize messages emitted - by <application>pg_receivexlog</> and <application>pg_recvlogical</> - (Ioseph Kim) - </para> - </listitem> - - <listitem> - <para> - Avoid dump/reload problems when using both <application>plpython2</> - and <application>plpython3</> (Tom Lane) - </para> - - <para> - In principle, both versions of <application>PL/Python</> can be used in - the same database, though not in the same session (because the two - versions of <application>libpython</> cannot safely be used concurrently). - However, <application>pg_restore</> and <application>pg_upgrade</> both - do things that can fall foul of the same-session restriction. Work - around that by changing the timing of the check. - </para> - </listitem> - - <listitem> - <para> - Fix <application>PL/Python</> regression tests to pass with Python 3.5 - (Peter Eisentraut) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c40591885] 2015-11-12 13:03:52 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [747854f01] 2015-11-12 13:03:52 -0500 -Branch: REL9_4_STABLE [40879a92b] 2015-11-12 13:03:52 -0500 -Branch: REL9_3_STABLE [db6e8e162] 2015-11-12 13:03:53 -0500 ---> - - <listitem> - <para> - Fix premature clearing of <application>libpq</>'s input buffer when - socket EOF is seen (Tom Lane) - </para> - - <para> - This mistake caused <application>libpq</> to sometimes not report the - backend's final error message before reporting <quote>server closed the - connection unexpectedly</>. - </para> - </listitem> - - <listitem> - <para> - Prevent certain <application>PL/Java</> parameters from being set by - non-superusers (Noah Misch) - </para> - - <para> - This change mitigates a <application>PL/Java</> security bug - (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking - these parameters as superuser-only. To fix the security hazard for - sites that update <productname>PostgreSQL</> more frequently - than <application>PL/Java</>, make the core code aware of them also. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [7b96bf445] 2015-12-14 18:19:10 +0200 -Branch: REL9_5_STABLE Release: REL9_5_0 [34d136f92] 2015-12-14 18:24:58 +0200 -Branch: REL9_4_STABLE [affae5e98] 2015-12-14 18:40:51 +0200 -Branch: REL9_3_STABLE [dee1ed54f] 2015-12-14 18:52:29 +0200 -Branch: REL9_2_STABLE [1e23caae3] 2015-12-14 18:41:11 +0200 -Branch: REL9_1_STABLE [4b58ded74] 2015-12-14 18:48:49 +0200 ---> - - <listitem> - <para> - Improve <application>libpq</>'s handling of out-of-memory situations - (Michael Paquier, Amit Kapila, Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Michael Meskes <meskes@postgresql.org> -Branch: REL9_5_STABLE Release: REL9_5_0 [937261454] 2015-10-18 10:15:18 +0200 -Branch: REL9_4_STABLE [a850d7136] 2015-10-18 10:16:36 +0200 -Branch: REL9_3_STABLE [defd2ecf4] 2015-10-18 10:16:49 +0200 -Branch: REL9_2_STABLE [8f67643be] 2015-10-18 10:17:01 +0200 -Branch: REL9_1_STABLE [a9bcd8370] 2015-10-18 10:17:12 +0200 ---> - - <listitem> - <para> - Fix order of arguments - in <application>ecpg</>-generated <literal>typedef</> statements - (Michael Meskes) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [db4a5cfc7] 2015-12-01 11:42:25 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [c79bdc990] 2015-12-01 11:42:35 -0500 -Branch: REL9_4_STABLE [346cc2f01] 2015-12-01 11:42:39 -0500 -Branch: REL9_3_STABLE [3e6e98c5a] 2015-12-01 11:42:43 -0500 -Branch: REL9_2_STABLE [74cf6defa] 2015-12-01 11:42:47 -0500 -Branch: REL9_1_STABLE [84387496f] 2015-12-01 11:42:52 -0500 ---> - - <listitem> - <para> - Use <literal>%g</> not <literal>%f</> format - in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</> - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Fix <application>ecpg</>-supplied header files to not contain comments - continued from a preprocessor directive line onto the next line - (Michael Meskes) - </para> - - <para> - Such a comment is rejected by <application>ecpg</>. It's not yet clear - whether <application>ecpg</> itself should be changed. - </para> - </listitem> - - <listitem> - <para> - Fix <function>hstore_to_json_loose()</>'s test for whether - an <type>hstore</> value can be converted to a JSON number (Tom Lane) - </para> - - <para> - Previously this function could be fooled by non-alphanumeric trailing - characters, leading to emitting syntactically-invalid JSON. - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [743229a67] 2015-12-27 13:03:19 -0300 -Branch: REL9_5_STABLE Release: REL9_5_0 [c886c30cc] 2015-12-27 13:03:19 -0300 -Branch: REL9_4_STABLE [0a29cf693] 2015-12-27 13:03:19 -0300 -Branch: REL9_3_STABLE [0244677cf] 2015-12-27 13:03:19 -0300 -Branch: REL9_2_STABLE [51dd54ba7] 2015-12-27 13:03:19 -0300 -Branch: REL9_1_STABLE [1b6102eb7] 2015-12-27 13:03:19 -0300 ---> - - <listitem> - <para> - Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</> - function can be interrupted by query cancel (Andreas Karlsson) - </para> - </listitem> - - <listitem> - <para> - In <filename>contrib/postgres_fdw</>, fix bugs triggered by use - of <literal>tableoid</> in data-modifying commands (Etsuro Fujita, - Robert Haas) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [32f15d05c] 2015-11-18 17:45:05 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [659d47292] 2015-11-18 17:45:05 -0500 -Branch: REL9_4_STABLE [d5bb7c6f6] 2015-11-18 17:45:05 -0500 -Branch: REL9_3_STABLE [ae81d4fb1] 2015-11-18 17:45:05 -0500 -Branch: REL9_2_STABLE [6e1d26f1f] 2015-11-18 17:45:06 -0500 -Branch: REL9_1_STABLE [b4afc39f7] 2015-11-18 17:45:06 -0500 -Branch: master [9c779c49e] 2015-12-10 10:19:13 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [2355faae0] 2015-12-10 10:19:18 -0500 -Branch: REL9_4_STABLE [ee0df4d77] 2015-12-10 10:19:22 -0500 -Branch: REL9_3_STABLE [b3e377a00] 2015-12-10 10:19:27 -0500 -Branch: REL9_2_STABLE [7f94a5c10] 2015-12-10 10:19:31 -0500 ---> - - <listitem> - <para> - Accept <application>flex</> versions later than 2.5.x - (Tom Lane, Michael Paquier) - </para> - - <para> - Now that flex 2.6.0 has been released, the version checks in our build - scripts needed to be adjusted. - </para> - </listitem> - - <listitem> - <para> - Improve reproducibility of build output by ensuring filenames are given - to the linker in a fixed order (Christoph Berg) - </para> - - <para> - This avoids possible bitwise differences in the produced executable - files from one build to the next. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [dccf8e9e6] 2015-12-11 16:15:05 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [6061aa8ed] 2015-12-11 16:15:06 -0500 -Branch: REL9_4_STABLE [423697e3d] 2015-12-11 16:14:36 -0500 -Branch: REL9_3_STABLE [1ebe75a2c] 2015-12-11 16:14:40 -0500 -Branch: REL9_2_STABLE [98467b35d] 2015-12-11 16:14:44 -0500 -Branch: REL9_1_STABLE [2a37a103b] 2015-12-11 16:14:48 -0500 ---> - - <listitem> - <para> - Install our <filename>missing</> script where PGXS builds can find it - (Jim Nasby) - </para> - - <para> - This allows sane behavior in a PGXS build done on a machine where build - tools such as <application>bison</> are missing. - </para> - </listitem> - - <listitem> - <para> - Ensure that <filename>dynloader.h</> is included in the installed - header files in MSVC builds (Bruce Momjian, Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [085423e3e] 2015-12-11 19:09:04 -0500 -Branch: REL9_5_STABLE Release: REL9_5_0 [ea7f7d8b3] 2015-12-11 19:08:40 -0500 -Branch: REL9_4_STABLE [09824cd99] 2015-12-11 19:08:40 -0500 -Branch: REL9_3_STABLE [fee485815] 2015-12-11 19:08:40 -0500 -Branch: REL9_2_STABLE [f5eebea8d] 2015-12-11 19:08:40 -0500 -Branch: REL9_1_STABLE [386dcd539] 2015-12-11 19:08:40 -0500 ---> - - <listitem> - <para> - Add variant regression test expected-output file to match behavior of - current <application>libxml2</> (Tom Lane) - </para> - - <para> - The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to - output error context reports in some cases where it used to do so. - This seems to be a bug, but we'll probably have to live with it for - some time, so work around it. - </para> - </listitem> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2016a for - DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal - Territory (Zabaykalsky Krai), plus historical corrections for Pakistan. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-5"> - <title>Release 9.4.5</title> - - <formalpara> - <title>Release date:</title> - <para>2015-10-08</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.4. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.5</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.4, - see <xref linkend="release-9-4-4">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [08fa47c48] 2015-10-05 10:06:29 -0400 -Branch: REL9_5_STABLE [98f30d2e5] 2015-10-05 10:06:33 -0400 -Branch: REL9_4_STABLE [16d58b5b5] 2015-10-05 10:06:34 -0400 -Branch: REL9_3_STABLE [f8862172e] 2015-10-05 10:06:34 -0400 ---> - - <listitem> - <para> - Guard against stack overflows in <type>json</> parsing - (Oskari Saarenmaa) - </para> - - <para> - If an application constructs PostgreSQL <type>json</> - or <type>jsonb</> values from arbitrary user input, the application's - users can reliably crash the PostgreSQL server, causing momentary - denial of service. (CVE-2015-5289) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [1d812c8b0] 2015-10-05 10:06:29 -0400 -Branch: REL9_5_STABLE [4d6752277] 2015-10-05 10:06:33 -0400 -Branch: REL9_4_STABLE [4d95419e8] 2015-10-05 10:06:34 -0400 -Branch: REL9_3_STABLE [cc1210f0a] 2015-10-05 10:06:34 -0400 -Branch: REL9_2_STABLE [56232f987] 2015-10-05 10:06:35 -0400 -Branch: REL9_1_STABLE [48f6310bc] 2015-10-05 10:06:35 -0400 -Branch: REL9_0_STABLE [188e081ef] 2015-10-05 10:06:36 -0400 ---> - - <listitem> - <para> - Fix <filename>contrib/pgcrypto</> to detect and report - too-short <function>crypt()</> salts (Josh Kupershmidt) - </para> - - <para> - Certain invalid salt arguments crashed the server or disclosed a few - bytes of server memory. We have not ruled out the viability of - attacks that arrange for presence of confidential information in the - disclosed bytes, but they seem unlikely. (CVE-2015-5288) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c5454f99c] 2015-09-04 13:37:14 -0400 -Branch: REL9_5_STABLE [a2538da89] 2015-09-04 13:37:16 -0400 -Branch: REL9_4_STABLE [37d10c524] 2015-09-04 13:37:17 -0400 -Branch: REL9_3_STABLE [9e9b310d8] 2015-09-04 13:36:50 -0400 -Branch: REL9_2_STABLE [39ebb6466] 2015-09-04 13:36:50 -0400 -Branch: REL9_1_STABLE [dae1c9480] 2015-09-04 13:36:50 -0400 -Branch: REL9_0_STABLE [81ee435c4] 2015-09-04 13:36:50 -0400 ---> - - <listitem> - <para> - Fix subtransaction cleanup after a portal (cursor) belonging to an - outer subtransaction fails (Tom Lane, Michael Paquier) - </para> - - <para> - A function executed in an outer-subtransaction cursor could cause an - assertion failure or crash by referencing a relation created within an - inner subtransaction. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [358cde320] 2015-08-02 20:08:10 +0300 -Branch: REL9_5_STABLE [54f23a45f] 2015-08-02 20:08:50 +0300 -Branch: REL9_4_STABLE [bab959906] 2015-08-02 20:09:05 +0300 ---> - - <listitem> - <para> - Fix possible deadlock during WAL insertion - when <varname>commit_delay</> is set (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [c3e0ddd40] 2015-09-08 17:02:49 -0400 -Branch: REL9_5_STABLE [9801bae21] 2015-09-08 17:02:53 -0400 -Branch: REL9_4_STABLE [83d004904] 2015-09-08 17:02:56 -0400 -Branch: REL9_3_STABLE [cb1b9b959] 2015-09-08 17:02:59 -0400 ---> - - <listitem> - <para> - Ensure all relations referred to by an updatable view are properly - locked during an update statement (Dean Rasheed) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master Release: REL9_5_BR [5d1ff6bd5] 2015-06-25 14:39:05 -0400 -Branch: REL9_4_STABLE [e118555cf] 2015-06-25 14:39:05 -0400 -Branch: REL9_3_STABLE [834aa56ea] 2015-06-25 14:39:05 -0400 -Branch: REL9_2_STABLE [88fab18a4] 2015-06-25 14:39:05 -0400 -Branch: REL9_1_STABLE [a9b7bf82f] 2015-06-25 14:39:06 -0400 -Branch: REL9_0_STABLE [45c69178b] 2015-06-25 14:39:06 -0400 ---> - - <listitem> - <para> - Fix insertion of relations into the relation cache <quote>init file</> - (Tom Lane) - </para> - - <para> - An oversight in a patch in the most recent minor releases - caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted - from the init file. Subsequent sessions detected this, then deemed the - init file to be broken and silently ignored it, resulting in a - significant degradation in session startup time. In addition to fixing - the bug, install some guards so that any similar future mistake will be - more obvious. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [6e5d9f278] 2015-08-21 20:32:11 -0400 -Branch: REL9_5_STABLE [68a14ca74] 2015-08-21 20:32:17 -0400 -Branch: REL9_4_STABLE [fe939d950] 2015-08-21 20:32:26 -0400 -Branch: REL9_3_STABLE [ea9892444] 2015-08-21 20:32:29 -0400 -Branch: REL9_2_STABLE [d951d6065] 2015-08-21 20:32:33 -0400 -Branch: REL9_1_STABLE [87b8c9e12] 2015-08-21 20:32:37 -0400 -Branch: REL9_0_STABLE [7c57449fc] 2015-08-21 20:32:41 -0400 ---> - - <listitem> - <para> - Avoid O(N^2) behavior when inserting many tuples into a SPI query - result (Neil Conway) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [07e4d03fb] 2015-09-30 23:32:43 -0400 -Branch: REL9_5_STABLE [8c8a834b1] 2015-09-30 23:32:23 -0400 -Branch: REL9_4_STABLE [03f9b63e2] 2015-09-30 23:32:23 -0400 -Branch: REL9_3_STABLE [aad86c518] 2015-09-30 23:32:23 -0400 -Branch: REL9_2_STABLE [e4c00750a] 2015-09-30 23:32:23 -0400 -Branch: REL9_1_STABLE [2bbe8a684] 2015-09-30 23:32:23 -0400 -Branch: REL9_0_STABLE [2d4336cf8] 2015-09-30 23:32:23 -0400 ---> - - <listitem> - <para> - Improve <command>LISTEN</> startup time when there are many unread - notifications (Matt Newell) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [2abfd9d5e] 2015-09-25 13:16:30 -0400 -Branch: REL9_5_STABLE [c9645f757] 2015-09-25 13:16:30 -0400 -Branch: REL9_4_STABLE [67d0f7a37] 2015-09-25 13:16:30 -0400 -Branch: REL9_3_STABLE [1bcc9e60a] 2015-09-25 13:16:31 -0400 ---> - - <listitem> - <para> - Fix performance problem when a session alters large numbers of foreign - key constraints (Jan Wieck, Tom Lane) - </para> - - <para> - This was seen primarily when restoring <application>pg_dump</> output - for databases with many thousands of tables. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: REL9_4_STABLE [ab6084782] 2015-07-28 22:06:31 +0200 -Branch: REL9_3_STABLE [48d23c72d] 2015-07-28 22:06:31 +0200 -Branch: REL9_2_STABLE [2f91e7bb5] 2015-07-28 22:06:31 +0200 -Branch: REL9_1_STABLE [624a3c9be] 2015-07-28 22:06:32 +0200 -Branch: REL9_0_STABLE [444b2ebee] 2015-07-28 22:06:32 +0200 ---> - - <listitem> - <para> - Disable SSL renegotiation by default (Michael Paquier, Andres Freund) - </para> - - <para> - While use of SSL renegotiation is a good idea in theory, we have seen - too many bugs in practice, both in the underlying OpenSSL library and - in our usage of it. Renegotiation will be removed entirely in 9.5 and - later. In the older branches, just change the default value - of <varname>ssl_renegotiation_limit</> to zero (disabled). - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [020235a57] 2015-09-24 14:53:32 +0200 -Branch: REL9_5_STABLE [ef4fccd2b] 2015-09-24 14:53:33 +0200 -Branch: REL9_4_STABLE [4ff753c91] 2015-09-24 14:53:33 +0200 -Branch: REL9_3_STABLE [fee2275ae] 2015-09-24 14:53:33 +0200 -Branch: REL9_2_STABLE [f12932dd4] 2015-09-24 14:53:33 +0200 -Branch: REL9_1_STABLE [ff090bbb7] 2015-09-24 14:53:33 +0200 -Branch: REL9_0_STABLE [078d471a9] 2015-09-24 14:53:33 +0200 -Branch: master [2596d705b] 2015-10-05 11:53:43 +0200 -Branch: REL9_5_STABLE [0577821b5] 2015-10-05 11:56:58 +0200 -Branch: REL9_4_STABLE [13ac4c035] 2015-10-05 11:57:07 +0200 -Branch: REL9_3_STABLE [393341714] 2015-10-05 11:57:11 +0200 -Branch: REL9_2_STABLE [e07cfef34] 2015-10-05 11:57:15 +0200 -Branch: REL9_1_STABLE [7116a3e98] 2015-10-05 11:57:20 +0200 -Branch: REL9_0_STABLE [eeb0b7830] 2015-10-05 11:57:25 +0200 ---> - - <listitem> - <para> - Lower the minimum values of the <literal>*_freeze_max_age</> parameters - (Andres Freund) - </para> - - <para> - This is mainly to make tests of related behavior less time-consuming, - but it may also be of value for installations with limited disk space. - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [369342cf7] 2015-08-04 12:58:54 -0400 -Branch: REL9_5_STABLE [cd52e4a2b] 2015-08-04 13:05:43 -0400 -Branch: REL9_4_STABLE [3a35ca5ad] 2015-08-04 13:05:48 -0400 -Branch: REL9_3_STABLE [11ed4bab5] 2015-08-04 13:05:52 -0400 -Branch: REL9_2_STABLE [5ef8e1114] 2015-08-04 13:05:58 -0400 -Branch: REL9_1_STABLE [4e51ea8fd] 2015-08-04 13:06:03 -0400 -Branch: REL9_0_STABLE [b09446ed7] 2015-08-04 13:12:03 -0400 ---> - - <listitem> - <para> - Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid - server crashes (Josh Berkus) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_4_STABLE [1afc1fe9c] 2015-06-28 18:38:06 -0400 -Branch: REL9_3_STABLE [5a56c2545] 2015-06-28 18:38:06 -0400 ---> - - <listitem> - <para> - Avoid logging complaints when a parameter that can only be set at - server start appears multiple times in <filename>postgresql.conf</>, - and fix counting of line numbers after an <literal>include_dir</> - directive (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [246693e5a] 2015-09-21 12:11:32 -0400 -Branch: REL9_5_STABLE [3dfffac70] 2015-09-21 12:11:45 -0400 -Branch: REL9_4_STABLE [fa9fc3a1b] 2015-09-21 12:11:49 -0400 -Branch: REL9_3_STABLE [8b75e489a] 2015-09-21 12:11:58 -0400 -Branch: REL9_2_STABLE [844486216] 2015-09-21 12:12:04 -0400 -Branch: REL9_1_STABLE [5f79730ec] 2015-09-21 12:12:10 -0400 -Branch: REL9_0_STABLE [a89781e34] 2015-09-21 12:12:16 -0400 ---> - - <listitem> - <para> - Fix rare internal overflow in multiplication of <type>numeric</> values - (Dean Rasheed) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [30cb12881] 2015-10-05 10:06:29 -0400 -Branch: REL9_5_STABLE [acf0da1e6] 2015-10-05 10:06:33 -0400 -Branch: REL9_4_STABLE [a0c02ed5b] 2015-10-05 10:06:34 -0400 -Branch: REL9_3_STABLE [9286ff78f] 2015-10-05 10:06:34 -0400 -Branch: REL9_2_STABLE [5e43130b5] 2015-10-05 10:06:35 -0400 -Branch: REL9_1_STABLE [9581e2699] 2015-10-05 10:06:35 -0400 -Branch: REL9_0_STABLE [0398e071a] 2015-10-05 10:06:36 -0400 -Branch: master [5976097c0] 2015-10-05 10:06:30 -0400 -Branch: REL9_5_STABLE [7bed97d48] 2015-10-05 10:06:33 -0400 -Branch: REL9_4_STABLE [bed3f6d03] 2015-10-05 10:06:34 -0400 -Branch: REL9_3_STABLE [28dea9485] 2015-10-05 10:06:34 -0400 -Branch: REL9_2_STABLE [ea68c221f] 2015-10-05 10:06:35 -0400 -Branch: REL9_1_STABLE [879877b00] 2015-10-05 10:06:35 -0400 -Branch: REL9_0_STABLE [682a25d41] 2015-10-05 10:06:36 -0400 -Branch: REL9_2_STABLE [8dacb29ca] 2015-10-05 10:06:35 -0400 ---> - - <listitem> - <para> - Guard against hard-to-reach stack overflows involving record types, - range types, <type>json</>, <type>jsonb</>, <type>tsquery</>, - <type>ltxtquery</> and <type>query_int</> (Noah Misch) - </para> - </listitem> - -<!-- -Author: Greg Stark <stark@mit.edu> -Branch: master [258ee1b63] 2015-09-06 03:35:56 +0100 -Branch: REL9_5_STABLE [c11100d0f] 2015-09-06 04:05:46 +0100 -Branch: REL9_4_STABLE [b17ce6208] 2015-09-06 03:56:59 +0100 -Branch: REL9_3_STABLE [dd04d43bf] 2015-09-06 03:58:27 +0100 -Branch: REL9_2_STABLE [f4afbe065] 2015-09-06 03:58:32 +0100 -Branch: REL9_1_STABLE [07cef3eb8] 2015-09-06 04:02:57 +0100 -Branch: REL9_0_STABLE [530d0c504] 2015-09-06 04:05:20 +0100 -Branch: master [37239ef8c] 2015-09-07 20:41:29 +0100 -Branch: REL9_5_STABLE [a12424028] 2015-09-07 20:47:41 +0100 -Branch: REL9_4_STABLE [0198a8d82] 2015-09-07 20:47:37 +0100 -Branch: REL9_3_STABLE [fde40e53f] 2015-09-07 20:47:33 +0100 -Branch: REL9_2_STABLE [af9d9e59c] 2015-09-07 20:47:29 +0100 -Branch: REL9_1_STABLE [0252d7777] 2015-09-07 20:47:19 +0100 -Branch: REL9_0_STABLE [92d956f51] 2015-09-07 20:47:06 +0100 ---> - - <listitem> - <para> - Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input - (Greg Stark) - </para> - - <para> - These tokens aren't meant to be used in datetime values, but previously - they resulted in opaque internal error messages rather - than <quote>invalid input syntax</>. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9fe8fe9c9] 2015-10-02 13:45:39 -0400 -Branch: REL9_5_STABLE [bb704a781] 2015-10-02 13:45:39 -0400 -Branch: REL9_4_STABLE [109def032] 2015-10-02 13:45:39 -0400 -Branch: REL9_3_STABLE [384ce1b75] 2015-10-02 13:45:39 -0400 -Branch: REL9_2_STABLE [2d51f55ff] 2015-10-02 13:45:39 -0400 -Branch: REL9_1_STABLE [da8ff2920] 2015-10-02 13:45:39 -0400 -Branch: REL9_0_STABLE [d4f6488ec] 2015-10-02 13:45:39 -0400 ---> - - <listitem> - <para> - Add more query-cancel checks to regular expression matching (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b63fc2877] 2015-10-02 14:51:58 -0400 -Branch: REL9_5_STABLE [20c627707] 2015-10-02 14:51:58 -0400 -Branch: REL9_4_STABLE [c5e38b93c] 2015-10-02 14:51:58 -0400 -Branch: REL9_3_STABLE [9ed207ae9] 2015-10-02 14:51:58 -0400 -Branch: REL9_2_STABLE [a0c089f33] 2015-10-02 14:51:58 -0400 -Branch: REL9_1_STABLE [e7de1bc09] 2015-10-02 14:51:59 -0400 -Branch: REL9_0_STABLE [54b116d83] 2015-10-02 14:51:59 -0400 -Branch: master [2e8cfcf4e] 2015-10-02 15:00:51 -0400 -Branch: REL9_5_STABLE [bdc5d95b6] 2015-10-02 15:00:52 -0400 -Branch: REL9_4_STABLE [bb1d97961] 2015-10-02 15:00:52 -0400 -Branch: REL9_3_STABLE [4175cc604] 2015-10-02 15:00:52 -0400 -Branch: REL9_2_STABLE [57bf7b548] 2015-10-02 15:00:52 -0400 -Branch: REL9_1_STABLE [f80af0117] 2015-10-02 15:00:52 -0400 -Branch: REL9_0_STABLE [b875ca09f] 2015-10-02 15:00:52 -0400 ---> - - <listitem> - <para> - Add recursion depth protections to regular expression, <literal>SIMILAR - TO</>, and <literal>LIKE</> matching (Tom Lane) - </para> - - <para> - Suitable search patterns and a low stack depth limit could lead to - stack-overrun crashes. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400 -Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400 -Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400 -Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400 -Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400 -Branch: REL9_1_STABLE [630154955] 2015-10-02 14:26:36 -0400 -Branch: REL9_0_STABLE [2a8878289] 2015-10-02 14:26:36 -0400 ---> - - <listitem> - <para> - Fix potential infinite loop in regular expression execution (Tom Lane) - </para> - - <para> - A search pattern that can apparently match a zero-length string, but - actually doesn't match because of a back reference, could lead to an - infinite loop. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400 -Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400 -Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400 -Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400 -Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400 ---> - - <listitem> - <para> - In regular expression execution, correctly record match data for - capturing parentheses within a quantifier even when the match is - zero-length (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8a0258c31] 2015-08-12 00:48:11 -0400 -Branch: REL9_5_STABLE [c5bfcc18a] 2015-08-12 00:48:28 -0400 -Branch: REL9_4_STABLE [a35a527f2] 2015-08-12 00:48:34 -0400 -Branch: REL9_3_STABLE [a54875602] 2015-08-12 00:48:39 -0400 -Branch: REL9_2_STABLE [234205a2e] 2015-08-12 00:48:44 -0400 -Branch: REL9_1_STABLE [7a801ba8c] 2015-08-12 00:48:48 -0400 -Branch: REL9_0_STABLE [7e23b63bd] 2015-08-12 00:48:54 -0400 ---> - - <listitem> - <para> - Fix low-memory failures in regular expression compilation - (Andreas Seltenreich) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d9c0c728a] 2015-09-18 13:55:17 -0400 -Branch: REL9_5_STABLE [a39331fa5] 2015-09-18 13:55:17 -0400 -Branch: REL9_4_STABLE [f7d896ab9] 2015-09-18 13:55:17 -0400 -Branch: REL9_3_STABLE [b84310808] 2015-09-18 13:55:17 -0400 -Branch: REL9_2_STABLE [dc4e8c101] 2015-09-18 13:55:17 -0400 -Branch: REL9_1_STABLE [28c396134] 2015-09-18 13:55:17 -0400 -Branch: REL9_0_STABLE [ba9eb293f] 2015-09-18 13:55:17 -0400 ---> - - <listitem> - <para> - Fix low-probability memory leak during regular expression execution - (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [ba51774d8] 2015-09-20 16:48:44 -0400 -Branch: REL9_5_STABLE [3d3bc2905] 2015-09-20 16:48:44 -0400 -Branch: REL9_4_STABLE [e32c5f118] 2015-09-20 16:48:44 -0400 -Branch: REL9_3_STABLE [7e6e3bdd3] 2015-09-20 16:48:44 -0400 -Branch: REL9_2_STABLE [ac0c71228] 2015-09-20 16:48:44 -0400 -Branch: REL9_1_STABLE [553ce7e9a] 2015-09-20 16:48:44 -0400 -Branch: REL9_0_STABLE [eed5bbc48] 2015-09-20 16:48:44 -0400 ---> - - <listitem> - <para> - Fix rare low-memory failure in lock cleanup during transaction abort - (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8ea3e7a75] 2015-08-04 18:18:46 -0400 -Branch: REL9_5_STABLE [e2035dc9a] 2015-08-04 18:18:46 -0400 -Branch: REL9_4_STABLE [118c9bb8d] 2015-08-04 18:18:46 -0400 -Branch: REL9_3_STABLE [8bd45a394] 2015-08-04 18:18:46 -0400 -Branch: REL9_2_STABLE [b6659a3b9] 2015-08-04 18:18:46 -0400 -Branch: REL9_1_STABLE [9965aff1c] 2015-08-04 18:18:47 -0400 -Branch: REL9_0_STABLE [bd327627f] 2015-08-04 18:18:47 -0400 ---> - - <listitem> - <para> - Fix <quote>unexpected out-of-memory situation during sort</> errors - when using tuplestores with small <varname>work_mem</> settings (Tom - Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9d6077abf] 2015-07-16 22:57:46 -0400 -Branch: REL9_5_STABLE [fd415ffc9] 2015-07-16 22:57:46 -0400 -Branch: REL9_4_STABLE [b8f368276] 2015-07-16 22:57:46 -0400 -Branch: REL9_3_STABLE [730089d87] 2015-07-16 22:57:46 -0400 -Branch: REL9_2_STABLE [15ca2b6cd] 2015-07-16 22:57:46 -0400 -Branch: REL9_1_STABLE [faef3dc28] 2015-07-16 22:57:46 -0400 -Branch: REL9_0_STABLE [36522d627] 2015-07-16 22:57:46 -0400 ---> - - <listitem> - <para> - Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_4_STABLE [ff4cbc1ff] 2015-10-04 14:16:59 -0400 -Branch: REL9_3_STABLE [45dd7cdba] 2015-10-04 14:17:14 -0400 -Branch: REL9_2_STABLE [fd3e3cf50] 2015-10-04 14:17:20 -0400 -Branch: REL9_1_STABLE [a8168fbcb] 2015-10-04 14:17:24 -0400 -Branch: REL9_0_STABLE [2647b245d] 2015-10-04 14:17:28 -0400 -Branch: master [f2fc98fb8] 2015-10-04 15:55:07 -0400 -Branch: REL9_5_STABLE [e5c94c7bb] 2015-10-04 15:55:07 -0400 -Branch: REL9_4_STABLE [4075fc4b9] 2015-10-04 15:55:07 -0400 -Branch: REL9_3_STABLE [0867e0ad5] 2015-10-04 15:55:07 -0400 -Branch: REL9_2_STABLE [ebc7d928a] 2015-10-04 15:55:07 -0400 -Branch: REL9_1_STABLE [d84cc40e4] 2015-10-04 15:55:07 -0400 -Branch: REL9_0_STABLE [d637a899c] 2015-10-04 15:55:07 -0400 ---> - - <listitem> - <para> - Fix <quote>invalid memory alloc request size</> failure in hash joins - with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8693ebe37] 2015-07-30 12:11:23 -0400 -Branch: REL9_5_STABLE [e91a1643a] 2015-07-30 12:11:23 -0400 -Branch: REL9_4_STABLE [3b4a9dbfa] 2015-07-30 12:11:23 -0400 -Branch: REL9_3_STABLE [caae9f764] 2015-07-30 12:11:23 -0400 -Branch: REL9_2_STABLE [c7d171251] 2015-07-30 12:11:23 -0400 -Branch: REL9_1_STABLE [ea6e28649] 2015-07-30 12:11:23 -0400 -Branch: REL9_0_STABLE [54833c5e7] 2015-07-30 12:11:23 -0400 -Branch: master [a6492ff89] 2015-07-31 19:26:33 -0400 -Branch: REL9_5_STABLE [edf26ed03] 2015-07-31 19:26:33 -0400 -Branch: REL9_4_STABLE [216977a7d] 2015-07-31 19:26:33 -0400 -Branch: REL9_3_STABLE [a4df781c9] 2015-07-31 19:26:33 -0400 -Branch: master [f69b4b949] 2015-08-01 20:57:41 -0400 -Branch: REL9_5_STABLE [7968238eb] 2015-08-01 20:57:41 -0400 -Branch: REL9_4_STABLE [e39a3b2ef] 2015-08-01 20:57:41 -0400 -Branch: REL9_3_STABLE [1044541dc] 2015-08-01 20:57:41 -0400 -Branch: REL9_2_STABLE [44618f92b] 2015-08-01 20:57:41 -0400 -Branch: REL9_1_STABLE [b9dfa07e8] 2015-08-01 20:57:41 -0400 -Branch: REL9_0_STABLE [44679965f] 2015-08-01 20:57:41 -0400 -Branch: master [85e5e222b] 2015-08-04 14:55:50 -0400 -Branch: REL9_5_STABLE [a6f43986b] 2015-08-04 14:55:52 -0400 -Branch: REL9_4_STABLE [b58e8caf0] 2015-08-04 14:55:53 -0400 -Branch: REL9_3_STABLE [33afbdd02] 2015-08-04 14:55:54 -0400 -Branch: REL9_2_STABLE [359016d2e] 2015-08-04 14:55:55 -0400 -Branch: master [6af9ee4c8] 2015-08-05 14:39:29 -0400 -Branch: REL9_5_STABLE [06663971b] 2015-08-05 14:39:07 -0400 -Branch: REL9_4_STABLE [4d94b5f1f] 2015-08-05 14:39:07 -0400 -Branch: REL9_3_STABLE [9bc4d5927] 2015-08-05 14:39:07 -0400 -Branch: REL9_2_STABLE [08dee567e] 2015-08-05 14:39:07 -0400 -Branch: REL9_1_STABLE [48d4f1e39] 2015-08-05 14:39:07 -0400 -Branch: REL9_0_STABLE [c084f613e] 2015-08-05 14:39:07 -0400 -Branch: master [8703059c6] 2015-08-06 15:35:46 -0400 -Branch: REL9_5_STABLE [df3b0f47b] 2015-08-06 15:35:47 -0400 -Branch: REL9_4_STABLE [7ef507ad7] 2015-08-06 15:35:48 -0400 -Branch: REL9_3_STABLE [3e79144a8] 2015-08-06 15:35:27 -0400 -Branch: REL9_2_STABLE [754ece936] 2015-08-06 15:35:27 -0400 -Branch: REL9_1_STABLE [656b1e8cf] 2015-08-06 15:35:27 -0400 -Branch: REL9_0_STABLE [d860ba43f] 2015-08-06 15:35:28 -0400 -Branch: master [cde35cf4a] 2015-08-06 20:14:53 -0400 -Branch: REL9_5_STABLE [a8725c2ba] 2015-08-06 20:14:54 -0400 -Branch: REL9_4_STABLE [d31e79415] 2015-08-06 20:14:37 -0400 -Branch: REL9_3_STABLE [0d4913509] 2015-08-06 20:14:37 -0400 -Branch: master [bab163e12] 2015-08-06 22:14:27 -0400 -Branch: REL9_5_STABLE [de0227d8a] 2015-08-06 22:14:28 -0400 -Branch: REL9_4_STABLE [8c7bb0240] 2015-08-06 22:14:07 -0400 -Branch: REL9_3_STABLE [de5edc660] 2015-08-06 22:14:07 -0400 -Branch: master [89db83922] 2015-08-07 14:13:50 -0400 -Branch: REL9_5_STABLE [085338822] 2015-08-07 14:13:51 -0400 -Branch: REL9_4_STABLE [30b4ccdab] 2015-08-07 14:13:52 -0400 -Branch: REL9_3_STABLE [868bfd1f3] 2015-08-07 14:13:39 -0400 -Branch: master [4200a9286] 2015-08-10 17:18:17 -0400 -Branch: REL9_5_STABLE [fda25b220] 2015-08-10 17:18:17 -0400 -Branch: REL9_4_STABLE [7371ab74f] 2015-08-10 17:18:17 -0400 -Branch: REL9_3_STABLE [f6d7a79f4] 2015-08-10 17:18:17 -0400 -Branch: REL9_2_STABLE [54cea765c] 2015-08-10 17:18:17 -0400 -Branch: master [cfe30a72f] 2015-08-12 21:19:03 -0400 -Branch: REL9_5_STABLE [ec94bc147] 2015-08-12 21:19:04 -0400 -Branch: REL9_4_STABLE [8cd3a7ada] 2015-08-12 21:19:05 -0400 -Branch: REL9_3_STABLE [7950657a9] 2015-08-12 21:19:06 -0400 -Branch: REL9_2_STABLE [866197d82] 2015-08-12 21:19:07 -0400 -Branch: REL9_1_STABLE [4390ba7bf] 2015-08-12 21:19:09 -0400 -Branch: REL9_0_STABLE [7b4b57fc4] 2015-08-12 21:19:10 -0400 ---> - - <listitem> - <para> - Fix assorted planner bugs (Tom Lane) - </para> - - <para> - These mistakes could lead to incorrect query plans that would give wrong - answers, or to assertion failures in assert-enabled builds, or to odd - planner errors such as <quote>could not devise a query plan for the - given query</>, <quote>could not find pathkey item to - sort</>, <quote>plan should not reference subplan's variable</>, - or <quote>failed to assign all NestLoopParams to plan nodes</>. - Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz - testing that exposed these problems. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master Release: REL9_5_BR [2cb9ec1bc] 2015-06-22 18:53:27 -0400 -Branch: REL9_4_STABLE [d8f9ab776] 2015-06-22 18:53:27 -0400 -Branch: REL9_3_STABLE [673068588] 2015-06-22 18:53:27 -0400 -Branch: REL9_2_STABLE [e538e510e] 2015-06-22 18:53:27 -0400 ---> - - <listitem> - <para> - Improve planner's performance for <command>UPDATE</>/<command>DELETE</> - on large inheritance sets (Tom Lane, Dean Rasheed) - </para> - </listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -Branch: master [96f6a0cb4] 2015-09-09 22:51:44 +0900 -Branch: REL9_5_STABLE [65f37b3e9] 2015-09-09 22:52:28 +0900 -Branch: REL9_4_STABLE [2244c0652] 2015-09-09 22:52:35 +0900 -Branch: REL9_3_STABLE [47387732b] 2015-09-09 22:52:40 +0900 -Branch: REL9_2_STABLE [67518a141] 2015-09-09 23:01:10 +0900 -Branch: REL9_1_STABLE [60fe73b79] 2015-09-09 23:03:17 +0900 ---> - - <listitem> - <para> - Ensure standby promotion trigger files are removed at postmaster - startup (Michael Paquier, Fujii Masao) - </para> - - <para> - This prevents unwanted promotion from occurring if these files appear - in a database backup that is used to initialize a new standby server. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d73d14c27] 2015-08-02 14:55:03 -0400 -Branch: REL9_5_STABLE [72697d2ba] 2015-08-02 14:55:04 -0400 -Branch: REL9_4_STABLE [c6d901292] 2015-08-02 14:55:05 -0400 -Branch: REL9_3_STABLE [fad824a88] 2015-08-02 14:54:44 -0400 -Branch: REL9_2_STABLE [20d1878b6] 2015-08-02 14:54:44 -0400 -Branch: REL9_1_STABLE [f1e84d3eb] 2015-08-02 14:54:44 -0400 -Branch: REL9_0_STABLE [8b53c087d] 2015-08-02 14:54:44 -0400 ---> - - <listitem> - <para> - During postmaster shutdown, ensure that per-socket lock files are - removed and listen sockets are closed before we remove - the <filename>postmaster.pid</> file (Tom Lane) - </para> - - <para> - This avoids race-condition failures if an external script attempts to - start a new postmaster as soon as <literal>pg_ctl stop</> returns. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master Release: REL9_5_BR [48913db88] 2015-06-19 14:23:39 -0400 -Branch: REL9_4_STABLE [29722d79b] 2015-06-19 14:23:39 -0400 ---> - - <listitem> - <para> - Ensure that the postmaster does not exit until all its child processes - are gone, even in an immediate shutdown (Tom Lane) - </para> - - <para> - Like the previous item, this avoids possible race conditions against a - subsequently-started postmaster. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [45811be94] 2015-07-09 13:22:22 -0400 -Branch: REL9_5_STABLE [193e02707] 2015-07-09 13:22:23 -0400 -Branch: REL9_4_STABLE [0d01c5b93] 2015-07-09 13:22:23 -0400 -Branch: REL9_3_STABLE [9c39d7ae0] 2015-07-09 13:22:23 -0400 -Branch: REL9_2_STABLE [97122b8a8] 2015-07-09 13:22:23 -0400 -Branch: REL9_1_STABLE [da1e7eb72] 2015-07-09 13:22:23 -0400 -Branch: REL9_0_STABLE [6718f07a0] 2015-07-09 13:22:23 -0400 ---> - - <listitem> - <para> - Fix postmaster's handling of a startup-process crash during crash - recovery (Tom Lane) - </para> - - <para> - If, during a crash recovery cycle, the startup process crashes without - having restored database consistency, we'd try to launch a new startup - process, which typically would just crash again, leading to an infinite - loop. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master Release: REL9_5_BR [667912aee] 2015-06-21 18:57:28 +0200 -Branch: REL9_4_STABLE [ec1408155] 2015-06-21 19:00:30 +0200 -Branch: REL9_3_STABLE [203193144] 2015-06-21 19:00:40 +0200 ---> - - <listitem> - <para> - Make emergency autovacuuming for multixact wraparound more robust - (Andres Freund) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d8f15c95b] 2015-07-28 17:34:23 -0400 -Branch: REL9_5_STABLE [116be6c17] 2015-07-28 17:34:00 -0400 -Branch: REL9_4_STABLE [082d4283b] 2015-07-28 17:34:00 -0400 -Branch: REL9_3_STABLE [47ee27521] 2015-07-28 17:34:00 -0400 -Branch: REL9_2_STABLE [1a2f95630] 2015-07-28 17:34:00 -0400 -Branch: REL9_1_STABLE [3f12041e7] 2015-07-28 17:34:00 -0400 -Branch: REL9_0_STABLE [f527c0a2a] 2015-07-28 17:34:00 -0400 ---> - - <listitem> - <para> - Do not print a <literal>WARNING</> when an autovacuum worker is already - gone when we attempt to signal it, and reduce log verbosity for such - signals (Tom Lane) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master Release: REL9_5_BR [da1a9d0f5] 2015-06-19 12:44:36 -0300 -Branch: REL9_4_STABLE [cf733760e] 2015-06-19 12:44:35 -0300 -Branch: REL9_3_STABLE [5ac77a276] 2015-06-19 12:44:34 -0300 -Branch: REL9_2_STABLE [41acde2df] 2015-06-19 12:44:34 -0300 -Branch: REL9_1_STABLE [2fed5731a] 2015-06-19 12:44:33 -0300 -Branch: REL9_0_STABLE [d68df5e40] 2015-06-19 12:44:33 -0300 ---> - - <listitem> - <para> - Prevent autovacuum launcher from sleeping unduly long if the server - clock is moved backwards a large amount (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Teodor Sigaev <teodor@sigaev.ru> -Branch: master [e26692248] 2015-09-07 17:16:29 +0300 -Branch: REL9_5_STABLE [d592a8745] 2015-09-07 17:17:15 +0300 -Branch: REL9_4_STABLE [b6e367373] 2015-09-07 17:17:42 +0300 -Branch: REL9_3_STABLE [cd6f4248f] 2015-09-07 17:18:10 +0300 -Branch: REL9_2_STABLE [3ffbc4994] 2015-09-07 17:18:26 +0300 -Branch: REL9_1_STABLE [364c02357] 2015-09-07 17:18:45 +0300 -Branch: REL9_0_STABLE [a7496aee6] 2015-09-07 17:20:44 +0300 ---> - - <listitem> - <para> - Ensure that cleanup of a GIN index's pending-insertions list is - interruptable by cancel requests (Jeff Janes) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [334445179] 2015-07-27 12:30:26 +0300 -Branch: REL9_5_STABLE [202aea62a] 2015-07-27 12:31:05 +0300 -Branch: REL9_4_STABLE [746e7f1c1] 2015-07-27 12:32:08 +0300 -Branch: REL9_3_STABLE [bafe3b007] 2015-07-27 12:32:30 +0300 -Branch: REL9_2_STABLE [7658368cf] 2015-07-27 12:32:48 +0300 -Branch: REL9_1_STABLE [a471700e3] 2015-07-27 12:33:13 +0300 -Branch: REL9_0_STABLE [f87bf8480] 2015-07-27 12:33:18 +0300 ---> - - <listitem> - <para> - Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas) - </para> - - <para> - Such a page might be left behind after a crash. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [023430abf] 2015-07-27 12:28:21 +0300 -Branch: REL9_5_STABLE [2fa8ba348] 2015-07-27 12:31:05 +0300 -Branch: REL9_4_STABLE [579b9f97c] 2015-07-27 12:32:08 +0300 -Branch: REL9_3_STABLE [863af3a37] 2015-07-27 12:32:30 +0300 -Branch: REL9_2_STABLE [f4297f8c5] 2015-07-27 12:32:48 +0300 ---> - - <listitem> - <para> - Fix handling of all-zeroes pages in SP-GiST indexes (Heikki - Linnakangas) - </para> - - <para> - <command>VACUUM</> attempted to recycle such pages, but did so in a - way that wasn't crash-safe. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [766dcfb16] 2015-07-23 01:29:59 +0300 -Branch: REL9_5_STABLE [a9b3a22aa] 2015-07-23 01:30:07 +0300 -Branch: REL9_4_STABLE [b7551339d] 2015-07-23 01:30:09 +0300 -Branch: REL9_3_STABLE [6ae9a0218] 2015-07-23 01:30:11 +0300 -Branch: REL9_2_STABLE [84330d0c1] 2015-07-23 01:30:15 +0300 -Branch: REL9_1_STABLE [e54e17aca] 2015-07-23 01:30:17 +0300 -Branch: REL9_0_STABLE [40ad78220] 2015-07-23 01:30:19 +0300 ---> - - <listitem> - <para> - Fix off-by-one error that led to otherwise-harmless warnings - about <quote>apparent wraparound</> in subtrans/multixact truncation - (Thomas Munro) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [2edb94911] 2015-08-18 19:22:37 -0400 -Branch: REL9_5_STABLE [4c3754ffe] 2015-08-18 19:22:37 -0400 -Branch: REL9_4_STABLE [928d0226e] 2015-08-18 19:22:38 -0400 -Branch: REL9_3_STABLE [8992e1acd] 2015-08-18 19:22:38 -0400 -Branch: REL9_2_STABLE [fb41bf4b5] 2015-08-18 19:22:38 -0400 -Branch: REL9_1_STABLE [17aa3c2d1] 2015-08-18 19:22:38 -0400 -Branch: REL9_0_STABLE [e41718fa1] 2015-08-18 19:22:38 -0400 ---> - - <listitem> - <para> - Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement - types in <application>PL/pgSQL</>'s error context messages - (Pavel Stehule, Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b631a46ed] 2015-09-29 10:52:22 -0400 -Branch: REL9_5_STABLE [a16b9b193] 2015-09-29 10:52:22 -0400 -Branch: REL9_4_STABLE [b62c870ff] 2015-09-29 10:52:22 -0400 -Branch: REL9_3_STABLE [f60b2e2d4] 2015-09-29 10:52:22 -0400 -Branch: REL9_2_STABLE [aae40cf13] 2015-09-29 10:52:22 -0400 -Branch: REL9_1_STABLE [ca6c2f863] 2015-09-29 10:52:22 -0400 ---> - - <listitem> - <para> - Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error - message texts correctly (Alex Hunsaker) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [09b3d2725] 2015-08-21 11:19:33 -0400 -Branch: REL9_5_STABLE [20bef3fe2] 2015-08-21 11:19:40 -0400 -Branch: REL9_4_STABLE [f7ed465e0] 2015-08-21 11:19:44 -0400 -Branch: REL9_3_STABLE [461235bda] 2015-08-21 11:19:49 -0400 -Branch: REL9_2_STABLE [2f1d558bc] 2015-08-21 11:19:54 -0400 -Branch: REL9_1_STABLE [f2ae044ba] 2015-08-21 11:19:58 -0400 -Branch: master [f469f634a] 2015-08-21 12:21:37 -0400 -Branch: REL9_5_STABLE [19446280f] 2015-08-21 12:21:37 -0400 -Branch: REL9_4_STABLE [22b9ce798] 2015-08-21 12:21:37 -0400 -Branch: REL9_3_STABLE [59592efcf] 2015-08-21 12:21:37 -0400 -Branch: REL9_2_STABLE [dadef8af2] 2015-08-21 12:21:37 -0400 -Branch: REL9_1_STABLE [1d190d095] 2015-08-21 12:21:37 -0400 ---> - - <listitem> - <para> - Fix <application>PL/Python</> crash when returning the string - representation of a <type>record</> result (Tom Lane) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [f8d67ca8d] 2015-07-20 14:10:07 +0200 -Branch: REL9_5_STABLE [b0b6f8d71] 2015-07-20 14:18:08 +0200 -Branch: REL9_4_STABLE [49c300040] 2015-07-20 14:18:08 +0200 -Branch: REL9_3_STABLE [b2efbb71d] 2015-07-20 14:18:08 +0200 -Branch: REL9_2_STABLE [3cb6ef998] 2015-07-20 14:18:08 +0200 -Branch: REL9_1_STABLE [14ade020f] 2015-07-20 14:18:08 +0200 -Branch: REL9_0_STABLE [4c11967e7] 2015-07-20 14:18:08 +0200 ---> - - <listitem> - <para> - Fix some places in <application>PL/Tcl</> that neglected to check for - failure of <function>malloc()</> calls (Michael Paquier, Álvaro - Herrera) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [cb3384a0c] 2015-08-02 22:12:33 +0300 -Branch: REL9_5_STABLE [ea8385df6] 2015-08-02 22:12:38 +0300 -Branch: REL9_4_STABLE [d7d4bd2c3] 2015-08-02 22:12:41 +0300 -Branch: REL9_3_STABLE [9d04a9824] 2015-08-02 22:12:45 +0300 -Branch: REL9_2_STABLE [56187c6fb] 2015-08-02 22:12:48 +0300 -Branch: REL9_1_STABLE [2d19a0e97] 2015-08-02 22:12:51 +0300 ---> - - <listitem> - <para> - In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin - with 979 (Fabien Coelho) - </para> - - <para> - EANs beginning with 979 (but not 9790) are considered ISBNs, but they - must be printed in the new 13-digit format, not the 10-digit format. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8bbe4cbd9] 2015-10-04 17:58:42 -0400 -Branch: REL9_5_STABLE [39a716d93] 2015-10-04 17:58:30 -0400 -Branch: REL9_4_STABLE [93840f96c] 2015-10-04 17:58:30 -0400 ---> - - <listitem> - <para> - Improve <filename>contrib/pg_stat_statements</>' handling of - query-text garbage collection (Peter Geoghegan) - </para> - - <para> - The external file containing query texts could bloat to very large - sizes; once it got past 1GB attempts to trim it would fail, soon - leading to situations where the file could not be read at all. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [76f965ff1] 2015-09-24 12:47:29 -0400 -Branch: REL9_5_STABLE [59d765b65] 2015-09-24 12:47:30 -0400 -Branch: REL9_4_STABLE [0da864c53] 2015-09-24 12:47:30 -0400 -Branch: REL9_3_STABLE [b7dcb2dd4] 2015-09-24 12:47:30 -0400 ---> - - <listitem> - <para> - Improve <filename>contrib/postgres_fdw</>'s handling of - collation-related decisions (Tom Lane) - </para> - - <para> - The main user-visible effect is expected to be that comparisons - involving <type>varchar</> columns will be sent to the remote server - for execution in more cases than before. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [414bef30b] 2015-07-07 18:44:59 +0300 -Branch: REL9_5_STABLE [28c38396e] 2015-07-07 18:47:25 +0300 -Branch: REL9_4_STABLE [992c6f0d2] 2015-07-07 18:45:17 +0300 -Branch: REL9_3_STABLE [fcdac5614] 2015-07-07 18:45:22 +0300 -Branch: REL9_2_STABLE [6d88c1fc5] 2015-07-07 18:45:24 +0300 -Branch: REL9_1_STABLE [dcbaf4b37] 2015-07-07 18:45:28 +0300 -Branch: REL9_0_STABLE [2b189c7ec] 2015-07-07 18:45:31 +0300 ---> - - <listitem> - <para> - Improve <application>libpq</>'s handling of out-of-memory conditions - (Michael Paquier, Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Michael Meskes <meskes@postgresql.org> -Branch: master Release: REL9_5_BR [82be1bf50] 2015-06-12 14:50:47 +0200 -Branch: REL9_4_STABLE [70767ac26] 2015-06-13 11:05:06 +0200 -Branch: REL9_3_STABLE [d65e5f832] 2015-06-13 11:08:16 +0200 -Branch: REL9_2_STABLE [1ea539ae3] 2015-06-13 11:13:59 +0200 -Branch: REL9_1_STABLE [866e7f591] 2015-06-13 11:15:09 +0200 -Branch: REL9_0_STABLE [4678be617] 2015-06-13 11:18:31 +0200 -Branch: master Release: REL9_5_BR [96ad72d1c] 2015-06-12 14:52:55 +0200 -Branch: REL9_4_STABLE [4f60d6658] 2015-06-13 11:04:58 +0200 -Branch: REL9_3_STABLE [31c06d4b6] 2015-06-13 11:13:16 +0200 -Branch: REL9_2_STABLE [ec311b1d8] 2015-06-13 11:14:07 +0200 -Branch: REL9_1_STABLE [a5238ced6] 2015-06-13 11:17:42 +0200 -Branch: REL9_0_STABLE [235bd4ccb] 2015-06-13 11:20:31 +0200 -Branch: master Release: REL9_5_BR [af0b49fc9] 2015-06-15 14:20:09 +0200 -Branch: REL9_4_STABLE [853222ce0] 2015-06-15 14:22:18 +0200 -Branch: REL9_3_STABLE [3e2a17eec] 2015-06-15 14:22:50 +0200 -Branch: REL9_2_STABLE [fd1ff4a13] 2015-06-15 14:23:04 +0200 -Branch: REL9_1_STABLE [a38f08bb9] 2015-06-15 14:23:17 +0200 -Branch: REL9_0_STABLE [abf92840a] 2015-06-15 14:23:30 +0200 -Branch: master Release: REL9_5_BR [94a484222] 2015-06-15 14:21:03 +0200 -Branch: REL9_4_STABLE [2a781b5bb] 2015-06-15 14:22:24 +0200 -Branch: REL9_3_STABLE [4130b2c1f] 2015-06-15 14:22:54 +0200 -Branch: REL9_2_STABLE [711cbaadd] 2015-06-15 14:23:07 +0200 -Branch: REL9_1_STABLE [6ab1a53dd] 2015-06-15 14:23:21 +0200 -Branch: REL9_0_STABLE [d278ff3b2] 2015-06-15 14:27:39 +0200 ---> - - <listitem> - <para> - Fix memory leaks and missing out-of-memory checks - in <application>ecpg</> (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [4778a0bda] 2015-09-24 23:01:04 -0400 -Branch: REL9_5_STABLE [f1ee153dc] 2015-09-24 23:01:04 -0400 -Branch: REL9_4_STABLE [348dd2847] 2015-09-24 23:01:04 -0400 -Branch: REL9_3_STABLE [7e327ecd2] 2015-09-24 23:01:04 -0400 -Branch: REL9_2_STABLE [596c9e9ef] 2015-09-24 23:01:04 -0400 -Branch: REL9_1_STABLE [7ddadacec] 2015-09-24 23:01:04 -0400 -Branch: REL9_0_STABLE [c2d6ef14e] 2015-09-24 23:01:04 -0400 -Branch: master [6325527d8] 2015-09-25 00:00:33 -0400 -Branch: REL9_5_STABLE [da4af91ce] 2015-09-25 00:00:43 -0400 -Branch: REL9_4_STABLE [49917edad] 2015-09-25 00:00:51 -0400 -Branch: REL9_3_STABLE [9c547c939] 2015-09-25 00:00:58 -0400 -Branch: REL9_2_STABLE [60617d7d6] 2015-09-25 00:01:08 -0400 -Branch: REL9_1_STABLE [c48623d8d] 2015-09-25 00:01:14 -0400 -Branch: REL9_0_STABLE [71763ecff] 2015-09-25 00:01:20 -0400 -Branch: master [77130fc14] 2015-09-25 12:20:45 -0400 -Branch: REL9_5_STABLE [5eb702437] 2015-09-25 12:20:45 -0400 -Branch: REL9_4_STABLE [c961f401b] 2015-09-25 12:20:45 -0400 -Branch: REL9_3_STABLE [b7d17eca5] 2015-09-25 12:20:46 -0400 -Branch: REL9_2_STABLE [80fa54210] 2015-09-25 12:20:46 -0400 -Branch: REL9_1_STABLE [f88643476] 2015-09-25 12:20:46 -0400 -Branch: REL9_0_STABLE [98d8c75f9] 2015-09-25 12:20:46 -0400 ---> - - <listitem> - <para> - Fix <application>psql</>'s code for locale-aware formatting of numeric - output (Tom Lane) - </para> - - <para> - The formatting code invoked by <literal>\pset numericlocale on</> - did the wrong thing for some uncommon cases such as numbers with an - exponent but no decimal point. It could also mangle already-localized - output from the <type>money</> data type. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [e135c3d99] 2015-07-08 20:44:21 -0400 -Branch: REL9_5_STABLE [fb990ce6c] 2015-07-08 20:44:25 -0400 -Branch: REL9_4_STABLE [eb1525e89] 2015-07-08 20:44:26 -0400 -Branch: REL9_3_STABLE [49008d645] 2015-07-08 20:44:26 -0400 -Branch: REL9_2_STABLE [458ccbf2b] 2015-07-08 20:44:27 -0400 -Branch: REL9_1_STABLE [5f173a9f2] 2015-07-08 20:44:27 -0400 -Branch: REL9_0_STABLE [6087bf1a1] 2015-07-08 20:44:27 -0400 ---> - - <listitem> - <para> - Prevent crash in <application>psql</>'s <command>\c</> command when - there is no current connection (Noah Misch) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8ab4a6bd3] 2015-10-01 16:20:13 -0400 -Branch: REL9_5_STABLE [5ea47e8f2] 2015-10-01 16:20:15 -0400 -Branch: REL9_4_STABLE [35435af38] 2015-10-01 16:19:49 -0400 -Branch: REL9_3_STABLE [7e1e1c9d1] 2015-10-01 16:19:49 -0400 -Branch: REL9_2_STABLE [3756c65a0] 2015-10-01 16:19:49 -0400 ---> - - <listitem> - <para> - Make <application>pg_dump</> handle inherited <literal>NOT VALID</> - check constraints correctly (Tom Lane) - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [caef94d59] 2015-07-25 17:14:36 -0400 -Branch: REL9_5_STABLE [08012455c] 2015-07-25 17:15:32 -0400 -Branch: REL9_4_STABLE [41ed5bb9a] 2015-07-25 17:15:48 -0400 -Branch: REL9_3_STABLE [84bf6ece1] 2015-07-25 17:16:03 -0400 -Branch: REL9_2_STABLE [aa1266d5f] 2015-07-25 17:16:14 -0400 -Branch: REL9_1_STABLE [af225551e] 2015-07-25 17:16:39 -0400 ---> - - <listitem> - <para> - Fix selection of default <application>zlib</> compression level - in <application>pg_dump</>'s directory output format (Andrew Dunstan) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [8346218c0] 2015-09-20 20:42:27 -0400 -Branch: REL9_5_STABLE [1be9d65e1] 2015-09-20 20:42:44 -0400 -Branch: REL9_4_STABLE [7496aba80] 2015-09-20 20:42:50 -0400 -Branch: REL9_3_STABLE [ea218a2ba] 2015-09-20 20:42:55 -0400 -Branch: REL9_2_STABLE [c94b65f67] 2015-09-20 20:43:47 -0400 -Branch: REL9_1_STABLE [5dc49efe9] 2015-09-20 20:44:23 -0400 -Branch: REL9_0_STABLE [24aed2124] 2015-09-20 20:44:34 -0400 ---> - - <listitem> - <para> - Ensure that temporary files created during a <application>pg_dump</> - run with <acronym>tar</>-format output are not world-readable (Michael - Paquier) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [7f8d090b8] 2015-09-11 15:51:11 -0400 -Branch: REL9_5_STABLE [3243fce88] 2015-09-11 15:51:11 -0400 -Branch: REL9_4_STABLE [35d2fc1f2] 2015-09-11 15:51:11 -0400 -Branch: REL9_3_STABLE [ca445043e] 2015-09-11 15:51:10 -0400 -Branch: REL9_2_STABLE [befc63e84] 2015-09-11 15:51:10 -0400 -Branch: REL9_1_STABLE [c5391e933] 2015-09-11 15:51:10 -0400 -Branch: REL9_0_STABLE [52b07779d] 2015-09-11 15:51:10 -0400 ---> - - <listitem> - <para> - Fix <application>pg_dump</> and <application>pg_upgrade</> to support - cases where the <literal>postgres</> or <literal>template1</> database - is in a non-default tablespace (Marti Raudsepp, Bruce Momjian) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b861678f5] 2015-08-10 20:10:15 -0400 -Branch: REL9_5_STABLE [1cd468516] 2015-08-10 20:10:15 -0400 -Branch: REL9_4_STABLE [3352c23a6] 2015-08-10 20:10:16 -0400 -Branch: REL9_3_STABLE [75d02d787] 2015-08-10 20:10:16 -0400 -Branch: REL9_2_STABLE [be9ef396c] 2015-08-10 20:10:16 -0400 -Branch: REL9_1_STABLE [34f1a85e5] 2015-08-10 20:10:16 -0400 -Branch: REL9_0_STABLE [298d1f808] 2015-08-10 20:10:16 -0400 ---> - - <listitem> - <para> - Fix <application>pg_dump</> to handle object privileges sanely when - dumping from a server too old to have a particular privilege type - (Tom Lane) - </para> - - <para> - When dumping data types from pre-9.2 servers, and when dumping - functions or procedural languages from pre-7.3 - servers, <application>pg_dump</> would - produce <command>GRANT</>/<command>REVOKE</> commands that revoked the - owner's grantable privileges and instead granted all privileges - to <literal>PUBLIC</>. Since the privileges involved are - just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security - problem, but it's certainly a surprising representation of the older - systems' behavior. Fix it to leave the default privilege state alone - in these cases. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3bdd7f90f] 2015-08-04 19:34:12 -0400 -Branch: REL9_5_STABLE [1f507c7e9] 2015-08-04 19:34:12 -0400 -Branch: REL9_4_STABLE [fa6e785fd] 2015-08-04 19:34:12 -0400 -Branch: REL9_3_STABLE [5da713f31] 2015-08-04 19:34:12 -0400 -Branch: REL9_2_STABLE [dae6e4601] 2015-08-04 19:34:12 -0400 -Branch: REL9_1_STABLE [270a877cc] 2015-08-04 19:34:12 -0400 -Branch: REL9_0_STABLE [5d175be17] 2015-08-04 19:34:12 -0400 ---> - - <listitem> - <para> - Fix <application>pg_dump</> to dump shell types (Tom Lane) - </para> - - <para> - Shell types (that is, not-yet-fully-defined types) aren't useful for - much, but nonetheless <application>pg_dump</> should dump them. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [bcc87b6b0] 2015-07-12 16:26:08 -0400 -Branch: REL9_5_STABLE [0e78a610f] 2015-07-12 16:26:18 -0400 -Branch: REL9_4_STABLE [1ed549387] 2015-07-12 16:25:51 -0400 -Branch: REL9_3_STABLE [faf686b54] 2015-07-12 16:25:52 -0400 -Branch: REL9_2_STABLE [a24ceea4b] 2015-07-12 16:25:52 -0400 -Branch: REL9_1_STABLE [e9a859b54] 2015-07-12 16:25:52 -0400 ---> - - <listitem> - <para> - Fix assorted minor memory leaks in <application>pg_dump</> and other - client-side programs (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [9031ff91a] 2015-07-03 11:12:34 +0300 -Branch: REL9_5_STABLE [5174ca17a] 2015-07-03 11:15:55 +0300 -Branch: REL9_4_STABLE [9d6352aaa] 2015-07-03 11:15:27 +0300 ---> - - <listitem> - <para> - Fix <application>pgbench</>'s progress-report behavior when a query, - or <application>pgbench</> itself, gets stuck (Fabien Coelho) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_4_STABLE [747ca6697] 2015-08-29 16:34:30 -0400 ---> - - <listitem> - <para> - Fix spinlock assembly code for Alpha hardware (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c41a1215f] 2015-08-29 16:09:25 -0400 -Branch: REL9_5_STABLE [ffbc387bf] 2015-08-29 16:09:25 -0400 -Branch: REL9_4_STABLE [3da9c060f] 2015-08-29 16:09:25 -0400 -Branch: REL9_3_STABLE [c355df54e] 2015-08-29 16:09:25 -0400 -Branch: REL9_2_STABLE [472680c57] 2015-08-29 16:09:25 -0400 -Branch: REL9_1_STABLE [14b497cfb] 2015-08-29 16:09:25 -0400 -Branch: REL9_0_STABLE [b5a22d8bb] 2015-08-29 16:09:25 -0400 ---> - - <listitem> - <para> - Fix spinlock assembly code for PPC hardware to be compatible - with <acronym>AIX</>'s native assembler (Tom Lane) - </para> - - <para> - Building with <application>gcc</> didn't work if <application>gcc</> - had been configured to use the native assembler, which is becoming more - common. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [43d89a23d] 2015-07-17 03:01:14 -0400 -Branch: REL9_5_STABLE [eb3b93b53] 2015-07-17 03:01:29 -0400 -Branch: REL9_4_STABLE [f3f037e18] 2015-07-17 03:01:35 -0400 -Branch: REL9_3_STABLE [7319c0524] 2015-07-17 03:02:03 -0400 -Branch: REL9_2_STABLE [12073b9aa] 2015-07-17 03:02:18 -0400 -Branch: REL9_1_STABLE [76fa354c5] 2015-07-17 03:02:23 -0400 -Branch: REL9_0_STABLE [cdf596b1c] 2015-07-17 03:02:46 -0400 ---> - - <listitem> - <para> - On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option - rather than just assuming it's safe to use (Noah Misch) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [bcd7c4120] 2015-07-15 21:00:26 -0400 -Branch: REL9_5_STABLE [c2b824e34] 2015-07-15 21:00:30 -0400 -Branch: REL9_4_STABLE [2405107b4] 2015-07-15 21:00:30 -0400 -Branch: REL9_3_STABLE [dc5075fed] 2015-07-15 21:00:30 -0400 -Branch: REL9_2_STABLE [690bec26c] 2015-07-15 21:00:31 -0400 -Branch: REL9_1_STABLE [1dd2b6b68] 2015-07-15 21:00:31 -0400 -Branch: REL9_0_STABLE [7803d5720] 2015-07-15 21:00:31 -0400 ---> - - <listitem> - <para> - On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow - symbols to be resolved at runtime (Noah Misch) - </para> - - <para> - Perl relies on this ability in 5.8.0 and later. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [c53f73879] 2015-07-29 22:49:48 -0400 -Branch: REL9_5_STABLE [a664d4790] 2015-07-29 22:52:43 -0400 -Branch: REL9_4_STABLE [76cf5f195] 2015-07-29 22:53:09 -0400 -Branch: REL9_3_STABLE [23e7ee962] 2015-07-29 22:53:40 -0400 -Branch: REL9_2_STABLE [0a89f3bc6] 2015-07-29 22:53:58 -0400 -Branch: REL9_1_STABLE [d20327a4f] 2015-07-29 22:54:03 -0400 -Branch: REL9_0_STABLE [2d8c136e7] 2015-07-29 22:54:08 -0400 ---> - - <listitem> - <para> - Avoid use of inline functions when compiling with - 32-bit <application>xlc</>, due to compiler bugs (Noah Misch) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master Release: REL9_5_BR [ab93f90cd] 2015-06-30 14:20:38 -0300 -Branch: REL9_4_STABLE [ef704ec06] 2015-06-30 14:20:38 -0300 -Branch: REL9_3_STABLE [c085e072f] 2015-06-30 14:20:38 -0300 -Branch: REL9_2_STABLE [c538d7363] 2015-06-30 14:20:38 -0300 -Branch: REL9_1_STABLE [a9f886f41] 2015-06-30 14:20:38 -0300 -Branch: REL9_0_STABLE [b185c42c1] 2015-06-30 14:20:37 -0300 ---> - - <listitem> - <para> - Use <filename>librt</> for <function>sched_yield()</> when necessary, - which it is on some Solaris versions (Oskari Saarenmaa) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [ec79978dd] 2015-08-14 20:23:13 -0400 -Branch: REL9_5_STABLE [f19ad6fbe] 2015-08-14 20:23:35 -0400 -Branch: REL9_4_STABLE [a0104e080] 2015-08-14 20:23:42 -0400 ---> - - <listitem> - <para> - Translate encoding <literal>UHC</> as Windows code page 949 - (Noah Misch) - </para> - - <para> - This fixes presentation of non-ASCII log messages from processes that - are not attached to any particular database, such as the postmaster. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [43adc7a71] 2015-08-14 20:23:09 -0400 -Branch: REL9_5_STABLE [92516bf19] 2015-08-14 20:23:34 -0400 -Branch: REL9_4_STABLE [f988da953] 2015-08-14 20:23:41 -0400 ---> - - <listitem> - <para> - On Windows, avoid failure when doing encoding conversion to UTF16 - outside a transaction, such as for log messages (Noah Misch) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master Release: REL9_5_BR [f0a264a36] 2015-06-20 12:09:29 -0400 -Branch: REL9_4_STABLE [b2ed1682d] 2015-06-20 12:10:56 -0400 ---> - - <listitem> - <para> - Fix postmaster startup failure due to not - copying <function>setlocale()</>'s return value (Noah Misch) - </para> - - <para> - This has been reported on Windows systems with the ANSI code page set - to CP936 (<quote>Chinese (Simplified, PRC)</>), and may occur with - other multibyte code pages. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [6c534fd68] 2015-07-06 22:18:26 +0300 -Branch: REL9_5_STABLE [e5460aa02] 2015-07-07 16:33:10 +0300 -Branch: REL9_4_STABLE [4dac5651b] 2015-07-07 16:31:52 +0300 -Branch: REL9_3_STABLE [880365a3c] 2015-07-07 16:37:16 +0300 -Branch: REL9_2_STABLE [a5273ef37] 2015-07-07 16:37:34 +0300 -Branch: REL9_1_STABLE [3b7cf4367] 2015-07-07 16:38:24 +0300 -Branch: REL9_0_STABLE [341b877d3] 2015-07-07 16:39:25 +0300 ---> - - <listitem> - <para> - Fix Windows <filename>install.bat</> script to handle target directory - names that contain spaces (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a5d489ccb] 2015-07-02 17:24:36 -0400 -Branch: REL9_5_STABLE [d1fec374f] 2015-07-05 12:01:01 -0400 -Branch: REL9_4_STABLE [60c38e62c] 2015-07-05 12:01:01 -0400 -Branch: REL9_3_STABLE [544e75814] 2015-07-05 12:01:01 -0400 -Branch: REL9_2_STABLE [89b8cf47b] 2015-07-05 12:01:01 -0400 -Branch: REL9_1_STABLE [9b00885d0] 2015-07-05 12:01:01 -0400 -Branch: REL9_0_STABLE [29ff43adf] 2015-07-05 12:01:02 -0400 ---> - - <listitem> - <para> - Make the numeric form of the <productname>PostgreSQL</> version number - (e.g., <literal>90405</>) readily available to extension Makefiles, - as a variable named <varname>VERSION_NUM</> (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [241e6844a] 2015-10-02 19:15:39 -0400 -Branch: REL9_5_STABLE [19b06cc66] 2015-10-02 19:15:49 -0400 -Branch: REL9_4_STABLE [8e45497a2] 2015-10-02 19:15:57 -0400 -Branch: REL9_3_STABLE [0f6a046b6] 2015-10-02 19:16:06 -0400 -Branch: REL9_2_STABLE [fd519c170] 2015-10-02 19:16:18 -0400 -Branch: REL9_1_STABLE [3a68e0a10] 2015-10-02 19:16:29 -0400 -Branch: REL9_0_STABLE [47ac95f37] 2015-10-02 19:16:37 -0400 ---> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2015g for - DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk - Island, North Korea, Turkey, and Uruguay. There is a new zone name - <literal>America/Fort_Nelson</> for the Canadian Northern Rockies. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-4"> - <title>Release 9.4.4</title> - - <formalpara> - <title>Release date:</title> - <para>2015-06-12</para> - </formalpara> - - <para> - This release contains a small number of fixes from 9.4.3. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.4</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading an installation that was previously - upgraded using a <application>pg_upgrade</> version between 9.3.0 and - 9.3.4 inclusive, see the first changelog entry below. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.2, - see <xref linkend="release-9-4-2">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [068cfadf9] 2015-06-05 09:31:57 -0400 -Branch: REL9_4_STABLE [b6a3444fa] 2015-06-05 09:33:52 -0400 -Branch: REL9_3_STABLE [2a9b01928] 2015-06-05 09:34:15 -0400 ---> - - <listitem> - <para> - Fix possible failure to recover from an inconsistent database state - (Robert Haas) - </para> - - <para> - Recent <productname>PostgreSQL</> releases introduced mechanisms to - protect against multixact wraparound, but some of that code did not - account for the possibility that it would need to run during crash - recovery, when the database may not be in a consistent state. This - could result in failure to restart after a crash, or failure to start - up a secondary server. The lingering effects of a previously-fixed - bug in <application>pg_upgrade</> could also cause such a failure, in - installations that had used <application>pg_upgrade</> versions - between 9.3.0 and 9.3.4. - </para> - - <para> - The <application>pg_upgrade</> bug in question was that it would - set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even - if the true value should be higher. With the fixes introduced in - this release, such a situation will result in immediate emergency - autovacuuming until a correct <literal>oldestMultiXid</> value can - be determined. If that would pose a hardship, users can avoid it by - doing manual vacuuming <emphasis>before</> upgrading to this release. - In detail: - - <orderedlist> - <listitem> - <para> - Check whether <application>pg_controldata</> reports <quote>Latest - checkpoint's oldestMultiXid</> to be 1. If not, there's nothing - to do. - </para> - </listitem> - <listitem> - <para> - Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a - file named <filename>0000</>. If there is, there's nothing to do. - </para> - </listitem> - <listitem> - <para> - Otherwise, for each table that has - <structname>pg_class</>.<structfield>relminmxid</> equal to 1, - <command>VACUUM</> that table with - both <xref linkend="guc-vacuum-multixact-freeze-min-age"> - and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to - zero. (You can use the vacuum cost delay parameters described - in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce - the performance consequences for concurrent sessions.) - </para> - </listitem> - </orderedlist> - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f3b5565dd] 2015-06-07 15:32:09 -0400 -Branch: REL9_4_STABLE [be25a08a9] 2015-06-07 15:32:09 -0400 -Branch: REL9_3_STABLE [4f2458dd7] 2015-06-07 15:32:09 -0400 -Branch: REL9_2_STABLE [3e69a73b9] 2015-06-07 15:32:09 -0400 -Branch: REL9_1_STABLE [e06e56212] 2015-06-07 15:32:09 -0400 -Branch: REL9_0_STABLE [2fe1939b0] 2015-06-07 15:32:09 -0400 ---> - - <listitem> - <para> - Fix rare failure to invalidate relation cache init file (Tom Lane) - </para> - - <para> - With just the wrong timing of concurrent activity, a <command>VACUUM - FULL</> on a system catalog might fail to update the <quote>init file</> - that's used to avoid cache-loading work for new sessions. This would - result in later sessions being unable to access that catalog at all. - This is a very ancient bug, but it's so hard to trigger that no - reproducible case had been seen until recently. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [ac23b711d] 2015-06-05 13:22:27 -0400 -Branch: REL9_4_STABLE [247263dc3] 2015-06-05 13:22:27 -0400 -Branch: REL9_3_STABLE [ac86eda63] 2015-06-05 13:22:27 -0400 -Branch: REL9_2_STABLE [04358dab2] 2015-06-05 13:22:27 -0400 -Branch: REL9_1_STABLE [002e7d144] 2015-06-05 13:22:27 -0400 -Branch: REL9_0_STABLE [dbd99c7f0] 2015-06-05 13:22:27 -0400 ---> - - <listitem> - <para> - Avoid deadlock between incoming sessions and <literal>CREATE/DROP - DATABASE</> (Tom Lane) - </para> - - <para> - A new session starting in a database that is the target of - a <command>DROP DATABASE</> command, or is the template for - a <command>CREATE DATABASE</> command, could cause the command to wait - for five seconds and then fail, even if the new session would have - exited before that. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3f59be836] 2015-06-03 11:59:10 -0400 -Branch: REL9_4_STABLE [f0a8515c4] 2015-06-03 11:58:47 -0400 -Branch: REL9_3_STABLE [d3fdec6ae] 2015-06-03 11:58:47 -0400 ---> - - <listitem> - <para> - Improve planner's cost estimates for semi-joins and anti-joins with - inner indexscans (Tom Lane, Tomas Vondra) - </para> - - <para> - This type of plan is quite cheap when all the join clauses are used - as index scan conditions, even if the inner scan would nominally - fetch many rows, because the executor will stop after obtaining one - row. The planner only partially accounted for that effect, and would - therefore overestimate the cost, leading it to possibly choose some - other much less efficient plan type. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-3"> - <title>Release 9.4.3</title> - - <formalpara> - <title>Release date:</title> - <para>2015-06-04</para> - </formalpara> - - <para> - This release contains a small number of fixes from 9.4.2. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.3</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are upgrading from a version earlier than 9.4.2, - see <xref linkend="release-9-4-2">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d8179b001] 2015-05-28 17:33:03 -0400 -Branch: REL9_4_STABLE [a3ae3db43] 2015-05-28 17:33:03 -0400 -Branch: REL9_3_STABLE [81f3d3b7c] 2015-05-28 17:33:03 -0400 -Branch: REL9_2_STABLE [aa8377e64] 2015-05-28 17:33:03 -0400 -Branch: REL9_1_STABLE [cb867853a] 2015-05-28 17:33:03 -0400 -Branch: REL9_0_STABLE [e4a04e5a4] 2015-05-28 17:33:03 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c07d8c963] 2015-05-29 13:05:16 -0400 -Branch: REL9_4_STABLE [dbde225b1] 2015-05-29 13:05:16 -0400 -Branch: REL9_3_STABLE [52fc94844] 2015-05-29 13:05:16 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [57e1138bc] 2015-05-29 15:11:36 -0400 -Branch: REL9_4_STABLE [70a4519b8] 2015-05-29 15:11:36 -0400 -Branch: REL9_3_STABLE [35dd1b51f] 2015-05-29 15:11:36 -0400 -Branch: REL9_2_STABLE [77642a819] 2015-05-29 15:11:36 -0400 -Branch: REL9_1_STABLE [9e79ca326] 2015-05-29 15:11:36 -0400 -Branch: REL9_0_STABLE [bf2f20c08] 2015-05-29 15:11:36 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [1943c000b] 2015-05-29 17:02:58 -0400 -Branch: REL9_4_STABLE [99f50dd72] 2015-05-29 17:02:58 -0400 -Branch: REL9_3_STABLE [c2b68b1f7] 2015-05-29 17:02:58 -0400 ---> - - <listitem> - <para> - Avoid failures while <function>fsync</>'ing data directory during - crash restart (Abhijit Menon-Sen, Tom Lane) - </para> - - <para> - In the previous minor releases we added a patch to <function>fsync</> - everything in the data directory after a crash. Unfortunately its - response to any error condition was to fail, thereby preventing the - server from starting up, even when the problem was quite harmless. - An example is that an unwritable file in the data directory would - prevent restart on some platforms; but it is common to make SSL - certificate files unwritable by the server. Revise this behavior so - that permissions failures are ignored altogether, and other types of - failures are logged but do not prevent continuing. - </para> - - <para> - Also apply the same rules in <literal>initdb --sync-only</>. - This case is less critical but it should act similarly. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [f46edf479] 2015-05-28 11:24:37 -0400 -Branch: REL9_4_STABLE [d4a9f5519] 2015-05-28 11:24:37 -0400 -Branch: REL9_3_STABLE [27bae8d96] 2015-05-28 11:24:37 -0400 -Branch: REL9_2_STABLE [f3c67aad4] 2015-05-28 11:24:37 -0400 ---> - - <listitem> - <para> - Fix <function>pg_get_functiondef()</> to show - functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke) - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [5302760a5] 2015-05-22 10:21:41 -0400 -Branch: REL9_4_STABLE [9b74f32cd] 2015-05-22 10:31:29 -0400 ---> - - <listitem> - <para> - Fix <function>pushJsonbValue()</> to unpack <type>jbvBinary</> - objects (Andrew Dunstan) - </para> - - <para> - This change does not affect any behavior in the core code as of 9.4, - but it avoids a corner case for possible third-party callers. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [86832eb89] 2015-05-26 22:14:59 -0400 -Branch: REL9_4_STABLE [79f0f7cab] 2015-05-26 22:14:59 -0400 -Branch: REL9_3_STABLE [9e980e7d0] 2015-05-26 22:14:59 -0400 -Branch: REL9_2_STABLE [1b1457120] 2015-05-26 22:14:59 -0400 -Branch: REL9_1_STABLE [5585cc707] 2015-05-26 22:14:59 -0400 -Branch: REL9_0_STABLE [b06649b7f] 2015-05-26 22:15:00 -0400 ---> - - <listitem> - <para> - Remove <application>configure</>'s check prohibiting linking to a - threaded <application>libpython</> - on <systemitem class="osname">OpenBSD</> (Tom Lane) - </para> - - <para> - The failure this restriction was meant to prevent seems to not be a - problem anymore on current <systemitem class="osname">OpenBSD</> - versions. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-2"> - <title>Release 9.4.2</title> - - <formalpara> - <title>Release date:</title> - <para>2015-05-22</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.1. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.2</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you use <filename>contrib/citext</>'s - <function>regexp_matches()</> functions, see the changelog entry below - about that. - </para> - - <para> - Also, if you are upgrading from a version earlier than 9.4.1, - see <xref linkend="release-9-4-1">. - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [b0ce38503] 2015-05-18 10:02:31 -0400 -Branch: REL9_4_STABLE [7a0d48ac7] 2015-05-18 10:02:35 -0400 -Branch: REL9_3_STABLE [f4c12b415] 2015-05-18 10:02:36 -0400 -Branch: REL9_2_STABLE [439ff9b6b] 2015-05-18 10:02:37 -0400 -Branch: REL9_1_STABLE [6675ab595] 2015-05-18 10:02:38 -0400 -Branch: REL9_0_STABLE [648e41a6e] 2015-05-18 10:02:38 -0400 ---> - - <listitem> - <para> - Avoid possible crash when client disconnects just before the - authentication timeout expires (Benkocs Norbert Attila) - </para> - - <para> - If the timeout interrupt fired partway through the session shutdown - sequence, SSL-related state would be freed twice, typically causing a - crash and hence denial of service to other sessions. Experimentation - shows that an unauthenticated remote attacker could trigger the bug - somewhat consistently, hence treat as security issue. - (CVE-2015-3165) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [cac18a76b] 2015-05-18 10:02:31 -0400 -Branch: REL9_4_STABLE [f7c4fe7d9] 2015-05-18 10:02:35 -0400 -Branch: REL9_3_STABLE [d5abbd114] 2015-05-18 10:02:36 -0400 -Branch: REL9_2_STABLE [1e6652aea] 2015-05-18 10:02:37 -0400 -Branch: REL9_1_STABLE [b544dcdad] 2015-05-18 10:02:38 -0400 -Branch: REL9_0_STABLE [19f7adc01] 2015-05-18 10:02:38 -0400 -Author: Noah Misch <noah@leadboat.com> -Branch: master [16304a013] 2015-05-18 10:02:31 -0400 -Branch: REL9_4_STABLE [2e3bd0665] 2015-05-18 10:02:35 -0400 -Branch: REL9_3_STABLE [34d21e770] 2015-05-18 10:02:36 -0400 -Branch: REL9_2_STABLE [82b7393eb] 2015-05-18 10:02:37 -0400 -Branch: REL9_1_STABLE [e58f042d9] 2015-05-18 10:02:38 -0400 -Branch: REL9_0_STABLE [b08c7aff7] 2015-05-18 10:02:38 -0400 -Author: Noah Misch <noah@leadboat.com> -Branch: master [fd97bd411] 2015-05-18 10:02:31 -0400 -Branch: REL9_4_STABLE [ca325941d] 2015-05-18 10:02:35 -0400 -Branch: REL9_3_STABLE [c669915fd] 2015-05-18 10:02:37 -0400 -Branch: REL9_2_STABLE [01272d95a] 2015-05-18 10:02:37 -0400 -Branch: REL9_1_STABLE [2cb9f2cab] 2015-05-18 10:02:38 -0400 -Branch: REL9_0_STABLE [9b5e831e3] 2015-05-18 10:02:38 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0c071936e] 2015-05-19 18:19:38 -0400 -Branch: REL9_4_STABLE [2eb2fcd56] 2015-05-19 18:16:19 -0400 -Branch: REL9_3_STABLE [13341276e] 2015-05-19 18:16:58 -0400 -Branch: REL9_2_STABLE [221f7a949] 2015-05-19 18:17:42 -0400 -Branch: REL9_1_STABLE [0510cff6e] 2015-05-19 18:18:16 -0400 -Branch: REL9_0_STABLE [cf893530a] 2015-05-19 18:18:56 -0400 ---> - - <listitem> - <para> - Improve detection of system-call failures (Noah Misch) - </para> - - <para> - Our replacement implementation of <function>snprintf()</> failed to - check for errors reported by the underlying system library calls; - the main case that might be missed is out-of-memory situations. - In the worst case this might lead to information exposure, due to our - code assuming that a buffer had been overwritten when it hadn't been. - Also, there were a few places in which security-relevant calls of other - system library functions did not check for failure. - </para> - - <para> - It remains possible that some calls of the <function>*printf()</> - family of functions are vulnerable to information disclosure if an - out-of-memory error occurs at just the wrong time. We judge the risk - to not be large, but will continue analysis in this area. - (CVE-2015-3166) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [85270ac7a] 2015-05-18 10:02:31 -0400 -Branch: REL9_4_STABLE [fba1fb4ef] 2015-05-18 10:02:35 -0400 -Branch: REL9_3_STABLE [7b758b7d6] 2015-05-18 10:02:37 -0400 -Branch: REL9_2_STABLE [0ba200431] 2015-05-18 10:02:37 -0400 -Branch: REL9_1_STABLE [e5981aebd] 2015-05-18 10:02:38 -0400 -Branch: REL9_0_STABLE [b84e5c017] 2015-05-18 10:02:39 -0400 ---> - - <listitem> - <para> - In <filename>contrib/pgcrypto</>, uniformly report decryption failures - as <quote>Wrong key or corrupt data</> (Noah Misch) - </para> - - <para> - Previously, some cases of decryption with an incorrect key could report - other error message texts. It has been shown that such variance in - error reports can aid attackers in recovering keys from other systems. - While it's unknown whether <filename>pgcrypto</>'s specific behaviors - are likewise exploitable, it seems better to avoid the risk by using a - one-size-fits-all message. - (CVE-2015-3167) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [b69bf30b9] 2015-04-28 11:32:53 -0300 -Branch: REL9_4_STABLE [942542cbb] 2015-04-28 11:32:53 -0300 -Branch: REL9_3_STABLE [e2eda4b11] 2015-04-28 11:32:53 -0300 -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [669c7d20e] 2015-04-30 13:55:06 -0300 -Branch: REL9_4_STABLE [7140e11d8] 2015-04-30 13:55:06 -0300 -Branch: REL9_3_STABLE [e60581fdf] 2015-04-30 13:55:06 -0300 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [7be47c56a] 2015-05-07 11:19:31 -0400 -Branch: REL9_4_STABLE [32c50af4c] 2015-05-07 11:13:55 -0400 -Branch: REL9_3_STABLE [83fbd9b59] 2015-05-07 11:16:41 -0400 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [312747c22] 2015-05-10 21:34:26 -0400 -Branch: REL9_4_STABLE [7b3f0f8b8] 2015-05-10 21:47:28 -0400 -Branch: REL9_3_STABLE [24aa77ec9] 2015-05-10 21:47:41 -0400 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [f6a6c46d7] 2015-05-10 22:21:20 -0400 -Branch: REL9_4_STABLE [ded891916] 2015-05-10 22:45:27 -0400 -Branch: REL9_3_STABLE [5bbac7ec1] 2015-05-10 22:45:42 -0400 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [53bb309d2] 2015-05-08 12:53:00 -0400 -Branch: REL9_4_STABLE [3ecab37d9] 2015-05-08 12:53:30 -0400 -Branch: REL9_3_STABLE [596fb5aa7] 2015-05-08 12:55:14 -0400 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [04e6d3b87] 2015-05-11 10:51:14 -0400 -Branch: REL9_4_STABLE [8ec1a3a54] 2015-05-11 10:56:19 -0400 -Branch: REL9_3_STABLE [543fbecee] 2015-05-11 10:56:32 -0400 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [b4d4ce1d5] 2015-05-11 12:15:50 -0400 -Branch: REL9_4_STABLE [ea70595a3] 2015-05-11 12:16:35 -0400 -Branch: REL9_3_STABLE [ddebd2119] 2015-05-11 12:16:51 -0400 ---> - - <listitem> - <para> - Protect against wraparound of multixact member IDs - (Álvaro Herrera, Robert Haas, Thomas Munro) - </para> - - <para> - Under certain usage patterns, the existing defenses against this might - be insufficient, allowing <filename>pg_multixact/members</> files to be - removed too early, resulting in data loss. - The fix for this includes modifying the server to fail transactions - that would result in overwriting old multixact member ID data, and - improving autovacuum to ensure it will act proactively to prevent - multixact member ID wraparound, as it does for transaction ID - wraparound. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b22527f29] 2015-05-05 15:51:22 -0400 -Branch: REL9_4_STABLE [b1ec45994] 2015-05-05 15:50:53 -0400 -Branch: REL9_3_STABLE [ffac9f65d] 2015-05-05 15:50:53 -0400 -Branch: REL9_2_STABLE [d4070d10c] 2015-05-05 15:50:53 -0400 -Branch: REL9_1_STABLE [801e250a8] 2015-05-05 15:50:53 -0400 ---> - - <listitem> - <para> - Fix incorrect declaration of <filename>contrib/citext</>'s - <function>regexp_matches()</> functions (Tom Lane) - </para> - - <para> - These functions should return <type>setof text[]</>, like the core - functions they are wrappers for; but they were incorrectly declared as - returning just <type>text[]</>. This mistake had two results: first, - if there was no match you got a scalar null result, whereas what you - should get is an empty set (zero rows). Second, the <literal>g</> flag - was effectively ignored, since you would get only one result array even - if there were multiple matches. - </para> - - <para> - While the latter behavior is clearly a bug, there might be applications - depending on the former behavior; therefore the function declarations - will not be changed by default until <productname>PostgreSQL</> 9.5. - In pre-9.5 branches, the old behavior exists in version 1.0 of - the <literal>citext</> extension, while we have provided corrected - declarations in version 1.1 (which is <emphasis>not</> installed by - default). To adopt the fix in pre-9.5 branches, execute - <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in - which <literal>citext</> is installed. (You can also <quote>update</> - back to 1.0 if you need to undo that.) Be aware that either update - direction will require dropping and recreating any views or rules that - use <filename>citext</>'s <function>regexp_matches()</> functions. - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [bda76c1c8] 2015-02-26 12:25:21 -0500 -Branch: REL9_4_STABLE [79afe6e66] 2015-02-26 12:34:43 -0500 ---> - - <listitem> - <para> - Render infinite dates and timestamps as <literal>infinity</> when - converting to <type>json</>, rather than throwing an error - (Andrew Dunstan) - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [3c000fd9a] 2015-05-04 12:38:58 -0400 -Branch: REL9_4_STABLE [997066f44] 2015-05-04 12:43:16 -0400 ---> - - <listitem> - <para> - Fix <type>json</>/<type>jsonb</>'s <function>populate_record()</> - and <function>to_record()</> functions to handle empty input properly - (Andrew Dunstan) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [20781765f] 2015-05-11 12:25:43 -0400 -Branch: REL9_4_STABLE [4d3d9719d] 2015-05-11 12:25:44 -0400 -Branch: REL9_3_STABLE [7d09fdf82] 2015-05-11 12:25:45 -0400 -Branch: REL9_2_STABLE [46f9acd3e] 2015-05-11 12:25:28 -0400 -Branch: REL9_1_STABLE [dd75518d5] 2015-05-11 12:25:28 -0400 -Branch: REL9_0_STABLE [b93c8eaf8] 2015-05-11 12:25:28 -0400 ---> - - <listitem> - <para> - Fix incorrect checking of deferred exclusion constraints after a HOT - update (Tom Lane) - </para> - - <para> - If a new row that potentially violates a deferred exclusion constraint - is HOT-updated (that is, no indexed columns change and the row can be - stored back onto the same table page) later in the same transaction, - the exclusion constraint would be reported as violated when the check - finally occurred, even if the row(s) the new row originally conflicted - with had been deleted. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a4820434c] 2015-05-03 11:30:24 -0400 -Branch: REL9_4_STABLE [79edb2981] 2015-05-03 11:30:24 -0400 ---> - - <listitem> - <para> - Fix behavior when changing foreign key constraint deferrability status - with <literal>ALTER TABLE ... ALTER CONSTRAINT</> (Tom Lane) - </para> - - <para> - Operations later in the same session or concurrent sessions might not - honor the status change promptly. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b514a7460] 2015-02-28 12:43:04 -0500 -Branch: REL9_4_STABLE [fdacbf9e8] 2015-02-28 12:43:04 -0500 -Branch: REL9_3_STABLE [1b558782b] 2015-02-28 12:43:04 -0500 -Branch: REL9_2_STABLE [6f419958a] 2015-02-28 12:43:04 -0500 ---> - - <listitem> - <para> - Fix planning of star-schema-style queries (Tom Lane) - </para> - - <para> - Sometimes, efficient scanning of a large table requires that index - parameters be provided from more than one other table (commonly, - dimension tables whose keys are needed to index a large fact table). - The planner should be able to find such plans, but an overly - restrictive search heuristic prevented it. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3cf868601] 2015-04-25 16:44:27 -0400 -Branch: REL9_4_STABLE [5f3d1909c] 2015-04-25 16:44:27 -0400 -Branch: REL9_3_STABLE [3e47d0b2a] 2015-04-25 16:44:27 -0400 -Branch: REL9_2_STABLE [950f80dd5] 2015-04-25 16:44:27 -0400 -Branch: REL9_1_STABLE [2e38198f6] 2015-04-25 16:44:27 -0400 -Branch: REL9_0_STABLE [985da346e] 2015-04-25 16:44:27 -0400 ---> - - <listitem> - <para> - Prevent improper reordering of antijoins (NOT EXISTS joins) versus - other outer joins (Tom Lane) - </para> - - <para> - This oversight in the planner has been observed to cause <quote>could - not find RelOptInfo for given relids</> errors, but it seems possible - that sometimes an incorrect query plan might get past that consistency - check and result in silently-wrong query output. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [ca6805338] 2015-04-04 19:55:15 -0400 -Branch: REL9_4_STABLE [1d71d36ff] 2015-04-04 19:55:15 -0400 -Branch: REL9_3_STABLE [e105df208] 2015-04-04 19:55:15 -0400 -Branch: REL9_2_STABLE [b7d493bf7] 2015-04-04 19:55:15 -0400 -Branch: REL9_1_STABLE [3b5d67102] 2015-04-04 19:55:15 -0400 -Branch: REL9_0_STABLE [da8819194] 2015-04-04 19:55:15 -0400 ---> - - <listitem> - <para> - Fix incorrect matching of subexpressions in outer-join plan nodes - (Tom Lane) - </para> - - <para> - Previously, if textually identical non-strict subexpressions were used - both above and below an outer join, the planner might try to re-use - the value computed below the join, which would be incorrect because the - executor would force the value to NULL in case of an unmatched outer row. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [1a179f36f] 2015-02-10 20:37:19 -0500 -Branch: REL9_4_STABLE [433c79d2c] 2015-02-10 20:37:22 -0500 -Branch: REL9_3_STABLE [672abc402] 2015-02-10 20:37:24 -0500 -Branch: REL9_2_STABLE [0d083103f] 2015-02-10 20:37:26 -0500 -Branch: REL9_1_STABLE [52579d507] 2015-02-10 20:37:29 -0500 -Branch: REL9_0_STABLE [72bbca27e] 2015-02-10 20:37:31 -0500 ---> - - <listitem> - <para> - Fix GEQO planner to cope with failure of its join order heuristic - (Tom Lane) - </para> - - <para> - This oversight has been seen to lead to <quote>failed to join all - relations together</> errors in queries involving <literal>LATERAL</>, - and that might happen in other cases as well. - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [6f9bd50ea] 2015-02-25 21:36:29 -0500 -Branch: REL9_4_STABLE [f16270ade] 2015-02-25 21:36:40 -0500 ---> - - <listitem> - <para> - Ensure that row locking occurs properly when the target of - an <command>UPDATE</> or <command>DELETE</> is a security-barrier view - (Stephen Frost) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [dfbaed459] 2015-04-28 00:17:43 +0200 -Branch: REL9_4_STABLE [fd3dfc236] 2015-04-28 00:18:04 +0200 ---> - - <listitem> - <para> - Use a file opened for read/write when syncing replication slot data - during database startup (Andres Freund) - </para> - - <para> - On some platforms, the previous coding could result in errors like - <quote>could not fsync file "pg_replslot/...": Bad file descriptor</>. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [2c47fe16a] 2015-04-23 21:39:35 +0300 -Branch: REL9_4_STABLE [438a062d5] 2015-04-23 21:35:10 +0300 -Branch: REL9_3_STABLE [f73ebd766] 2015-04-23 21:36:24 +0300 -Branch: REL9_2_STABLE [d3f5d2892] 2015-04-23 21:36:50 +0300 -Branch: REL9_1_STABLE [e8528a8f5] 2015-04-23 21:36:59 +0300 -Branch: REL9_0_STABLE [223a94680] 2015-04-23 21:37:09 +0300 ---> - - <listitem> - <para> - Fix possible deadlock at startup - when <literal>max_prepared_transactions</> is too small - (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [b2a5545bd] 2015-04-13 16:53:49 +0300 -Branch: REL9_4_STABLE [d72792d02] 2015-04-13 17:22:21 +0300 -Branch: REL9_3_STABLE [a800267e4] 2015-04-13 17:22:35 +0300 -Branch: REL9_2_STABLE [cc2939f44] 2015-04-13 17:26:59 +0300 -Branch: REL9_1_STABLE [ad2925e20] 2015-04-13 17:26:49 +0300 -Branch: REL9_0_STABLE [5b6938186] 2015-04-13 17:26:35 +0300 ---> - - <listitem> - <para> - Don't archive useless preallocated WAL files after a timeline switch - (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [2ce439f33] 2015-05-04 14:13:53 -0400 -Branch: REL9_4_STABLE [d8ac77ab1] 2015-05-04 14:19:32 -0400 -Branch: REL9_3_STABLE [14de825de] 2015-05-04 12:27:55 -0400 -Branch: REL9_2_STABLE [2bc339716] 2015-05-04 12:41:53 -0400 -Branch: REL9_1_STABLE [4b71d28d5] 2015-05-04 12:47:11 -0400 -Branch: REL9_0_STABLE [30ba0d0c2] 2015-05-04 14:04:53 -0400 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [456ff0863] 2015-05-05 09:29:49 -0400 -Branch: REL9_4_STABLE [603fe0181] 2015-05-05 09:16:39 -0400 -Branch: REL9_3_STABLE [6fd666954] 2015-05-05 09:19:39 -0400 -Branch: REL9_2_STABLE [53e1498c6] 2015-05-05 09:22:51 -0400 -Branch: REL9_1_STABLE [6ee1a7738] 2015-05-05 09:25:51 -0400 -Branch: REL9_0_STABLE [262fbcb9d] 2015-05-05 09:30:07 -0400 ---> - - <listitem> - <para> - Recursively <function>fsync()</> the data directory after a crash - (Abhijit Menon-Sen, Robert Haas) - </para> - - <para> - This ensures consistency if another crash occurs shortly later. (The - second crash would have to be a system-level crash, not just a database - crash, for there to be a problem.) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [5df64f298] 2015-04-08 13:19:49 -0300 -Branch: REL9_4_STABLE [ec01c1c0a] 2015-04-08 13:19:49 -0300 -Branch: REL9_3_STABLE [0d6c9e061] 2015-04-08 13:19:49 -0300 -Branch: REL9_2_STABLE [37dc228e8] 2015-04-08 13:19:49 -0300 -Branch: REL9_1_STABLE [cf5d3f274] 2015-04-08 13:19:49 -0300 -Branch: REL9_0_STABLE [595bc97b5] 2015-04-08 13:19:49 -0300 ---> - - <listitem> - <para> - Fix autovacuum launcher's possible failure to shut down, if an error - occurs after it receives SIGTERM (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [bc49d9324] 2015-04-03 00:07:29 -0400 -Branch: REL9_4_STABLE [ee0d06c0b] 2015-04-03 00:07:29 -0400 ---> - - <listitem> - <para> - Fix failure to handle invalidation messages for system catalogs - early in session startup (Tom Lane) - </para> - - <para> - This oversight could result in failures in sessions that start - concurrently with a <command>VACUUM FULL</> on a system catalog. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [701dcc983] 2015-03-30 13:05:27 -0400 -Branch: REL9_4_STABLE [2897e069c] 2015-03-30 13:05:35 -0400 ---> - - <listitem> - <para> - Fix crash in <function>BackendIdGetTransactionIds()</> when trying - to get status for a backend process that just exited (Tom Lane) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [bc208a5a2] 2015-02-23 16:14:14 +0100 -Branch: REL9_4_STABLE [89629f289] 2015-02-23 16:14:14 +0100 -Branch: REL9_3_STABLE [a6ddff812] 2015-02-23 16:14:15 +0100 -Branch: REL9_2_STABLE [c76e6dd7a] 2015-02-23 16:14:15 +0100 -Branch: REL9_1_STABLE [25576bee2] 2015-02-23 16:14:15 +0100 -Branch: REL9_0_STABLE [87b7fcc87] 2015-02-23 16:14:16 +0100 ---> - - <listitem> - <para> - Cope with unexpected signals in <function>LockBufferForCleanup()</> - (Andres Freund) - </para> - - <para> - This oversight could result in spurious errors about <quote>multiple - backends attempting to wait for pincount 1</>. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [08361cea2] 2015-02-15 23:26:45 -0500 -Branch: REL9_4_STABLE [1bf32972e] 2015-02-15 23:26:45 -0500 -Branch: REL9_3_STABLE [4662ba5a2] 2015-02-15 23:26:46 -0500 -Branch: REL9_2_STABLE [effcaa4c2] 2015-02-15 23:26:46 -0500 ---> - - <listitem> - <para> - Fix crash when doing <literal>COPY IN</> to a table with check - constraints that contain whole-row references (Tom Lane) - </para> - - <para> - The known failure case only crashes in 9.4 and up, but there is very - similar code in 9.3 and 9.2, so back-patch those branches as well. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [fd6a3f3ad] 2015-02-26 12:50:07 +0100 -Branch: REL9_4_STABLE [d72115112] 2015-02-26 12:50:07 +0100 -Branch: REL9_3_STABLE [abce8dc7d] 2015-02-26 12:50:07 +0100 -Branch: REL9_2_STABLE [d67076529] 2015-02-26 12:50:07 +0100 -Branch: REL9_1_STABLE [5c8dabecd] 2015-02-26 12:50:08 +0100 -Branch: REL9_0_STABLE [82e0d6eb5] 2015-02-26 12:50:08 +0100 ---> - - <listitem> - <para> - Avoid waiting for WAL flush or synchronous replication during commit of - a transaction that was read-only so far as the user is concerned - (Andres Freund) - </para> - - <para> - Previously, a delay could occur at commit in transactions that had - written WAL due to HOT page pruning, leading to undesirable effects - such as sessions getting stuck at startup if all synchronous replicas - are down. Sessions have also been observed to get stuck in catchup - interrupt processing when using synchronous replication; this will fix - that problem as well. - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [87cec51d3] 2015-03-23 16:51:11 +0100 -Branch: REL9_4_STABLE [16be9737c] 2015-03-23 16:52:17 +0100 ---> - - <listitem> - <para> - Avoid busy-waiting with short <literal>recovery_min_apply_delay</> - values (Andres Freund) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: REL9_4_STABLE [462a2f1f0] 2015-05-13 09:53:50 +0300 -Branch: REL9_3_STABLE [96b676cc6] 2015-05-13 09:54:06 +0300 -Branch: REL9_2_STABLE [1a99d392c] 2015-05-13 10:06:52 +0300 -Branch: REL9_1_STABLE [f6c4a8690] 2015-05-13 10:06:47 +0300 -Branch: REL9_0_STABLE [bd1cfde70] 2015-05-13 10:06:38 +0300 ---> - - <listitem> - <para> - Fix crash when manipulating hash indexes on temporary tables - (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [ed9cc2b5d] 2015-03-30 16:40:05 -0400 -Branch: REL9_4_STABLE [a6a8bf5cd] 2015-03-30 16:40:05 -0400 -Branch: REL9_3_STABLE [246bbf65c] 2015-03-30 16:40:05 -0400 -Branch: REL9_2_STABLE [f155466fe] 2015-03-30 16:40:05 -0400 -Branch: REL9_1_STABLE [46bfe44e8] 2015-03-30 16:40:05 -0400 -Branch: REL9_0_STABLE [8f3c57721] 2015-03-30 16:40:05 -0400 ---> - - <listitem> - <para> - Fix possible failure during hash index bucket split, if other processes - are modifying the index concurrently (Tom Lane) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [26d2c5dc8] 2015-03-12 15:34:32 +0100 -Branch: REL9_4_STABLE [d81072026] 2015-03-12 15:40:07 +0100 ---> - - <listitem> - <para> - Fix memory leaks in GIN index vacuum (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e4cbfd673] 2015-03-29 15:04:09 -0400 -Branch: REL9_4_STABLE [f444de5e3] 2015-03-29 15:04:18 -0400 -Branch: REL9_3_STABLE [995a664c8] 2015-03-29 15:04:24 -0400 -Branch: REL9_2_STABLE [d12afe114] 2015-03-29 15:04:28 -0400 -Branch: REL9_1_STABLE [ab02d35e0] 2015-03-29 15:04:33 -0400 -Branch: REL9_0_STABLE [152c94632] 2015-03-29 15:04:38 -0400 ---> - - <listitem> - <para> - Check for interrupts while analyzing index expressions (Jeff Janes) - </para> - - <para> - <command>ANALYZE</> executes index expressions many times; if there are - slow functions in such an expression, it's desirable to be able to - cancel the <command>ANALYZE</> before that loop finishes. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [443fd0540] 2015-03-12 13:39:09 -0400 -Branch: REL9_4_STABLE [32269be59] 2015-03-12 13:39:10 -0400 -Branch: REL9_3_STABLE [5bdf3cf5a] 2015-03-12 13:38:49 -0400 -Branch: REL9_2_STABLE [590fc5d96] 2015-03-12 13:38:49 -0400 -Branch: REL9_1_STABLE [4a4fd2b0c] 2015-03-12 13:38:49 -0400 ---> - - <listitem> - <para> - Ensure <structfield>tableoid</> of a foreign table is reported - correctly when a <literal>READ COMMITTED</> recheck occurs after - locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>, - or <command>DELETE</> (Etsuro Fujita) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [cf34e373f] 2015-03-05 18:03:16 -0300 -Branch: REL9_4_STABLE [749977634] 2015-03-05 18:03:16 -0300 -Branch: REL9_3_STABLE [5cf400003] 2015-03-05 18:03:16 -0300 -Branch: REL9_2_STABLE [e166e6441] 2015-03-05 18:03:16 -0300 -Branch: REL9_1_STABLE [8167ef8e2] 2015-03-05 18:03:16 -0300 -Branch: REL9_0_STABLE [71b8e8e6c] 2015-03-05 18:03:16 -0300 ---> - - <listitem> - <para> - Add the name of the target server to object description strings for - foreign-server user mappings (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [0d906798f] 2015-02-18 14:28:11 -0300 -Branch: REL9_4_STABLE [66463a3cf] 2015-02-18 14:28:12 -0300 -Branch: REL9_3_STABLE [a196e67f9] 2015-02-18 14:28:12 -0300 ---> - - <listitem> - <para> - Include the schema name in object identity strings for conversions - (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: REL9_4_STABLE [c106f397d] 2015-05-08 19:39:52 -0400 -Branch: REL9_3_STABLE [3de791ee7] 2015-05-08 19:40:06 -0400 -Branch: REL9_2_STABLE [21cb21de2] 2015-05-08 19:40:09 -0400 -Branch: REL9_1_STABLE [edfef090a] 2015-05-08 19:40:11 -0400 -Branch: REL9_0_STABLE [c981e5999] 2015-05-08 19:40:15 -0400 ---> - - <listitem> - <para> - Recommend setting <literal>include_realm</> to 1 when using - Kerberos/GSSAPI/SSPI authentication (Stephen Frost) - </para> - - <para> - Without this, identically-named users from different realms cannot be - distinguished. For the moment this is only a documentation change, but - it will become the default setting in <productname>PostgreSQL</> 9.5. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [cb66f495f] 2015-02-16 16:18:31 -0500 -Branch: REL9_4_STABLE [23291a796] 2015-02-16 16:17:59 -0500 -Branch: REL9_3_STABLE [7bc6e5954] 2015-02-16 16:18:04 -0500 -Branch: REL9_2_STABLE [3913b897d] 2015-02-16 16:18:08 -0500 -Branch: REL9_1_STABLE [2df854f84] 2015-02-16 16:18:12 -0500 -Branch: REL9_0_STABLE [c99ef9aff] 2015-02-16 16:18:17 -0500 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [2e105def0] 2015-02-17 12:49:18 -0500 -Branch: REL9_4_STABLE [a271c9260] 2015-02-17 12:49:18 -0500 -Branch: REL9_3_STABLE [4ea2d2ddb] 2015-02-17 12:49:18 -0500 -Branch: REL9_2_STABLE [d068609b9] 2015-02-17 12:49:44 -0500 -Branch: REL9_1_STABLE [64e045838] 2015-02-17 12:49:46 -0500 -Branch: REL9_0_STABLE [e48ce4f33] 2015-02-17 12:49:18 -0500 ---> - - <listitem> - <para> - Remove code for matching IPv4 <filename>pg_hba.conf</> entries to - IPv4-in-IPv6 addresses (Tom Lane) - </para> - - <para> - This hack was added in 2003 in response to a report that some Linux - kernels of the time would report IPv4 connections as having - IPv4-in-IPv6 addresses. However, the logic was accidentally broken in - 9.0. The lack of any field complaints since then shows that it's not - needed anymore. Now we have reports that the broken code causes - crashes on some systems, so let's just remove it rather than fix it. - (Had we chosen to fix it, that would make for a subtle and potentially - security-sensitive change in the effective meaning of - IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good - thing to do in minor releases.) - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [bf740ce9e] 2015-03-19 11:04:09 -0400 -Branch: REL9_4_STABLE [76d07a2a0] 2015-03-19 11:08:54 -0400 ---> - - <listitem> - <para> - Fix status reporting for terminated background workers that were never - actually started (Robert Haas) - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [b3a5e76e1] 2015-04-02 14:38:06 -0400 -Branch: REL9_4_STABLE [a1f4ade01] 2015-04-02 14:39:18 -0400 ---> - - <listitem> - <para> - After a database crash, don't restart background workers that are - marked <literal>BGW_NEVER_RESTART</> (Amit Khandekar) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [ff16b40f8] 2015-02-06 11:26:50 +0200 -Branch: REL9_4_STABLE [3bc4c6942] 2015-02-06 11:27:12 +0200 -Branch: REL9_3_STABLE [5f0ba4abb] 2015-02-06 11:32:16 +0200 -Branch: REL9_2_STABLE [2af568c6b] 2015-02-06 11:32:37 +0200 -Branch: REL9_1_STABLE [0d36d9f2b] 2015-02-06 11:32:42 +0200 ---> - - <listitem> - <para> - Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</> - replication command (Heikki Linnakangas) - </para> - - <para> - This avoids a possible startup failure - in <application>pg_receivexlog</>. - </para> - </listitem> - -<!-- -Author: Magnus Hagander <magnus@hagander.net> -Branch: master [1a241d22a] 2015-05-07 15:04:13 +0200 -Branch: REL9_4_STABLE [43ed06816] 2015-05-07 15:09:21 +0200 -Branch: REL9_3_STABLE [ba3caee84] 2015-05-07 15:09:32 +0200 -Branch: REL9_2_STABLE [447e16581] 2015-05-07 15:09:42 +0200 -Branch: REL9_1_STABLE [b9ded1529] 2015-05-07 15:09:53 +0200 -Branch: REL9_0_STABLE [78ce2dc8e] 2015-05-07 15:10:01 +0200 ---> - - <listitem> - <para> - While shutting down service on Windows, periodically send status - updates to the Service Control Manager to prevent it from killing the - service too soon; and ensure that <application>pg_ctl</> will wait for - shutdown (Krystian Bigaj) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [2a3f6e368] 2015-02-23 13:34:21 +0200 -Branch: REL9_4_STABLE [0214a61e0] 2015-02-23 13:32:39 +0200 -Branch: REL9_3_STABLE [cdf813c59] 2015-02-23 13:32:42 +0200 -Branch: REL9_2_STABLE [22c9c8a7e] 2015-02-23 13:32:46 +0200 -Branch: REL9_1_STABLE [7052abbb6] 2015-02-23 13:32:50 +0200 -Branch: REL9_0_STABLE [8878eaaa8] 2015-02-23 13:32:53 +0200 ---> - - <listitem> - <para> - Reduce risk of network deadlock when using <application>libpq</>'s - non-blocking mode (Heikki Linnakangas) - </para> - - <para> - When sending large volumes of data, it's important to drain the input - buffer every so often, in case the server has sent enough response data - to cause it to block on output. (A typical scenario is that the server - is sending a stream of NOTICE messages during <literal>COPY FROM - STDIN</>.) This worked properly in the normal blocking mode, but not - so much in non-blocking mode. We've modified <application>libpq</> - to opportunistically drain input when it can, but a full defense - against this problem requires application cooperation: the application - should watch for socket read-ready as well as write-ready conditions, - and be sure to call <function>PQconsumeInput()</> upon read-ready. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [b26e20814] 2015-02-21 12:59:54 -0500 -Branch: REL9_4_STABLE [9c15a778a] 2015-02-21 12:59:35 -0500 -Branch: REL9_3_STABLE [f389b6e0a] 2015-02-21 12:59:39 -0500 -Branch: REL9_2_STABLE [83c3115dd] 2015-02-21 12:59:43 -0500 ---> - - <listitem> - <para> - In <application>libpq</>, fix misparsing of empty values in URI - connection strings (Thomas Fanghaenel) - </para> - </listitem> - -<!-- -Author: Michael Meskes <meskes@postgresql.org> -Branch: master [1f393fc92] 2015-02-10 12:04:10 +0100 -Branch: REL9_4_STABLE [66c4ea8cb] 2015-02-11 10:57:02 +0100 -Branch: REL9_3_STABLE [1a321fea7] 2015-02-11 11:13:11 +0100 -Branch: REL9_2_STABLE [9be9ac425] 2015-02-11 11:14:14 +0100 -Branch: REL9_1_STABLE [32e633195] 2015-02-11 11:27:21 +0100 -Branch: REL9_0_STABLE [ce2fcc58e] 2015-02-11 11:30:11 +0100 ---> - - <listitem> - <para> - Fix array handling in <application>ecpg</> (Michael Meskes) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [fcef16172] 2015-04-01 20:00:07 -0300 -Branch: REL9_4_STABLE [a44e54cf4] 2015-04-01 20:00:07 -0300 -Branch: REL9_3_STABLE [f4540cae1] 2015-04-01 20:00:07 -0300 -Branch: REL9_2_STABLE [d4bacdcb9] 2015-04-01 20:00:07 -0300 -Branch: REL9_1_STABLE [276591bc4] 2015-04-01 20:00:07 -0300 -Branch: REL9_0_STABLE [557fcfae3] 2015-04-01 20:00:07 -0300 ---> - - <listitem> - <para> - Fix <application>psql</> to sanely handle URIs and conninfo strings as - the first parameter to <command>\connect</> - (David Fetter, Andrew Dunstan, Álvaro Herrera) - </para> - - <para> - This syntax has been accepted (but undocumented) for a long time, but - previously some parameters might be taken from the old connection - instead of the given string, which was agreed to be undesirable. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [df9ebf1ee] 2015-03-14 13:43:00 -0400 -Branch: REL9_4_STABLE [f50b5c7d0] 2015-03-14 13:43:08 -0400 -Branch: REL9_3_STABLE [2cb76fa6f] 2015-03-14 13:43:13 -0400 -Branch: REL9_2_STABLE [309ff2ad0] 2015-03-14 13:43:17 -0400 -Branch: REL9_1_STABLE [043fe5c5a] 2015-03-14 13:43:21 -0400 -Branch: REL9_0_STABLE [396ef6fd8] 2015-03-14 13:43:26 -0400 ---> - - <listitem> - <para> - Suppress incorrect complaints from <application>psql</> on some - platforms that it failed to write <filename>~/.psql_history</> at exit - (Tom Lane) - </para> - - <para> - This misbehavior was caused by a workaround for a bug in very old - (pre-2006) versions of <application>libedit</>. We fixed it by - removing the workaround, which will cause a similar failure to appear - for anyone still using such versions of <application>libedit</>. - Recommendation: upgrade that library, or use <application>libreadline</>. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9feefedf9] 2015-02-10 22:38:15 -0500 -Branch: REL9_4_STABLE [a592e5883] 2015-02-10 22:38:17 -0500 -Branch: REL9_3_STABLE [a4e871caa] 2015-02-10 22:38:20 -0500 -Branch: REL9_2_STABLE [2593c7039] 2015-02-10 22:38:22 -0500 -Branch: REL9_1_STABLE [14794f9b8] 2015-02-10 22:38:26 -0500 -Branch: REL9_0_STABLE [8e70f3c40] 2015-02-10 22:38:29 -0500 ---> - - <listitem> - <para> - Fix <application>pg_dump</>'s rule for deciding which casts are - system-provided casts that should not be dumped (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [0e7e355f2] 2015-02-18 11:43:00 -0500 -Branch: REL9_4_STABLE [a75dfb73e] 2015-02-18 11:43:00 -0500 -Branch: REL9_3_STABLE [a7ad5cf0c] 2015-02-18 11:43:00 -0500 -Branch: REL9_2_STABLE [c86f8f361] 2015-02-18 11:43:00 -0500 -Branch: REL9_1_STABLE [b0d53b2e3] 2015-02-18 11:43:00 -0500 ---> - - <listitem> - <para> - In <application>pg_dump</>, fix failure to honor <literal>-Z</> - compression level option together with <literal>-Fd</> - (Michael Paquier) - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [ebd092bc2] 2015-03-02 14:12:21 -0500 -Branch: REL9_4_STABLE [c05fa3433] 2015-03-02 14:12:28 -0500 -Branch: REL9_3_STABLE [43d81f16a] 2015-03-02 14:12:33 -0500 -Branch: REL9_2_STABLE [d13bbfabb] 2015-03-02 14:12:38 -0500 -Branch: REL9_1_STABLE [dcb467b8e] 2015-03-02 14:12:43 -0500 ---> - - <listitem> - <para> - Make <application>pg_dump</> consider foreign key relationships - between extension configuration tables while choosing dump order - (Gilles Darold, Michael Paquier, Stephen Frost) - </para> - - <para> - This oversight could result in producing dumps that fail to reload - because foreign key constraints are transiently violated. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e3bfe6d84] 2015-03-06 13:27:46 -0500 -Branch: REL9_4_STABLE [629f8613f] 2015-03-06 13:27:46 -0500 -Branch: REL9_3_STABLE [d645273cf] 2015-03-06 13:27:46 -0500 ---> - - <listitem> - <para> - Avoid possible <application>pg_dump</> failure when concurrent sessions - are creating and dropping temporary functions (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [e9f1c01b7] 2015-02-25 12:01:12 -0500 -Branch: REL9_4_STABLE [2164a0de2] 2015-02-25 12:01:12 -0500 -Branch: REL9_3_STABLE [f864fe074] 2015-02-25 12:01:12 -0500 -Branch: REL9_2_STABLE [be8801e9c] 2015-02-25 12:01:12 -0500 -Branch: REL9_1_STABLE [f7b41902a] 2015-02-25 12:01:12 -0500 -Branch: REL9_0_STABLE [7a501bcbf] 2015-02-25 12:01:12 -0500 ---> - - <listitem> - <para> - Fix dumping of views that are just <literal>VALUES(...)</> but have - column aliases (Tom Lane) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [b2f95c34f] 2015-05-01 13:03:23 -0400 -Branch: REL9_4_STABLE [70fac4844] 2015-05-01 13:03:23 -0400 ---> - - <listitem> - <para> - Ensure that a view's replication identity is correctly set - to <literal>nothing</> during dump/restore (Marko Tiikkaja) - </para> - - <para> - Previously, if the view was involved in a circular dependency, - it might wind up with an incorrect replication identity property. - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [4c5e06004] 2015-05-16 00:40:18 -0400 -Branch: REL9_4_STABLE [387a3e46c] 2015-05-16 00:40:18 -0400 -Branch: REL9_3_STABLE [bffbeec0c] 2015-05-16 00:40:18 -0400 -Branch: REL9_2_STABLE [affc04d16] 2015-05-16 00:40:18 -0400 -Branch: REL9_1_STABLE [acd75b264] 2015-05-16 00:40:18 -0400 -Branch: REL9_0_STABLE [df161c94e] 2015-05-16 00:40:18 -0400 -Author: Bruce Momjian <bruce@momjian.us> -Branch: REL9_4_STABLE [5f6539635] 2015-05-16 15:16:28 -0400 -Branch: REL9_3_STABLE [4e9935979] 2015-05-16 15:16:28 -0400 ---> - - <listitem> - <para> - In <application>pg_upgrade</>, force timeline 1 in the new cluster - (Bruce Momjian) - </para> - - <para> - This change prevents upgrade failures caused by bogus complaints about - missing WAL history files. - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [fb694d959] 2015-05-16 00:10:03 -0400 -Branch: REL9_4_STABLE [31f5d3f35] 2015-05-16 00:10:03 -0400 -Branch: REL9_3_STABLE [4cfba5369] 2015-05-16 00:10:03 -0400 -Branch: REL9_2_STABLE [2a55e7134] 2015-05-16 00:10:03 -0400 -Branch: REL9_1_STABLE [321db7123] 2015-05-16 00:10:03 -0400 -Branch: REL9_0_STABLE [2194aa92b] 2015-05-16 00:10:03 -0400 ---> - - <listitem> - <para> - In <application>pg_upgrade</>, check for improperly non-connectable - databases before proceeding - (Bruce Momjian) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [056764b10] 2015-02-11 22:06:04 -0500 -Branch: REL9_4_STABLE [5eef3c61e] 2015-02-11 22:06:04 -0500 -Branch: REL9_3_STABLE [9ecd51da7] 2015-02-11 22:06:04 -0500 -Branch: REL9_2_STABLE [66f5217f5] 2015-02-11 22:06:04 -0500 -Branch: REL9_1_STABLE [08aaae40e] 2015-02-11 22:06:04 -0500 -Branch: REL9_0_STABLE [4ae178f60] 2015-02-11 22:06:04 -0500 ---> - - <listitem> - <para> - In <application>pg_upgrade</>, quote directory paths - properly in the generated <literal>delete_old_cluster</> script - (Bruce Momjian) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [866f3017a] 2015-02-11 21:02:44 -0500 -Branch: REL9_4_STABLE [c7bc5be11] 2015-02-11 21:02:36 -0500 -Branch: REL9_3_STABLE [e20523f8f] 2015-02-11 21:02:28 -0500 -Branch: REL9_2_STABLE [d99cf27b7] 2015-02-11 21:02:12 -0500 -Branch: REL9_1_STABLE [55179b03e] 2015-02-11 21:02:07 -0500 -Branch: REL9_0_STABLE [85dac37ee] 2015-02-11 21:02:06 -0500 ---> - - <listitem> - <para> - In <application>pg_upgrade</>, preserve database-level freezing info - properly - (Bruce Momjian) - </para> - - <para> - This oversight could cause missing-clog-file errors for tables within - the <literal>postgres</> and <literal>template1</> databases. - </para> - </listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -Branch: master [fa1e5afa8] 2015-03-30 17:07:52 -0400 -Branch: REL9_4_STABLE [2366761bf] 2015-03-30 17:16:57 -0400 -Branch: REL9_3_STABLE [0904eb3e1] 2015-03-30 17:17:17 -0400 -Branch: REL9_2_STABLE [948566313] 2015-03-30 17:17:39 -0400 -Branch: REL9_1_STABLE [22b3f5b26] 2015-03-30 17:17:54 -0400 -Branch: REL9_0_STABLE [bf22a8e58] 2015-03-30 17:18:10 -0400 ---> - - <listitem> - <para> - Run <application>pg_upgrade</> and <application>pg_resetxlog</> with - restricted privileges on Windows, so that they don't fail when run by - an administrator (Muhammad Asif Naeem) - </para> - </listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [5d6c2405f] 2015-02-17 10:19:30 -0500 -Branch: REL9_4_STABLE [5e49c98e0] 2015-02-17 10:50:49 -0500 -Branch: REL9_3_STABLE [9a90ec9cf] 2015-02-17 10:54:29 -0500 -Author: Robert Haas <rhaas@postgresql.org> -Branch: REL9_2_STABLE [319406c2a] 2015-02-17 11:02:46 -0500 -Branch: REL9_1_STABLE [d7d294f59] 2015-02-17 11:08:40 -0500 ---> - - <listitem> - <para> - Improve handling of <function>readdir()</> failures when scanning - directories in <application>initdb</> and <application>pg_basebackup</> - (Marco Nenciarini) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [8d1f23900] 2015-03-15 23:22:03 -0400 -Branch: REL9_4_STABLE [904e8b627] 2015-03-15 23:22:03 -0400 -Branch: REL9_3_STABLE [83587a075] 2015-03-15 23:22:03 -0400 -Branch: REL9_2_STABLE [8582ae7aa] 2015-03-15 23:22:03 -0400 -Branch: REL9_1_STABLE [9288645b5] 2015-03-15 23:22:03 -0400 -Branch: REL9_0_STABLE [40b0c10b7] 2015-03-15 23:22:03 -0400 ---> - - <listitem> - <para> - Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [33e879c4e] 2015-02-13 23:56:25 +0200 -Branch: REL9_4_STABLE [56a23a83f] 2015-02-13 23:56:57 +0200 -Branch: REL9_3_STABLE [6ef5d894a] 2015-02-13 23:57:05 +0200 -Branch: REL9_2_STABLE [a0d84da1d] 2015-02-13 23:57:25 +0200 -Branch: REL9_1_STABLE [ebdc2e1e2] 2015-02-13 23:57:28 +0200 -Branch: REL9_0_STABLE [61165fae0] 2015-02-13 23:57:35 +0200 ---> - - <listitem> - <para> - Fix compile failure on Sparc V8 machines (Rob Rowan) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [91f4a5a97] 2015-03-14 14:08:45 -0400 -Branch: REL9_4_STABLE [c415c13b7] 2015-03-14 14:08:45 -0400 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [73b416b2e] 2015-04-05 13:01:59 -0400 -Branch: REL9_4_STABLE [8972a152c] 2015-04-05 13:01:55 -0400 -Branch: REL9_3_STABLE [6347bdb31] 2015-04-05 13:01:55 -0400 ---> - - <listitem> - <para> - Silence some build warnings on macOS (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [9d366c1f3] 2015-05-15 19:35:29 -0400 -Branch: REL9_4_STABLE [d0ddcf62e] 2015-05-15 19:35:51 -0400 -Branch: REL9_3_STABLE [4fd69e412] 2015-05-15 19:35:58 -0400 -Branch: REL9_2_STABLE [2a63434f0] 2015-05-15 19:36:06 -0400 -Branch: REL9_1_STABLE [436f35609] 2015-05-15 19:36:13 -0400 -Branch: REL9_0_STABLE [3c3749a3b] 2015-05-15 19:36:20 -0400 ---> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2015d - for DST law changes in Egypt, Mongolia, and Palestine, plus historical - changes in Canada and Chile. Also adopt revised zone abbreviations for - the America/Adak zone (HST/HDT not HAST/HADT). - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4-1"> - <title>Release 9.4.1</title> - - <formalpara> - <title>Release date:</title> - <para>2015-02-05</para> - </formalpara> - - <para> - This release contains a variety of fixes from 9.4.0. - For information about new features in the 9.4 major release, see - <xref linkend="release-9-4">. - </para> - - <sect2> - <title>Migration to Version 9.4.1</title> - - <para> - A dump/restore is not required for those running 9.4.X. - </para> - - <para> - However, if you are a Windows user and are using the <quote>Norwegian - (Bokmål)</> locale, manual action is needed after the upgrade to - replace any <quote>Norwegian (Bokmål)_Norway</> - or <quote>norwegian-bokmal</> locale names stored - in <productname>PostgreSQL</> system catalogs with the plain-ASCII - alias <quote>Norwegian_Norway</>. For details see - <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></> - </para> - </sect2> - - <sect2> - <title>Changes</title> - - <itemizedlist> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [0150ab567] 2015-02-02 10:00:44 -0500 -Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500 -Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500 -Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500 -Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500 -Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500 -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500 -Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500 -Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500 -Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500 -Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500 -Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500 ---> - - <listitem> - <para> - Fix buffer overruns in <function>to_char()</> - (Bruce Momjian) - </para> - - <para> - When <function>to_char()</> processes a numeric formatting template - calling for a large number of digits, <productname>PostgreSQL</> - would read past the end of a buffer. When processing a crafted - timestamp formatting template, <productname>PostgreSQL</> would write - past the end of a buffer. Either case could crash the server. - We have not ruled out the possibility of attacks that lead to - privilege escalation, though they seem unlikely. - (CVE-2015-0241) - </para> - </listitem> - -<!-- -Author: Bruce Momjian <bruce@momjian.us> -Branch: master [29725b3db] 2015-02-02 10:00:45 -0500 -Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500 -Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500 -Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500 -Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500 -Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500 ---> - - <listitem> - <para> - Fix buffer overrun in replacement <function>*printf()</> functions - (Tom Lane) - </para> - - <para> - <productname>PostgreSQL</> includes a replacement implementation - of <function>printf</> and related functions. This code will overrun - a stack buffer when formatting a floating point number (conversion - specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>, - <literal>g</> or <literal>G</>) with requested precision greater than - about 500. This will crash the server, and we have not ruled out the - possibility of attacks that lead to privilege escalation. - A database user can trigger such a buffer overrun through - the <function>to_char()</> SQL function. While that is the only - affected core <productname>PostgreSQL</> functionality, extension - modules that use printf-family functions may be at risk as well. - </para> - - <para> - This issue primarily affects <productname>PostgreSQL</> on Windows. - <productname>PostgreSQL</> uses the system implementation of these - functions where adequate, which it is on other modern platforms. - (CVE-2015-0242) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [1dc755158] 2015-02-02 10:00:45 -0500 -Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500 -Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500 -Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500 -Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500 -Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500 -Author: Noah Misch <noah@leadboat.com> -Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500 -Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500 -Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500 -Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500 -Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500 -Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500 ---> - - <listitem> - <para> - Fix buffer overruns in <filename>contrib/pgcrypto</> - (Marko Tiikkaja, Noah Misch) - </para> - - <para> - Errors in memory size tracking within the <filename>pgcrypto</> - module permitted stack buffer overruns and improper dependence on the - contents of uninitialized memory. The buffer overrun cases can - crash the server, and we have not ruled out the possibility of - attacks that lead to privilege escalation. - (CVE-2015-0243) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200 -Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200 -Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200 -Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200 -Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200 -Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200 ---> - - <listitem> - <para> - Fix possible loss of frontend/backend protocol synchronization after - an error - (Heikki Linnakangas) - </para> - - <para> - If any error occurred while the server was in the middle of reading a - protocol message from the client, it could lose synchronization and - incorrectly try to interpret part of the message's data as a new - protocol message. An attacker able to submit crafted binary data - within a command parameter might succeed in injecting his own SQL - commands this way. Statement timeout and query cancellation are the - most likely sources of errors triggering this scenario. Particularly - vulnerable are applications that use a timeout and also submit - arbitrary user-crafted data as binary query parameters. Disabling - statement timeout will reduce, but not eliminate, the risk of - exploit. Our thanks to Emil Lenngren for reporting this issue. - (CVE-2015-0244) - </para> - </listitem> - -<!-- -Author: Stephen Frost <sfrost@snowman.net> -Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500 -Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500 -Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500 -Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500 -Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500 -Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500 ---> - - <listitem> - <para> - Fix information leak via constraint-violation error messages - (Stephen Frost) - </para> - - <para> - Some server error messages show the values of columns that violate - a constraint, such as a unique constraint. If the user does not have - <literal>SELECT</> privilege on all columns of the table, this could - mean exposing values that the user should not be able to see. Adjust - the code so that values are displayed only when they came from the SQL - command or could be selected by the user. - (CVE-2014-8161) - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500 -Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500 -Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500 -Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500 -Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500 -Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500 ---> - - <listitem> - <para> - Lock down regression testing's temporary installations on Windows - (Noah Misch) - </para> - - <para> - Use SSPI authentication to allow connections only from the OS user - who launched the test suite. This closes on Windows the same - vulnerability previously closed on other platforms, namely that other - users might be able to connect to the test postmaster. - (CVE-2014-0067) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300 -Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300 -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300 -Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300 -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200 -Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200 -Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200 -Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200 ---> - - <listitem> - <para> - Cope with the Windows locale named <quote>Norwegian (Bokmål)</> - (Heikki Linnakangas) - </para> - - <para> - Non-ASCII locale names are problematic since it's not clear what - encoding they should be represented in. Map the troublesome locale - name to a plain-ASCII alias, <quote>Norwegian_Norway</>. - </para> - - <para> - 9.4.0 mapped the troublesome name to <quote>norwegian-bokmal</>, - but that turns out not to work on all Windows configurations. - <quote>Norwegian_Norway</> is now recommended instead. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500 -Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500 -Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500 -Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500 -Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500 -Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500 ---> - - <listitem> - <para> - Fix use-of-already-freed-memory problem in EvalPlanQual processing - (Tom Lane) - </para> - - <para> - In <literal>READ COMMITTED</> mode, queries that lock or update - recently-updated rows could crash as a result of this bug. - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300 -Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300 -Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300 ---> - - <listitem> - <para> - Avoid possible deadlock while trying to acquire tuple locks - in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood) - </para> - </listitem> - -<!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300 -Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300 -Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300 ---> - - <listitem> - <para> - Fix failure to wait when a transaction tries to acquire a <literal>FOR - NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions - currently hold <literal>FOR SHARE</> locks (Álvaro Herrera) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500 -Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500 -Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500 ---> - - <listitem> - <para> - Improve performance of <command>EXPLAIN</> with large range tables - (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [451d28081] 2015-01-30 14:44:56 -0500 -Branch: REL9_4_STABLE [4cbf390d5] 2015-01-30 14:44:49 -0500 ---> - - <listitem> - <para> - Fix <type>jsonb</> Unicode escape processing, and in consequence - disallow <literal>\u0000</> (Tom Lane) - </para> - - <para> - Previously, the JSON Unicode escape <literal>\u0000</> was accepted - and was stored as those six characters; but that is indistinguishable - from what is stored for the input <literal>\\u0000</>, resulting in - ambiguity. Moreover, in cases where de-escaped textual output is - expected, such as the <literal>->></> operator, the sequence was - printed as <literal>\u0000</>, which does not meet the expectation - that JSON escaping would be removed. (Consistent behavior would - require emitting a zero byte, but <productname>PostgreSQL</> does not - support zero bytes embedded in text strings.) 9.4.0 included an - ill-advised attempt to improve this situation by adjusting JSON output - conversion rules; but of course that could not fix the fundamental - ambiguity, and it turned out to break other usages of Unicode escape - sequences. Revert that, and to avoid the core problem, - reject <literal>\u0000</> in <type>jsonb</> input. - </para> - - <para> - If a <type>jsonb</> column contains a <literal>\u0000</> value stored - with 9.4.0, it will henceforth read out as though it - were <literal>\\u0000</>, which is the other valid interpretation of - the data stored by 9.4.0 for this case. - </para> - - <para> - The <type>json</> type did not have the storage-ambiguity problem, but - it did have the problem of inconsistent de-escaped textual output. - Therefore <literal>\u0000</> will now also be rejected - in <type>json</> values when conversion to de-escaped form is - required. This change does not break the ability to - store <literal>\u0000</> in <type>json</> columns so long as no - processing is done on the values. This is exactly parallel to the - cases in which non-ASCII Unicode escapes are allowed when the database - encoding is not UTF8. - </para> - </listitem> - -<!-- -Author: Peter Eisentraut <peter_e@gmx.net> -Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500 -Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500 -Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500 -Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500 -Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500 -Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500 ---> - - <listitem> - <para> - Fix namespace handling in <function>xpath()</> (Ali Akbar) - </para> - - <para> - Previously, the <type>xml</> value resulting from - an <function>xpath()</> call would not have namespace declarations if - the namespace declarations were attached to an ancestor element in the - input <type>xml</> value, rather than to the specific element being - returned. Propagate the ancestral declaration so that the result is - correct when considered in isolation. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500 -Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500 -Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500 ---> - - <listitem> - <para> - Fix assorted oversights in range-operator selectivity estimation - (Emre Hasegeli) - </para> - - <para> - This patch fixes corner-case <quote>unexpected operator NNNN</> planner - errors, and improves the selectivity estimates for some other cases. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [930fd6845] 2014-12-30 14:53:11 +0200 -Branch: REL9_4_STABLE [4e241f7cd] 2014-12-30 14:53:03 +0200 ---> - - <listitem> - <para> - Revert unintended reduction in maximum size of a GIN index item - (Heikki Linnakangas) - </para> - - <para> - 9.4.0 could fail with <quote>index row size exceeds maximum</> errors - for data that previous versions would accept. - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [68fa75f31] 2015-01-30 17:58:23 +0100 -Branch: REL9_4_STABLE [dc40ca696] 2015-01-30 17:59:17 +0100 ---> - - <listitem> - <para> - Fix query-duration memory leak during repeated GIN index rescans - (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [31ed42b9a] 2015-01-29 19:35:55 +0200 -Branch: REL9_4_STABLE [28a37deab] 2015-01-29 19:37:29 +0200 -Branch: REL9_3_STABLE [1c2774f37] 2015-01-29 19:37:27 +0200 -Branch: REL9_2_STABLE [61729e99d] 2015-01-29 19:37:25 +0200 -Branch: REL9_1_STABLE [37e0f13f2] 2015-01-29 19:37:22 +0200 ---> - - <listitem> - <para> - Fix possible crash when using - nonzero <varname>gin_fuzzy_search_limit</> (Heikki Linnakangas) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [3fabed070] 2015-01-07 00:19:37 +0100 -Branch: REL9_4_STABLE [7da102154] 2015-01-07 00:24:58 +0100 -Author: Andres Freund <andres@anarazel.de> -Branch: master [31912d01d] 2015-01-07 00:18:00 +0100 -Branch: REL9_4_STABLE [84911ff51] 2015-01-07 00:24:47 +0100 ---> - - <listitem> - <para> - Assorted fixes for logical decoding (Andres Freund) - </para> - </listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [49b04188f] 2015-01-15 20:52:41 +0200 -Branch: REL9_4_STABLE [b337d9657] 2015-01-15 20:52:18 +0200 ---> - - <listitem> - <para> - Fix incorrect replay of WAL parameter change records that report - changes in the <varname>wal_log_hints</> setting (Petr Jelinek) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500 -Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500 -Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500 -Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500 -Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500 -Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500 ---> - - <listitem> - <para> - Change <quote>pgstat wait timeout</> warning message to be LOG level, - and rephrase it to be more understandable (Tom Lane) - </para> - - <para> - This message was originally thought to be essentially a can't-happen - case, but it occurs often enough on our slower buildfarm members to be - a nuisance. Reduce it to LOG level, and expend a bit more effort on - the wording: it now reads <quote>using stale statistics instead of - current ones because stats collector is not responding</>. - </para> - </listitem> - -<!-- -Author: Noah Misch <noah@leadboat.com> -Branch: master [894459e59] 2015-01-07 22:35:44 -0500 -Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500 -Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500 -Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500 -Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500 -Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500 ---> - - <listitem> - <para> - Warn if macOS's <function>setlocale()</> starts an unwanted extra - thread inside the postmaster (Noah Misch) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [080eabe2e] 2015-01-11 12:35:44 -0500 -Branch: REL9_4_STABLE [733728ff3] 2015-01-11 12:35:47 -0500 ---> - - <listitem> - <para> - Fix <application>libpq</>'s behavior when <filename>/etc/passwd</> - isn't readable (Tom Lane) - </para> - - <para> - While doing <function>PQsetdbLogin()</>, <application>libpq</> - attempts to ascertain the user's operating system name, which on most - Unix platforms involves reading <filename>/etc/passwd</>. As of 9.4, - failure to do that was treated as a hard error. Restore the previous - behavior, which was to fail only if the application does not provide a - database role name to connect as. This supports operation in chroot - environments that lack an <filename>/etc/passwd</> file. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [28551797a] 2014-12-31 12:18:50 -0500 -Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500 -Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500 -Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500 -Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500 -Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500 ---> - - <listitem> - <para> - Improve consistency of parsing of <application>psql</>'s special - variables (Tom Lane) - </para> - - <para> - Allow variant spellings of <literal>on</> and <literal>off</> (such - as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</> - and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized - values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>, - <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>, - <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize - all values for all these variables case-insensitively; previously - there was a mishmash of case-sensitive and case-insensitive behaviors. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500 -Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500 -Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500 ---> - - <listitem> - <para> - Fix <application>pg_dump</> to handle comments on event triggers - without failing (Tom Lane) - </para> - </listitem> - -<!-- -Author: Kevin Grittner <kgrittn@postgresql.org> -Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600 -Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600 -Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600 ---> - - <listitem> - <para> - Allow parallel <application>pg_dump</> to - use <option>--serializable-deferrable</> (Kevin Grittner) - </para> - </listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100 -Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100 -Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100 -Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100 -Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100 ---> - - <listitem> - <para> - Prevent WAL files created by <literal>pg_basebackup -x/-X</> from - being archived again when the standby is promoted (Andres Freund) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [37507962c] 2015-01-29 20:18:33 -0500 -Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500 -Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500 -Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500 -Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500 -Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500 ---> - - <listitem> - <para> - Handle unexpected query results, especially NULLs, safely in - <filename>contrib/tablefunc</>'s <function>connectby()</> - (Michael Paquier) - </para> - - <para> - <function>connectby()</> previously crashed if it encountered a NULL - key value. It now prints that row but doesn't recurse further. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500 -Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500 -Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500 -Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500 -Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500 -Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500 -Author: Robert Haas <rhaas@postgresql.org> -Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500 -Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500 -Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500 -Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500 -Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500 -Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500 -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200 -Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200 -Author: Andres Freund <andres@anarazel.de> -Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100 -Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100 -Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100 -Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100 -Author: Andres Freund <andres@anarazel.de> -Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100 -Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100 -Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100 -Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100 -Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100 -Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100 -Author: Andres Freund <andres@anarazel.de> -Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100 -Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100 -Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100 -Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100 -Author: Tatsuo Ishii <ishii@postgresql.org> -Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900 -Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900 -Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900 -Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900 -Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900 -Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [66709133c] 2014-12-16 15:35:33 -0500 -Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500 -Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500 -Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500 -Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500 -Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500 -Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500 -Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500 -Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500 -Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500 -Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500 -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500 -Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500 -Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500 -Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500 -Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500 -Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500 ---> - - <listitem> - <para> - Numerous cleanups of warnings from Coverity static code analyzer - (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier) - </para> - - <para> - These changes are mostly cosmetic but in some cases fix corner-case - bugs, for example a crash rather than a proper error report after an - out-of-memory failure. None are believed to represent security - issues. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [85a2a8903] 2015-01-14 11:08:13 -0500 -Branch: REL9_4_STABLE [adb355106] 2015-01-14 11:08:17 -0500 ---> - - <listitem> - <para> - Allow <varname>CFLAGS</> from <application>configure</>'s environment - to override automatically-supplied <varname>CFLAGS</> (Tom Lane) - </para> - - <para> - Previously, <application>configure</> would add any switches that it - chose of its own accord to the end of the - user-specified <varname>CFLAGS</> string. Since most compilers - process switches left-to-right, this meant that configure's choices - would override the user-specified flags in case of conflicts. That - should work the other way around, so adjust the logic to put the - user's string at the end not the beginning. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [aa719391d] 2015-01-19 23:44:19 -0500 -Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500 -Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500 -Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500 -Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500 -Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500 ---> - - <listitem> - <para> - Make <application>pg_regress</> remove any temporary installation it - created upon successful exit (Tom Lane) - </para> - - <para> - This results in a very substantial reduction in disk space usage - during <literal>make check-world</>, since that sequence involves - creation of numerous temporary installations. - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [5b89473d8] 2014-12-24 16:35:23 -0500 -Branch: REL9_4_STABLE [068024719] 2014-12-24 16:35:34 -0500 ---> - - <listitem> - <para> - Add CST (China Standard Time) to our lists of timezone abbreviations - (Tom Lane) - </para> - </listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -Branch: master [08bd0c581] 2015-01-30 22:45:44 -0500 -Branch: REL9_4_STABLE [c2b06ab17] 2015-01-30 22:45:58 -0500 ---> - - <listitem> - <para> - Update time zone data files to <application>tzdata</> release 2015a - for DST law changes in Chile and Mexico, plus historical changes in - Iceland. - </para> - </listitem> - - </itemizedlist> - - </sect2> - </sect1> - - <sect1 id="release-9-4"> - <title>Release 9.4</title> - - <formalpara> - <title>Release date:</title> - <para>2014-12-18</para> - </formalpara> - - <sect2> - <title>Overview</title> - - <para> - Major enhancements in <productname>PostgreSQL</> 9.4 include: - </para> - - <!-- This list duplicates items below, but without authors or details--> - - <itemizedlist> - - <listitem> - <para> - Add <link linkend="datatype-json"><type>jsonb</></link>, a more - capable and efficient data type for storing <acronym>JSON</> data - </para> - </listitem> - - <listitem> - <para> - Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM"> - for changing <filename>postgresql.conf</> configuration file entries - </para> - </listitem> - - <listitem> - <para> - Reduce lock strength for some <xref linkend="SQL-ALTERTABLE"> - commands - </para> - </listitem> - - <listitem> - <para> - Allow <link linkend="rules-materializedviews">materialized views</> - to be refreshed without blocking concurrent reads - </para> - </listitem> - - <listitem> - <para> - Add support for <link linkend="logicaldecoding">logical decoding</> - of WAL data, to allow database changes to be streamed out in a - customizable format - </para> - </listitem> - - <listitem> - <para> - Allow <link linkend="bgworker">background worker processes</> - to be dynamically registered, started and terminated - </para> - </listitem> - - </itemizedlist> - - <para> - The above items are explained in more detail in the sections below. - </para> - - </sect2> - - <sect2> - - <title>Migration to Version 9.4</title> - - <para> - A dump/restore using <xref linkend="app-pg-dumpall">, or use - of <xref linkend="pgupgrade">, is required for those wishing to migrate - data from any previous release. - </para> - - <para> - Version 9.4 contains a number of changes that may affect compatibility - with previous releases. Observe the following incompatibilities: - </para> - - <itemizedlist> - - <listitem> - <para> - Tighten checks for multidimensional <link - linkend="arrays">array</link> input (Bruce Momjian) - </para> - - <para> - Previously, an input array string that started with a single-element - sub-array could later contain multi-element sub-arrays, - e.g. <literal>'{{1}, {2,3}}'::int[]</> would be accepted. - </para> - </listitem> - - <listitem> - <para> - When converting values of type <type>date</>, <type>timestamp</> - or <type>timestamptz</> - to <link linkend="datatype-json"><type>JSON</type></link>, render the - values in a format compliant with ISO 8601 (Andrew Dunstan) - </para> - - <para> - Previously such values were rendered according to the current - <xref linkend="guc-datestyle"> setting; but many JSON processors - require timestamps to be in ISO 8601 format. If necessary, the - previous behavior can be obtained by explicitly casting the datetime - value to <type>text</> before passing it to the JSON conversion - function. - </para> - </listitem> - - <listitem> - <para> - The <link linkend="functions-json-op-table"><type>json</type> - <literal>#></> <type>text[]</></link> path extraction operator now - returns its lefthand input, not NULL, if the array is empty (Tom Lane) - </para> - - <para> - This is consistent with the notion that this represents zero - applications of the simple field/element extraction - operator <literal>-></>. Similarly, <type>json</type> - <literal>#>></> <type>text[]</> with an empty array merely - coerces its lefthand input to text. - </para> - </listitem> - - <listitem> - <para> - Corner cases in - the <link linkend="functions-json-op-table"><type>JSON</type> - field/element/path extraction operators</link> now return NULL rather - than raising an error (Tom Lane) - </para> - - <para> - For example, applying field extraction to a JSON array now yields NULL - not an error. This is more consistent (since some comparable cases such - as no-such-field already returned NULL), and it makes it safe to create - expression indexes that use these operators, since they will now not - throw errors for any valid JSON input. - </para> - </listitem> - - <listitem> - <para> - Cause consecutive whitespace in <link - linkend="functions-formatting-table"><function>to_timestamp()</></link> - and <function>to_date()</> format strings to consume a corresponding - number of characters in the input string (whitespace or not), then - conditionally consume adjacent whitespace, if not in <literal>FX</> - mode (Jeevan Chalke) - </para> - - <para> - Previously, consecutive whitespace characters in a non-<literal>FX</> - format string behaved like a single whitespace character and consumed - all adjacent whitespace in the input string. For example, previously - a format string of three spaces would consume only the first space in - <literal>' 12'</>, but it will now consume all three characters. - </para> - </listitem> - - <listitem> - <para> - Fix <link - linkend="textsearch-functions-table"><function>ts_rank_cd()</></link> - to ignore stripped lexemes (Alex Hill) - </para> - - <para> - Previously, stripped lexemes were treated as if they had a default - location, producing a rank of dubious usefulness. - </para> - </listitem> - - <listitem> - <para> - For functions declared to - take <link linkend="xfunc-sql-variadic-functions"><literal>VARIADIC - "any"</></link>, an actual parameter marked as <literal>VARIADIC</> - must be of a determinable array type (Pavel Stehule) - </para> - - <para> - Such parameters can no longer be written as an undecorated string - literal or <literal>NULL</>; a cast to an appropriate array data type - will now be required. Note that this does not affect parameters not - marked <literal>VARIADIC</>. - </para> - </listitem> - - <listitem> - <para> - Ensure that whole-row variables expose the expected column names - to functions that pay attention to column names within composite - arguments (Tom Lane) - </para> - - <para> - Constructs like <literal>row_to_json(tab.*)</> now always emit column - names that match the column aliases visible for table <literal>tab</> - at the point of the call. In previous releases the emitted column - names would sometimes be the table's actual column names regardless - of any aliases assigned in the query. - </para> - </listitem> - - <listitem> - <para> - <xref linkend="sql-discard"> now also discards sequence-related state - (Fabrízio de Royes Mello, Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Rename <link linkend="SQL-EXPLAIN"><command>EXPLAIN - ANALYZE</></link>'s <quote>total runtime</quote> output - to <quote>execution time</quote> (Tom Lane) - </para> - - <para> - Now that planning time is also reported, the previous name was - confusing. - </para> - </listitem> - - <listitem> - <para> - <link linkend="SQL-SHOW"><command>SHOW TIME ZONE</></link> now - outputs simple numeric UTC offsets in <acronym>POSIX</> timezone - format (Tom Lane) - </para> - - <para> - Previously, such timezone settings were displayed as <link - linkend="datatype-interval-output"><type>interval</></link> values. - The new output is properly interpreted by <command>SET TIME ZONE</> - when passed as a simple string, whereas the old output required - special treatment to be re-parsed correctly. - </para> - </listitem> - - <listitem> - <para> - Foreign data wrappers that support updating foreign tables must - consider the possible presence of <literal>AFTER ROW</> triggers - (Noah Misch) - </para> - - <para> - When an <literal>AFTER ROW</> trigger is present, all columns of the - table must be returned by updating actions, since the trigger might - inspect any or all of them. Previously, foreign tables never had - triggers, so the FDW might optimize away fetching columns not mentioned - in the <literal>RETURNING</> clause (if any). - </para> - </listitem> - - <listitem> - <para> - Prevent <link - linkend="ddl-constraints-check-constraints"><literal>CHECK</></link> - constraints from referencing system columns, except - <structfield>tableoid</> (Amit Kapila) - </para> - - <para> - Previously such check constraints were allowed, but they would often - cause errors during restores. - </para> - </listitem> - - <listitem> - <para> - Use the last specified <link linkend="recovery-target-settings">recovery - target parameter</link> if multiple target parameters are specified - (Heikki Linnakangas) - </para> - - <para> - Previously, there was an undocumented precedence order among - the <literal>recovery_target_<replaceable>xxx</></literal> parameters. - </para> - </listitem> - - <listitem> - <para> - On Windows, automatically preserve quotes in command strings supplied - by the user (Heikki Linnakangas) - </para> - - <para> - User commands that did their own quote preservation might need - adjustment. This is likely to be an issue for commands used in - <xref linkend="guc-archive-command">, <xref linkend="restore-command">, - and <link linkend="sql-copy"><command>COPY TO/FROM PROGRAM</></link>. - </para> - </listitem> - - <listitem> - <para> - Remove catalog column <link - linkend="catalog-pg-class"><structfield>pg_class.reltoastidxid</></link> - (Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Remove catalog column <link - linkend="catalog-pg-rewrite"><structfield>pg_rewrite.ev_attr</></link> - (Kevin Grittner) - </para> - - <para> - Per-column rules have not been supported since - <application>PostgreSQL</> 7.3. - </para> - </listitem> - - <listitem> - <para> - Remove native support for <application>Kerberos</> authentication - (<option>--with-krb5</>, etc) - (Magnus Hagander) - </para> - - <para> - The supported way to use <application>Kerberos</> authentication is - with <acronym>GSSAPI</>. The native code has been deprecated since - <productname>PostgreSQL</> 8.3. - </para> - </listitem> - - <listitem> - <para> - In <application>PL/Python</>, handle domains over arrays like the - underlying array type (Rodolfo Campero) - </para> - - <para> - Previously such values were treated as strings. - </para> - </listitem> - - <listitem> - <para> - Make libpq's <link - linkend="libpq-pqconnectdbparams"><function>PQconnectdbParams()</></link> - and <link - linkend="libpq-pqpingparams"><function>PQpingParams()</></link> - functions process zero-length strings as defaults (Adrian - Vondendriesch) - </para> - - <para> - Previously, these functions treated zero-length string values as - selecting the default in only some cases. - </para> - </listitem> - - <listitem> - <para> - Change empty arrays returned by the <xref linkend="intarray"> module - to be zero-dimensional arrays (Bruce Momjian) - </para> - - <para> - Previously, empty arrays were returned as zero-length one-dimensional - arrays, whose text representation looked the same as zero-dimensional - arrays (<literal>{}</>), but they acted differently in array - operations. <application>intarray</>'s behavior in this area now - matches the built-in array operators. - </para> - </listitem> - - <listitem> - <para> - <xref linkend="pgupgrade"> now uses <option>-U</> - or <option>--username</> to specify the user name (Bruce Momjian) - </para> - - <para> - Previously this option was spelled <option>-u</> or <option>--user</>, - but that was inconsistent with other tools. - </para> - </listitem> - - </itemizedlist> - - </sect2> - - <sect2> - <title>Changes</title> - - <para> - Below you will find a detailed account of the changes between - <productname>PostgreSQL</productname> 9.4 and the previous major - release. - </para> - - <sect3> - <title>Server</title> - - <itemizedlist> - - <listitem> - <para> - Allow <link linkend="bgworker">background worker processes</link> - to be dynamically registered, started and terminated (Robert Haas) - </para> - - <para> - The new <filename>worker_spi</> module shows an example of use - of this feature. - </para> - </listitem> - - <listitem> - <para> - Allow dynamic allocation of shared memory segments (Robert Haas, - Amit Kapila) - </para> - - <para> - This feature is illustrated in the <filename>test_shm_mq</filename> - module. - </para> - </listitem> - - <listitem> - <para> - During crash recovery or immediate shutdown, send uncatchable - termination signals (<systemitem>SIGKILL</>) to child processes - that do not shut down promptly (MauMau, Álvaro Herrera) - </para> - - <para> - This reduces the likelihood of leaving orphaned child processes - behind after <xref linkend="app-postmaster"> shutdown, as well - as ensuring that crash recovery can proceed if some child processes - have become <quote>stuck</>. - </para> - </listitem> - - <listitem> - <para> - Improve randomness of the database system identifier (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Make <xref linkend="SQL-VACUUM"> properly report dead but - not-yet-removable rows to the statistics collector (Hari Babu) - </para> - - <para> - Previously these were reported as live rows. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title>Indexes</title> - - <itemizedlist> - - <listitem> - <para> - Reduce <link linkend="GIN"><acronym>GIN</></link> index size - (Alexander Korotkov, Heikki Linnakangas) - </para> - - <para> - Indexes upgraded via <xref linkend="pgupgrade"> will work fine - but will still be in the old, larger <acronym>GIN</> format. - Use <xref linkend="SQL-REINDEX"> to recreate old GIN indexes in the - new format. - </para> - </listitem> - - <listitem> - <para> - Improve speed of multi-key <link - linkend="GIN"><acronym>GIN</></link> lookups (Alexander Korotkov, - Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Add <link linkend="GiST"><acronym>GiST</></link> index support - for <link linkend="datatype-inet"><type>inet</></link> and - <link linkend="datatype-cidr"><type>cidr</></link> data types - (Emre Hasegeli) - </para> - - <para> - Such indexes improve <link - linkend="cidr-inet-operators-table">subnet and supernet</link> - lookups and ordering comparisons. - </para> - </listitem> - - <listitem> - <para> - Fix rare race condition in B-tree page deletion (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Make the handling of interrupted B-tree page splits more robust - (Heikki Linnakangas) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>General Performance</title> - - <itemizedlist> - - <listitem> - <para> - Allow multiple backends to insert - into <link linkend="wal"><acronym>WAL</></link> buffers - concurrently (Heikki Linnakangas) - </para> - - <para> - This improves parallel write performance. - </para> - </listitem> - - <listitem> - <para> - Conditionally write only the modified portion of updated rows to - <link linkend="wal"><acronym>WAL</></link> (Amit Kapila) - </para> - </listitem> - - <listitem> - <para> - Improve performance of aggregate functions used as <link - linkend="syntax-window-functions">window functions</link> - (David Rowley, Florian Pflug, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Improve speed of aggregates that - use <link linkend="datatype-numeric"><type>numeric</></link> state - values (Hadi Moshayedi) - </para> - </listitem> - - <listitem> - <para> - Attempt to <link linkend="vacuum-for-wraparound">freeze</link> - tuples when tables are rewritten with <xref - linkend="SQL-CLUSTER"> or <link - linkend="SQL-VACUUM"><command>VACUUM FULL</></link> (Robert Haas, - Andres Freund) - </para> - - <para> - This can avoid the need to freeze the tuples in the future. - </para> - </listitem> - - <listitem> - <para> - Improve speed of <xref linkend="SQL-COPY"> with default <link - linkend="functions-sequence-table"><function>nextval()</></link> - columns (Simon Riggs) - </para> - </listitem> - - <listitem> - <para> - Improve speed of accessing many different <link - linkend="SQL-CREATESEQUENCE">sequences</link> in the same session - (David Rowley) - </para> - </listitem> - - <listitem> - <para> - Raise hard limit on the number of tuples held in memory during sorting - and B-tree index builds (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - Reduce memory allocated by <application>PL/pgSQL</> - <xref linkend="SQL-DO"> blocks (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Make the planner more aggressive about extracting restriction clauses - from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Disallow pushing volatile <literal>WHERE</> clauses down - into <literal>DISTINCT</> subqueries (Tom Lane) - </para> - - <para> - Pushing down a <literal>WHERE</> clause can produce a more - efficient plan overall, but at the cost of evaluating the clause - more often than is implied by the text of the query; so don't do it - if the clause contains any volatile functions. - </para> - </listitem> - - <listitem> - <para> - Auto-resize the catalog caches (Heikki Linnakangas) - </para> - - <para> - This reduces memory consumption for sessions accessing only a few - tables, and improves performance for sessions accessing many tables. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>Monitoring</title> - - <itemizedlist> - - <listitem> - <para> - Add <xref linkend="pg-stat-archiver-view"> system view to - report <link linkend="wal"><acronym>WAL</></link> archiver activity - (Gabriele Bartolini) - </para> - </listitem> - - <listitem> - <para> - Add <structfield>n_mod_since_analyze</> columns to - <xref linkend="pg-stat-all-tables-view"> and related system views - (Mark Kirkwood) - </para> - - <para> - These columns expose the system's estimate of the number of changed - tuples since the table's last <xref linkend="sql-analyze">. This - estimate drives decisions about when to auto-analyze. - </para> - </listitem> - - <listitem> - <para> - Add <structfield>backend_xid</> and <structfield>backend_xmin</> - columns to the system view <xref linkend="pg-stat-activity-view">, - and a <structfield>backend_xmin</> column to - <xref linkend="pg-stat-replication-view"> (Christian Kruse) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><acronym>SSL</></title> - - <itemizedlist> - - <listitem> - <para> - Add support for <acronym>SSL</> <acronym>ECDH</> key exchange - (Marko Kreen) - </para> - - <para> - This allows use of Elliptic Curve keys for server authentication. - Such keys are faster and have better security than <acronym>RSA</> - keys. The new configuration parameter - <xref linkend="guc-ssl-ecdh-curve"> - controls which curve is used for <acronym>ECDH</>. - </para> - </listitem> - - <listitem> - <para> - Improve the default <xref linkend="guc-ssl-ciphers"> setting - (Marko Kreen) - </para> - </listitem> - - <listitem> - <para> - By default, the server not the client now controls the preference - order of <acronym>SSL</> ciphers - (Marko Kreen) - </para> - - <para> - Previously, the order specified by <xref linkend="guc-ssl-ciphers"> - was usually ignored in favor of client-side defaults, which are not - configurable in most <productname>PostgreSQL</> clients. If - desired, the old behavior can be restored via the new configuration - parameter <xref linkend="guc-ssl-prefer-server-ciphers">. - </para> - </listitem> - - <listitem> - <para> - Make <xref linkend="guc-log-connections"> show <acronym>SSL</> - encryption information (Andreas Kunert) - </para> - </listitem> - - <listitem> - <para> - Improve <acronym>SSL</> renegotiation handling (Álvaro - Herrera) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>Server Settings</title> - - <itemizedlist> - - <listitem> - <para> - Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM"> - for changing <filename>postgresql.conf</> configuration file entries - (Amit Kapila) - </para> - - <para> - Previously such settings could only be changed by manually - editing <filename>postgresql.conf</>. - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="guc-autovacuum-work-mem"> configuration parameter - to control the amount of memory used by autovacuum workers - (Peter Geoghegan) - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="guc-huge-pages"> parameter to allow using huge - memory pages on Linux (Christian Kruse, Richard Poole, Abhijit - Menon-Sen) - </para> - - <para> - This can improve performance on large-memory systems. - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="guc-max-worker-processes"> parameter - to limit the number of background workers (Robert Haas) - </para> - - <para> - This is helpful in configuring a standby server to have the - required number of worker processes (the same as the primary). - </para> - </listitem> - - <listitem> - <para> - Add superuser-only <xref linkend="guc-session-preload-libraries"> - parameter to load libraries at session start (Peter Eisentraut) - </para> - - <para> - In contrast to <xref linkend="guc-local-preload-libraries">, this - parameter can load any shared library, not just those in - the <filename>$libdir/plugins</> directory. - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="guc-wal-log-hints"> parameter to enable WAL - logging of hint-bit changes (Sawada Masahiko) - </para> - - <para> - Hint bit changes are not normally logged, except when checksums are - enabled. This is useful for external tools - like <application>pg_rewind</>. - </para> - </listitem> - - <listitem> - <para> - Increase the default settings of <xref linkend="guc-work-mem"> - and <xref linkend="guc-maintenance-work-mem"> by four times (Bruce - Momjian) - </para> - - <para> - The new defaults are 4MB and 64MB respectively. - </para> - </listitem> - - <listitem> - <para> - Increase the default setting of <xref - linkend="guc-effective-cache-size"> - to 4GB (Bruce Momjian, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow <function>printf</function>-style space padding to be - specified in <xref linkend="guc-log-line-prefix"> (David Rowley) - </para> - </listitem> - - <listitem> - <para> - Allow terabyte units (<literal>TB</>) to be used when specifying - configuration variable values (Simon Riggs) - </para> - </listitem> - - <listitem> - <para> - Show <acronym>PID</>s of lock holders and waiters and improve - information about relations in <xref linkend="guc-log-lock-waits"> - log messages (Christian Kruse) - </para> - </listitem> - - <listitem> - <para> - Reduce server logging level when loading shared libraries (Peter - Geoghegan) - </para> - - <para> - The previous level was <literal>LOG</>, which was too verbose - for libraries loaded per-session. - </para> - </listitem> - - <listitem> - <para> - On Windows, make <literal>SQL_ASCII</>-encoded databases and server - processes (e.g., <xref linkend="app-postmaster">) emit messages in - the character encoding of the server's Windows user locale - (Alexander Law, Noah Misch) - </para> - - <para> - Previously these messages were output in the Windows - <acronym>ANSI</> code page. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Replication and Recovery</title> - - <itemizedlist> - - <listitem> - <para> - Add <link linkend="streaming-replication-slots">replication - slots</link> to coordinate activity on streaming standbys with the - node they are streaming from (Andres Freund, Robert Haas) - </para> - - <para> - Replication slots allow preservation of resources like - <acronym>WAL</> files on the primary until they are no longer - needed by standby servers. - </para> - </listitem> - - <listitem> - <para> - Add recovery parameter <xref linkend="recovery-min-apply-delay"> - to delay replication (Robert Haas, Fabrízio de Royes Mello, - Simon Riggs) - </para> - - <para> - Delaying replay on standby servers can be useful for recovering - from user errors. - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="recovery-target"> - option <option>immediate</> to stop <link - linkend="wal"><acronym>WAL</></link> recovery as soon as a - consistent state is reached (MauMau, Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Improve recovery target processing (Heikki Linnakangas) - </para> - - <para> - The timestamp reported - by <link linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link> - now reflects already-committed records, not transactions about to - be committed. Recovering to a restore point now replays the restore - point, rather than stopping just before the restore point. - </para> - </listitem> - - <listitem> - <para> - <link - linkend="functions-admin-backup-table"><function>pg_switch_xlog()</></link> - now clears any unused trailing space in the old <acronym>WAL</> file - (Heikki Linnakangas) - </para> - - <para> - This improves the compression ratio for <acronym>WAL</> files. - </para> - </listitem> - - <listitem> - <para> - Report failure return codes from <link - linkend="archive-recovery-settings">external recovery commands</> - (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Reduce spinlock contention during <acronym>WAL</> replay (Heikki - Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Write <acronym>WAL</> records of running transactions more - frequently (Andres Freund) - </para> - - <para> - This allows standby servers to start faster and clean up resources - more aggressively. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><link linkend="logicaldecoding">Logical Decoding</></title> - - <para> - Logical decoding allows database changes to be streamed in a - configurable format. The data is read from - the <link linkend="wal"><acronym>WAL</></link> and transformed into the - desired target format. To implement this feature, the following changes - were made: - </para> - - <itemizedlist> - - <listitem> - <para> - Add support for <link linkend="logicaldecoding">logical decoding</> - of WAL data, to allow database changes to be streamed out in a - customizable format - (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Add new <xref linkend="guc-wal-level"> setting <option>logical</> - to enable logical change-set encoding in <acronym>WAL</> (Andres - Freund) - </para> - </listitem> - - <listitem> - <para> - Add table-level parameter <link - linkend="catalog-pg-class"><literal>REPLICA IDENTITY</></link> - to control logical replication (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Add relation option <link - linkend="SQL-CREATETABLE-storage-parameters"><option>user_catalog_table</></link> - to identify user-created tables involved in logical change-set - encoding (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="app-pgrecvlogical"> application to receive - logical-decoding data (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="test-decoding"> module to illustrate logical - decoding at the <acronym>SQL</> level (Andres Freund) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Queries</title> - - <itemizedlist> - - <listitem> - <para> - Add <link linkend="queries-tablefunctions"><literal>WITH - ORDINALITY</></link> syntax to number the rows returned from a - set-returning function in the <literal>FROM</> clause - (Andrew Gierth, David Fetter) - </para> - - <para> - This is particularly useful for functions like - <function>unnest()</>. - </para> - </listitem> - - <listitem> - <para> - Add <link linkend="queries-tablefunctions"><literal>ROWS - FROM()</></link> syntax to allow horizontal concatenation of - set-returning functions in the <literal>FROM</> clause (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Allow <xref linkend="SQL-SELECT"> to have - an empty target list (Tom Lane) - </para> - - <para> - This was added so that views that select from a table with zero - columns can be dumped and restored correctly. - </para> - </listitem> - - <listitem> - <para> - Ensure that <link linkend="SQL-SELECT"><literal>SELECT ... FOR UPDATE - NOWAIT</></link> does not wait in corner cases involving - already-concurrently-updated tuples (Craig Ringer and Thomas Munro) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Utility Commands</title> - - <itemizedlist> - - <listitem> - <para> - Add <link linkend="SQL-DISCARD"><command>DISCARD - SEQUENCES</></link> command to discard cached sequence-related state - (Fabrízio de Royes Mello, Robert Haas) - </para> - - <para> - <command>DISCARD ALL</> will now also discard such information. - </para> - </listitem> - - <listitem> - <para> - Add <literal>FORCE NULL</> option - to <link linkend="SQL-COPY"><command>COPY FROM</></link>, which - causes quoted strings matching the specified null string to be - converted to NULLs in <literal>CSV</> mode (Ian Barwick, Michael - Paquier) - </para> - - <para> - Without this option, only unquoted matching strings will be imported - as null values. - </para> - </listitem> - - <listitem> - <para> - Issue warnings for commands used outside of transaction blocks - when they can have no effect (Bruce Momjian) - </para> - - <para> - New warnings are issued for <command>SET - LOCAL</>, <command>SET CONSTRAINTS</>, <command>SET TRANSACTION</> and - <command>ABORT</> when used outside a transaction block. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><xref linkend="SQL-EXPLAIN"></title> - - <itemizedlist> - - <listitem> - <para> - Make <command>EXPLAIN ANALYZE</> show planning time (Andreas - Karlsson) - </para> - </listitem> - - <listitem> - <para> - Make <command>EXPLAIN</> show the grouping columns in Agg and - Group nodes (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Make <command>EXPLAIN ANALYZE</> show exact and lossy - block counts in bitmap heap scans (Etsuro Fujita) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>Views</title> - - <itemizedlist> - - <listitem> - <para> - Allow a <link linkend="rules-materializedviews">materialized view</> - to be refreshed without blocking other sessions from reading the view - meanwhile (Kevin Grittner) - </para> - - <para> - This is done with <link - linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH MATERIALIZED - VIEW CONCURRENTLY</></link>. - </para> - </listitem> - - <listitem> - <para> - Allow views to be <link - linkend="SQL-CREATEVIEW-updatable-views">automatically - updated</link> even if they contain some non-updatable columns - (Dean Rasheed) - </para> - - <para> - Previously the presence of non-updatable output columns such as - expressions, literals, and function calls prevented automatic - updates. Now <command>INSERT</>s, <command>UPDATE</>s and - <command>DELETE</>s are supported, provided that they do not - attempt to assign new values to any of the non-updatable columns. - </para> - </listitem> - - <listitem> - <para> - Allow control over whether <command>INSERT</>s and - <command>UPDATE</>s can add rows to an auto-updatable view that - would not appear in the view (Dean Rasheed) - </para> - - <para> - This is controlled with the new <xref linkend="SQL-CREATEVIEW"> - clause <literal>WITH CHECK OPTION</>. - </para> - </listitem> - - <listitem> - <para> - Allow <link linkend="rules-privileges">security barrier views</> - to be automatically updatable (Dean Rasheed) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Object Manipulation</title> - - <itemizedlist> - - <listitem> - <para> - Support triggers on <link linkend="SQL-CREATEFOREIGNTABLE">foreign - tables</> (Ronan Dunklau) - </para> - </listitem> - - <listitem> - <para> - Allow moving groups of objects from one tablespace to another - using the <literal>ALL IN TABLESPACE ... SET TABLESPACE</> form of - <xref linkend="SQL-ALTERTABLE">, <xref linkend="SQL-ALTERINDEX">, or - <xref linkend="SQL-ALTERMATERIALIZEDVIEW"> (Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - Allow changing foreign key constraint deferrability - via <xref linkend="SQL-ALTERTABLE"> ... <literal>ALTER - CONSTRAINT</> (Simon Riggs) - </para> - </listitem> - - <listitem> - <para> - Reduce lock strength for some <xref linkend="SQL-ALTERTABLE"> - commands - (Simon Riggs, Noah Misch, Robert Haas) - </para> - - <para> - Specifically, <literal>VALIDATE CONSTRAINT</>, <literal>CLUSTER - ON</>, <literal>SET WITHOUT CLUSTER</>, <literal>ALTER COLUMN - SET STATISTICS</>, <literal>ALTER COLUMN</> <literal>SET</> - <option>(attribute_option)</>, <literal>ALTER COLUMN RESET</> - <option>(attribute_option)</> no longer require <literal>ACCESS - EXCLUSIVE</> locks. - </para> - </listitem> - - <listitem> - <para> - Allow tablespace options to be set - in <xref linkend="SQL-CREATETABLESPACE"> (Vik Fearing) - </para> - - <para> - Formerly these options could only be set - via <xref linkend="SQL-ALTERTABLESPACE">. - </para> - </listitem> - - <listitem> - <para> - Allow <xref linkend="SQL-CREATEAGGREGATE"> to define the estimated - size of the aggregate's transition state data (Hadi Moshayedi) - </para> - - <para> - Proper use of this feature allows the planner to better estimate - how much memory will be used by aggregates. - </para> - </listitem> - - <listitem> - <para> - Fix <command>DROP IF EXISTS</> to avoid errors for non-existent - objects in more cases (Pavel Stehule, Dean Rasheed) - </para> - </listitem> - - <listitem> - <para> - Improve how system relations are identified (Andres Freund, - Robert Haas) - </para> - - <para> - Previously, relations once moved into the <literal>pg_catalog</> - schema could no longer be modified or dropped. - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Data Types</title> - - <itemizedlist> - - <listitem> - <para> - Fully implement the <link - linkend="datatype-line"><type>line</></link> data type (Peter - Eisentraut) - </para> - - <para> - The line <emphasis>segment</> data type (<link - linkend="datatype-lseg"><type>lseg</></link>) has always been - fully supported. The previous <type>line</> data type (which was - enabled only via a compile-time option) is not binary or - dump-compatible with the new implementation. - </para> - </listitem> - - <listitem> - <para> - Add <link linkend="datatype-pg-lsn"><type>pg_lsn</></link> - data type to represent a <acronym>WAL</> log sequence number - (<acronym>LSN</>) (Robert Haas, Michael Paquier) - </para> - </listitem> - - <listitem> - <para> - Allow single-point <link - linkend="datatype-polygon"><type>polygon</></link>s to be converted - to <link linkend="datatype-circle"><type>circle</></link>s - (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Support time zone abbreviations that change UTC offset from time to - time (Tom Lane) - </para> - - <para> - Previously, <productname>PostgreSQL</> assumed that the UTC offset - associated with a time zone abbreviation (such as <literal>EST</>) - never changes in the usage of any particular locale. However this - assumption fails in the real world, so introduce the ability for a - zone abbreviation to represent a UTC offset that sometimes changes. - Update the zone abbreviation definition files to make use of this - feature in timezone locales that have changed the UTC offset of their - abbreviations since 1970 (according to the IANA timezone database). - In such timezones, <productname>PostgreSQL</> will now associate the - correct UTC offset with the abbreviation depending on the given date. - </para> - </listitem> - - <listitem> - <para> - Allow 5+ digit years for non-<acronym>ISO</> <link - linkend="datatype-datetime"><type>timestamp</></link> and - <type>date</> strings, where appropriate (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Add checks for overflow/underflow of <link - linkend="datatype-datetime"><type>interval</></link> values - (Bruce Momjian) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><link linkend="datatype-json"><acronym>JSON</></link></title> - - <itemizedlist> - - <listitem> - <para> - Add <link linkend="datatype-json"><type>jsonb</></link>, a more - capable and efficient data type for storing <acronym>JSON</> data - (Oleg Bartunov, Teodor Sigaev, Alexander - Korotkov, Peter Geoghegan, Andrew Dunstan) - </para> - - <para> - This new type allows faster access to values within a JSON - document, and faster and more useful indexing of JSON columns. - Scalar values in <type>jsonb</> documents are stored as appropriate - scalar SQL types, and the JSON document structure is pre-parsed - rather than being stored as text as in the original <type>json</> - data type. - </para> - </listitem> - - <listitem> - <para> - Add new JSON functions to allow for the construction - of arbitrarily complex JSON trees (Andrew Dunstan, Laurence Rowe) - </para> - - <para> - New functions include <link - linkend="functions-json-processing-table"><function>json_array_elements_text()</></link>, - <function>json_build_array()</>, <function>json_object()</>, - <function>json_object_agg()</>, <function>json_to_record()</>, - and <function>json_to_recordset()</>. - </para> - </listitem> - - <listitem> - <para> - Add <link - linkend="functions-json-processing-table"><function>json_typeof()</></link> - to return the data type of a <type>json</> value (Andrew Tipton) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Functions</title> - - <itemizedlist> - - <listitem> - <para> - Add <link - linkend="functions-datetime-delay"><function>pg_sleep_for(interval)</></link> - and <function>pg_sleep_until(timestamp)</> to specify - delays more flexibly (Vik Fearing, Julien Rouhaud) - </para> - - <para> - The existing <function>pg_sleep()</> function only supports delays - specified in seconds. - </para> - </listitem> - - <listitem> - <para> - Add <link - linkend="array-functions-table"><function>cardinality()</></link> - function for arrays (Marko Tiikkaja) - </para> - - <para> - This returns the total number of elements in the array, or zero - for an array with no elements. - </para> - </listitem> - - <listitem> - <para> - Add <acronym>SQL</> functions to allow <link linkend="lo-funcs">large - object reads/writes</link> at arbitrary offsets (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Allow <link - linkend="array-functions-table"><function>unnest()</></link> - to take multiple arguments, which are individually unnested then - horizontally concatenated (Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Add functions to construct <type>time</>s, <type>date</>s, - <type>timestamp</>s, <type>timestamptz</>s, and <type>interval</>s - from individual values, rather than strings (Pavel Stehule) - </para> - - <para> - These functions' names are prefixed with <literal>make_</>, - e.g. <link linkend="functions-datetime-table"><function>make_date()</></link>. - </para> - </listitem> - - <listitem> - <para> - Make <link - linkend="functions-formatting-table"><function>to_char()</></link>'s - <literal>TZ</> format specifier return a useful value for simple - numeric time zone offsets (Tom Lane) - </para> - - <para> - Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</> returned - an empty string if the <literal>timezone</> was set to a constant - like <literal>-4</>. - </para> - </listitem> - - <listitem> - <para> - Add timezone offset format specifier <literal>OF</> to <link - linkend="functions-formatting-table"><function>to_char()</></link> - (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Improve the random seed used for <link - linkend="functions-math-random-table"><function>random()</></link> - (Honza Horak) - </para> - </listitem> - - <listitem> - <para> - Tighten validity checking for Unicode code points in <link - linkend="functions-string-other"><function>chr(int)</></link> - (Tom Lane) - </para> - - <para> - This function now only accepts values that are valid UTF8 characters - according to RFC 3629. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title>System Information Functions</title> - - <itemizedlist> - - <listitem> - <para> - Add functions for looking up objects in <structname>pg_class</>, - <structname>pg_proc</>, <structname>pg_type</>, and - <structname>pg_operator</> that do not generate errors for - non-existent objects (Yugo Nagata, Nozomi Anzai, - Robert Haas) - </para> - - <para> - For example, <link - linkend="functions-info-catalog-table"><function>to_regclass()</></link> - does a lookup in <structname>pg_class</> similarly to - the <type>regclass</> input function, but it returns NULL for a - non-existent object instead of failing. - </para> - </listitem> - - <listitem> - <para> - Add function <link - linkend="functions-admin-dblocation"><function>pg_filenode_relation()</></link> - to allow for more efficient lookup of relation names from filenodes - (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Add <structfield>parameter_default</> column to <link - linkend="infoschema-parameters"><structname>information_schema.parameters</></link> - view (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Make <link - linkend="infoschema-schemata"><structname>information_schema.schemata</></link> - show all accessible schemas (Peter Eisentraut) - </para> - - <para> - Previously it only showed schemas owned by the current user. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title>Aggregates</title> - - <itemizedlist> - - <listitem> - <para> - Add control over which rows are passed - into aggregate functions via the <link - linkend="syntax-aggregates"><literal>FILTER</></link> clause - (David Fetter) - </para> - </listitem> - - <listitem> - <para> - Support ordered-set (<link - linkend="syntax-aggregates"><literal>WITHIN GROUP</></link>) - aggregates (Atri Sharma, Andrew Gierth, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Add standard ordered-set aggregates <link - linkend="functions-orderedset-table"><function>percentile_cont()</></link>, - <function>percentile_disc()</>, <function>mode()</>, <link - linkend="functions-hypothetical-table"><function>rank()</></link>, - <function>dense_rank()</>, <function>percent_rank()</>, and - <function>cume_dist()</> - (Atri Sharma, Andrew Gierth) - </para> - </listitem> - - <listitem> - <para> - Support <link - linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</></link> - aggregate functions (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow polymorphic aggregates to have non-polymorphic state data - types (Tom Lane) - </para> - <para> - This allows proper declaration in SQL of aggregates like the built-in - aggregate <function>array_agg()</>. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Server-Side Languages</title> - - <itemizedlist> - - <listitem> - <para> - Add event trigger support to <link linkend="plperl">PL/Perl</> - and <link linkend="pltcl">PL/Tcl</> (Dimitri Fontaine) - </para> - </listitem> - - <listitem> - <para> - Convert <link linkend="datatype-numeric"><type>numeric</></link> - values to <type>decimal</> in <link linkend="plpython">PL/Python</link> - (Szymon Guz, Ronan Dunklau) - </para> - - <para> - Previously such values were converted to Python <type>float</> values, - risking loss of precision. - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title> - - <itemizedlist> - - <listitem> - <para> - Add ability to retrieve the current PL/pgSQL call stack - using <link linkend="plpgsql-call-stack"><command>GET - DIAGNOSTICS</></link> - (Pavel Stehule, Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - Add option <link - linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</></link> - to display the parameters passed to a query that violated a - <literal>STRICT</> constraint (Marko Tiikkaja) - </para> - </listitem> - - <listitem> - <para> - Add variables <link - linkend="plpgsql-extra-checks"><varname>plpgsql.extra_warnings</></link> - and <varname>plpgsql.extra_errors</> to enable additional PL/pgSQL - warnings and errors (Marko Tiikkaja, Petr Jelinek) - </para> - - <para> - Currently only warnings/errors about shadowed variables are available. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title><link linkend="libpq"><application>libpq</></link></title> - <itemizedlist> - - <listitem> - <para> - Make libpq's <link - linkend="libpq-pqconndefaults"><function>PQconndefaults()</></link> - function ignore invalid service files (Steve Singer, Bruce Momjian) - </para> - - <para> - Previously it returned NULL if an incorrect service file was - encountered. - </para> - </listitem> - - <listitem> - <para> - Accept <acronym>TLS</> protocol versions beyond <literal>TLSv1</> - in libpq (Marko Kreen) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Client Applications</title> - - <itemizedlist> - - <listitem> - <para> - Add <xref linkend="APP-CREATEUSER"> option <option>-g</> - to specify role membership (Christopher Browne) - </para> - </listitem> - - <listitem> - <para> - Add <xref linkend="APP-VACUUMDB"> - option <option>--analyze-in-stages</> to analyze in stages of - increasing granularity (Peter Eisentraut) - </para> - - <para> - This allows minimal statistics to be created quickly. - </para> - </listitem> - - <listitem> - <para> - Make <xref linkend="APP-PGRESETXLOG"> with option <option>-n</> - output current and potentially changed values (Rajeev Rastogi) - </para> - </listitem> - - <listitem> - <para> - Make <xref linkend="app-initdb"> throw error for incorrect locale - settings, rather than silently falling back to a default choice - (Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Make <xref linkend="app-pg-ctl"> return exit code <literal>4</> for - an inaccessible data directory (Amit Kapila, Bruce Momjian) - </para> - - <para> - This behavior more closely matches the Linux Standard Base - (<acronym>LSB</>) Core Specification. - </para> - </listitem> - - <listitem> - <para> - On Windows, ensure that a non-absolute <option>-D</> path - specification is interpreted relative - to <xref linkend="app-pg-ctl">'s current directory - (Kumar Rajeev Rastogi) - </para> - - <para> - Previously it would be interpreted relative to whichever directory - the underlying Windows service was started in. - </para> - </listitem> - - <listitem> - <para> - Allow <function>sizeof()</> in <link linkend="ecpg">ECPG</link> - C array definitions (Michael Meskes) - </para> - </listitem> - - <listitem> - <para> - Make <link linkend="ecpg">ECPG</link> properly handle nesting - of C-style comments in both C and <acronym>SQL</> text - (Michael Meskes) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><xref linkend="APP-PSQL"></title> - - <itemizedlist> - - <listitem> - <para> - Suppress <quote>No rows</quote> output in <application>psql</> <link - linkend="APP-PSQL-meta-commands"><option>expanded</></link> - mode when the footer is disabled (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Allow Control-C to abort <application>psql</> when it's hung at - connection startup (Peter Eisentraut) - </para> - </listitem> - - </itemizedlist> - - <sect5> - <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title> - - <itemizedlist> - - <listitem> - <para> - Make <application>psql</>'s <command>\db+</> show tablespace options - (Magnus Hagander) - </para> - </listitem> - - <listitem> - <para> - Make <command>\do+</> display the functions - that implement the operators (Marko Tiikkaja) - </para> - </listitem> - - <listitem> - <para> - Make <command>\d+</> output an - <literal>OID</> line only if an <literal>oid</literal> column - exists in the table (Bruce Momjian) - </para> - - <para> - Previously, the presence or absence of an <literal>oid</literal> - column was always reported. - </para> - </listitem> - - <listitem> - <para> - Make <command>\d</> show disabled system triggers (Bruce - Momjian) - </para> - - <para> - Previously, if you disabled all triggers, only user triggers - would show as disabled. - </para> - </listitem> - - <listitem> - <para> - Fix <command>\copy</> to no longer require - a space between <literal>stdin</> and a semicolon (Etsuro Fujita) - </para> - </listitem> - - <listitem> - <para> - Output the row count at the end of <command>\copy</>, just - like <command>COPY</> already did (Kumar Rajeev Rastogi) - </para> - </listitem> - - <listitem> - <para> - Fix <command>\conninfo</> to display the - server's <acronym>IP</> address for connections using - <literal>hostaddr</> (Fujii Masao) - </para> - - <para> - Previously <command>\conninfo</> could not display the server's - <acronym>IP</> address in such cases. - </para> - </listitem> - - <listitem> - <para> - Show the <acronym>SSL</> protocol version in - <command>\conninfo</> (Marko Kreen) - </para> - </listitem> - - <listitem> - <para> - Add tab completion for <command>\pset</> - (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Allow <command>\pset</> with no arguments - to show all settings (Gilles Darold) - </para> - </listitem> - - <listitem> - <para> - Make <command>\s</> display the name of the history file it wrote - without converting it to an absolute path (Tom Lane) - </para> - - <para> - The code previously attempted to convert a relative file name to - an absolute path for display, but frequently got it wrong. - </para> - </listitem> - - </itemizedlist> - - </sect5> - - </sect4> - - <sect4> - <title><xref linkend="APP-PGDUMP"></title> - - <itemizedlist> - - <listitem> - <para> - Allow <xref linkend="APP-PGRESTORE"> options - <option>-I</>, <option>-P</>, <option>-T</> and <option>-n</> - to be specified multiple times (Heikki Linnakangas) - </para> - - <para> - This allows multiple objects to be restored in one operation. - </para> - </listitem> - - <listitem> - <para> - Optionally add <literal>IF EXISTS</> clauses to the <command>DROP</> - commands emitted when removing old objects during a restore (Pavel - Stehule) - </para> - - <para> - This change prevents unnecessary errors when removing old objects. - The new <option>--if-exists</> option - for <xref linkend="APP-PGDUMP">, <xref linkend="APP-PG-DUMPALL">, - and <xref linkend="APP-PGRESTORE"> is only available - when <option>--clean</> is also specified. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><xref linkend="app-pgbasebackup"></title> - - <itemizedlist> - - <listitem> - <para> - Add <application>pg_basebackup</> option <option>--xlogdir</> - to specify the <filename>pg_xlog</> directory location (Haribabu - Kommi) - </para> - </listitem> - - <listitem> - <para> - Allow <application>pg_basebackup</> to relocate tablespaces in - the backup copy (Steeve Lennmark) - </para> - - <para> - This is particularly useful for using <application>pg_basebackup</> - on the same machine as the primary. - </para> - </listitem> - - <listitem> - <para> - Allow network-stream base backups to be throttled (Antonin Houska) - </para> - - <para> - This can be controlled with the <application>pg_basebackup</> - <option>--max-rate</> parameter. - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Source Code</title> - - <itemizedlist> - - <listitem> - <para> - Improve the way tuples are frozen to preserve forensic information - (Robert Haas, Andres Freund) - </para> - - <para> - This change removes the main objection to freezing tuples as soon - as possible. Code that inspects tuple flag bits will need to be - modified. - </para> - </listitem> - - <listitem> - <para> - No longer require function prototypes for functions marked with the - <link linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</></link> - macro (Peter Eisentraut) - </para> - - <para> - This change eliminates the need to write boilerplate prototypes. - Note that the <function>PG_FUNCTION_INFO_V1</> macro must appear - before the corresponding function definition to avoid compiler - warnings. - </para> - </listitem> - - <listitem> - <para> - Remove <varname>SnapshotNow</> and - <function>HeapTupleSatisfiesNow()</> (Robert Haas) - </para> - - <para> - All existing uses have been switched to more appropriate snapshot - types. Catalog scans now use <acronym>MVCC</> snapshots. - </para> - </listitem> - - <listitem> - <para> - Add an <acronym>API</> to allow memory allocations over one gigabyte - (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - Add <function>psprintf()</> to simplify memory allocation during - string composition (Peter Eisentraut, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Support <function>printf()</> size modifier <literal>z</> to - print <type>size_t</> values (Andres Freund) - </para> - </listitem> - - <listitem> - <para> - Change <acronym>API</> of <function>appendStringInfoVA()</> - to better use <function>vsnprintf()</> (David Rowley, Tom Lane) - </para> - </listitem> - - <listitem> - <para> - Allow new types of external toast datums to be created (Andres - Freund) - </para> - </listitem> - - <listitem> - <para> - Add single-reader, single-writer, lightweight shared message queue - (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Improve spinlock speed on x86_64 <acronym>CPU</>s (Heikki - Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Remove spinlock support for unsupported platforms - <productname>SINIX</>, <productname>Sun3</>, and - <productname>NS32K</> (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Remove <acronym>IRIX</> port (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Reduce the number of semaphores required by - <option>--disable-spinlocks</> builds (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Rewrite <application>duplicate_oids</> Unix shell script in - <application>Perl</> (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Add Test Anything Protocol (<acronym>TAP</>) tests for client - programs (Peter Eisentraut) - </para> - - <para> - Currently, these tests are run by <literal>make check-world</> - only if the <option>--enable-tap-tests</> option was given - to <application>configure</>. - This might become the default behavior in some future release. - </para> - </listitem> - - <listitem> - <para> - Add make targets <option>check-tests</> and - <option>installcheck-tests</>, which allow selection of individual - tests to be run (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Remove <option>maintainer-check</> makefile rule (Peter Eisentraut) - </para> - - <para> - The default build rules now include all the formerly-optional tests. - </para> - </listitem> - - <listitem> - <para> - Improve support for <envar>VPATH</> builds of <acronym>PGXS</> - modules (Cédric Villemain, Andrew Dunstan, Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Upgrade to Autoconf 2.69 (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Add a <application>configure</> flag that appends custom text to the - <envar>PG_VERSION</> string (Oskari Saarenmaa) - </para> - - <para> - This is useful for packagers building custom binaries. - </para> - </listitem> - - <listitem> - <para> - Improve DocBook <acronym>XML</> validity (Peter Eisentraut) - </para> - </listitem> - - <listitem> - <para> - Fix various minor security and sanity issues reported by the - <productname>Coverity</> scanner (Stephen Frost) - </para> - </listitem> - - <listitem> - <para> - Improve detection of invalid memory usage when testing - <productname>PostgreSQL</> with <application>Valgrind</> - (Noah Misch) - </para> - </listitem> - - <listitem> - <para> - Improve sample <application>Emacs</> configuration file - <filename>emacs.samples</> (Peter Eisentraut) - </para> - - <para> - Also add <filename>.dir-locals.el</> to the top of the source tree. - </para> - </listitem> - - <listitem> - <para> - Allow <application>pgindent</> to accept a command-line list - of typedefs (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Make <application>pgindent</> smarter about blank lines - around preprocessor conditionals (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Avoid most uses of <command>dlltool</command> - in <productname>Cygwin</> and - <productname>Mingw</> builds (Marco Atzeri, Hiroshi Inoue) - </para> - </listitem> - - <listitem> - <para> - Support client-only installs in <acronym>MSVC</> (Windows) builds - (MauMau) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Additional Modules</title> - - <itemizedlist> - - <listitem> - <para> - Add <xref linkend="pgprewarm"> extension to preload relation data - into the shared buffer cache at server start (Robert Haas) - </para> - - <para> - This allows reaching full operating performance more quickly. - </para> - </listitem> - - <listitem> - <para> - Add <acronym>UUID</> random number generator - <function>gen_random_uuid()</> to <xref linkend="pgcrypto"> - (Oskari Saarenmaa) - </para> - - <para> - This allows creation of version 4 <acronym>UUID</>s without - requiring installation of <xref linkend="uuid-ossp">. - </para> - </listitem> - - <listitem> - <para> - Allow <xref linkend="uuid-ossp"> to work with - the <systemitem>BSD</> or <systemitem>e2fsprogs</> UUID libraries, - not only the <systemitem>OSSP</> UUID library (Matteo Beccati) - </para> - - <para> - This improves the <application>uuid-ossp</> module's portability - since it no longer has to have the increasingly-obsolete OSSP - library. The module's name is now rather a misnomer, but we won't - change it. - </para> - </listitem> - - <listitem> - <para> - Add option to <xref linkend="auto-explain"> to include trigger - execution time (Horiguchi Kyotaro) - </para> - </listitem> - - <listitem> - <para> - Fix <xref linkend="pgstattuple"> to not report rows from - uncommitted transactions as dead (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Make <xref linkend="pgstattuple"> functions - use <type>regclass</type>-type arguments (Satoshi Nagayasu) - </para> - - <para> - While <type>text</type>-type arguments are still supported, they - may be removed in a future major release. - </para> - </listitem> - - <listitem> - <para> - Improve consistency of <xref linkend="pgrowlocks"> output to honor - snapshot rules more consistently (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed - regular expression searches (Alexander Korotkov) - </para> - - <para> - This change discourages use of trigrams containing whitespace, which - are usually less selective. - </para> - </listitem> - - <listitem> - <para> - Allow <xref linkend="pgxlogdump"> to report a live log stream - with <option>--follow</> (Heikki Linnakangas) - </para> - </listitem> - - <listitem> - <para> - Store <xref linkend="cube"> data more compactly (Stas Kelvich) - </para> - - <para> - Existing data must be dumped/restored to use the new format. - The old format can still be read. - </para> - </listitem> - - <listitem> - <para> - Reduce <xref linkend="vacuumlo"> client-side memory usage by using - a cursor (Andrew Dunstan) - </para> - </listitem> - - <listitem> - <para> - Dramatically reduce memory consumption - in <xref linkend="pgupgrade"> (Bruce Momjian) - </para> - </listitem> - - <listitem> - <para> - Pass <xref linkend="pgupgrade">'s user name (<option>-U</>) option to - generated analyze scripts (Bruce Momjian) - </para> - </listitem> - - </itemizedlist> - - <sect4> - <title><xref linkend="pgbench"></title> - - <itemizedlist> - - <listitem> - <para> - Remove line length limit for <application>pgbench</> scripts (Sawada - Masahiko) - </para> - - <para> - The previous line limit was <envar>BUFSIZ</>. - </para> - </listitem> - - <listitem> - <para> - Add long option names to <application>pgbench</> (Fabien Coelho) - </para> - </listitem> - - <listitem> - <para> - Add <application>pgbench</> option <option>--rate</> to control - the transaction rate (Fabien Coelho) - </para> - </listitem> - - <listitem> - <para> - Add <application>pgbench</> option <option>--progress</> to - print periodic progress reports - (Fabien Coelho) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - <sect4> - <title><xref linkend="pgstatstatements"></title> - - <itemizedlist> - - <listitem> - <para> - Make <application>pg_stat_statements</> use a file, rather than - shared memory, for query text storage (Peter Geoghegan) - </para> - - <para> - This removes the previous limitation on query text length, and - allows a higher number of unique statements to be tracked by default. - </para> - </listitem> - - <listitem> - <para> - Allow reporting of <application>pg_stat_statements</>'s internal - query hash identifier (Daniel Farina, Sameer Thakur, Peter - Geoghegan) - </para> - </listitem> - - <listitem> - <para> - Add the ability to retrieve all <application>pg_stat_statements</> - information except the query text (Peter Geoghegan) - </para> - - <para> - This allows monitoring tools to fetch query text only for - just-created entries, improving performance during repeated querying - of the statistics. - </para> - </listitem> - - <listitem> - <para> - Make <application>pg_stat_statements</> ignore <command>DEALLOCATE</> - commands (Fabien Coelho) - </para> - - <para> - It already ignored <command>PREPARE</>, as well as planning time in - general, so this seems more consistent. - </para> - </listitem> - - <listitem> - <para> - Save the statistics file into <filename>$PGDATA/pg_stat</> at server - shutdown, rather than <filename>$PGDATA/global</> (Fujii Masao) - </para> - </listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - </sect2> - </sect1> |