<!-- doc/src/sgml/release-9.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-3-17">
+ <title>Release 9.3.17</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2017-05-11</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.16.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.17</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.16,
+ see <xref linkend="release-9-3-16">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <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>
+ 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 <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>
+ Improve performance of <structname>pg_timezone_names</> view
+ (Tom Lane, David Rowley)
+ </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>
+ <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-3-16">
+ <title>Release 9.3.16</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2017-02-09</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.15.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.16</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.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.3.15,
+ see <xref linkend="release-9-3-15">.
+ </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>
+ 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>
+ 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>
+ 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>
+ 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 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-3-15">
+ <title>Release 9.3.15</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2016-10-27</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.14.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.15</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.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.3.9,
+ see <xref linkend="release-9-3-9">.
+ </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 <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 <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 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>
+ 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>
+ 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/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>
+ 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-3-14">
+ <title>Release 9.3.14</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2016-08-11</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.13.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.14</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.9,
+ see <xref linkend="release-9-3-9">.
+ </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>
+ 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>
+ <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>
+ 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-3-13">
+ <title>Release 9.3.13</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2016-05-12</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.12.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.13</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.9,
+ see <xref linkend="release-9-3-9">.
+ </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 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>
+ 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>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f4f4f6990] 2016-04-15 16:49:48 -0400
+Branch: REL9_2_STABLE [d7dbc882d] 2016-04-15 16:49:48 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [992df9658] 2016-04-16 10:42:07 -0400
+Branch: REL9_2_STABLE [9008922bf] 2016-04-16 10:41:57 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [35166fd76] 2016-04-18 13:19:52 -0400
+Branch: REL9_2_STABLE [37f30b251] 2016-04-18 13:19:52 -0400
+-->
+ <para>
+ Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane)
+ </para>
+
+ <para>
+ These changes were not originally needed in pre-9.4 branches, but we
+ recently back-patched a fix that expected the barrier code to work
+ properly. Only IA64 (when using icc), HPPA, and Alpha platforms are
+ affected.
+ </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-3-12">
+ <title>Release 9.3.12</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2016-03-31</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.11.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.12</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.9,
+ see <xref linkend="release-9-3-9">.
+ </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>
+ Correctly handle cases where <literal>pg_subtrans</> is close to XID
+ wraparound during server startup (Jeff Janes)
+ </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-3-11">
+ <title>Release 9.3.11</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2016-02-11</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.10.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.11</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.9,
+ see <xref linkend="release-9-3-9">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix possible misinitialization of unlogged relations at the end of
+ crash recovery (Andres Freund, Michael Paquier)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure walsender slots are fully re-initialized when being re-used
+ (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
+ constraints properly (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <command>REASSIGN OWNED</> to change ownership of composite types
+ properly (Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
+ rather than fail (Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash after doing query rewrite for an updatable view
+ (Stephen Frost)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Make planner cope with hypothetical GIN indexes suggested by an index
+ advisor plug-in (Julien Rouhaud)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix dumping of whole-row Vars in <literal>ROW()</>
+ and <literal>VALUES()</> lists (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible internal overflow in <type>numeric</> division
+ (Dean Rasheed)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Conversion of regular expressions to indexscan bounds could produce
+ incorrect bounds from regexps containing lookahead constraints
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Avoid repeated password prompts during parallel <application>pg_dump</>
+ (Zeus Kronion)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Improve <application>libpq</>'s handling of out-of-memory situations
+ (Michael Paquier, Amit Kapila, Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix order of arguments
+ in <application>ecpg</>-generated <literal>typedef</> statements
+ (Michael Meskes)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
+ function can be interrupted by query cancel (Andreas Karlsson)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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-3-10">
+ <title>Release 9.3.10</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2015-10-08</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.9.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.10</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.9,
+ see <xref linkend="release-9-3-9">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Ensure all relations referred to by an updatable view are properly
+ locked during an update statement (Dean Rasheed)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Avoid O(N^2) behavior when inserting many tuples into a SPI query
+ result (Neil Conway)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve <command>LISTEN</> startup time when there are many unread
+ notifications (Matt Newell)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
+ server crashes (Josh Berkus)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix rare internal overflow in multiplication of <type>numeric</> values
+ (Dean Rasheed)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Add more query-cancel checks to regular expression matching (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix low-memory failures in regular expression compilation
+ (Andreas Seltenreich)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix low-probability memory leak during regular expression execution
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix rare low-memory failure in lock cleanup during transaction abort
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
+ on large inheritance sets (Tom Lane, Dean Rasheed)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Make emergency autovacuuming for multixact wraparound more robust
+ (Andres Freund)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Prevent autovacuum launcher from sleeping unduly long if the server
+ clock is moved backwards a large amount (Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that cleanup of a GIN index's pending-insertions list is
+ interruptable by cancel requests (Jeff Janes)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
+ message texts correctly (Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>PL/Python</> crash when returning the string
+ representation of a <type>record</> result (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Improve <application>libpq</>'s handling of out-of-memory conditions
+ (Michael Paquier, Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix memory leaks and missing out-of-memory checks
+ in <application>ecpg</> (Michael Paquier)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Prevent crash in <application>psql</>'s <command>\c</> command when
+ there is no current connection (Noah Misch)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
+ check constraints correctly (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix selection of default <application>zlib</> compression level
+ in <application>pg_dump</>'s directory output format (Andrew Dunstan)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix assorted minor memory leaks in <application>pg_dump</> and other
+ client-side programs (Michael Paquier)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
+ rather than just assuming it's safe to use (Noah Misch)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Avoid use of inline functions when compiling with
+ 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use <filename>librt</> for <function>sched_yield()</> when necessary,
+ which it is on some Solaris versions (Oskari Saarenmaa)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix Windows <filename>install.bat</> script to handle target directory
+ names that contain spaces (Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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-3-9">
+ <title>Release 9.3.9</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2015-06-12</simpara>
+ </note>
+
+ <para>
+ This release contains a small number of fixes from 9.3.8.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.9</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.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.3.7,
+ see <xref linkend="release-9-3-7">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <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.) You must
+ use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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-3-8">
+ <title>Release 9.3.8</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2015-06-04</simpara>
+ </note>
+
+ <para>
+ This release contains a small number of fixes from 9.3.7.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.8</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.3.7,
+ see <xref linkend="release-9-3-7">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix <function>pg_get_functiondef()</> to show
+ functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
+ </para>
+ </listitem>
+
+ <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>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
+Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
+Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
+Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
+-->
+
+ <listitem>
+ <para>
+ Allow <application>libpq</> to use TLS protocol versions beyond v1
+ (Noah Misch)
+ </para>
+
+ <para>
+ For a long time, <application>libpq</> was coded so that the only SSL
+ protocol it would allow was TLS v1. Now that newer TLS versions are
+ becoming popular, allow it to negotiate the highest commonly-supported
+ TLS version with the server. (<productname>PostgreSQL</> servers were
+ already capable of such negotiation, so no change is needed on the
+ server side.) This is a back-patch of a change already released in
+ 9.4.0.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-7">
+ <title>Release 9.3.7</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2015-05-22</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.6.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.7</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.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.3.6,
+ see <xref linkend="release-9-3-6">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix possible deadlock at startup
+ when <literal>max_prepared_transactions</> is too small
+ (Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't archive useless preallocated WAL files after a timeline switch
+ (Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix autovacuum launcher's possible failure to shut down, if an error
+ occurs after it receives SIGTERM (Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Fix crash when manipulating hash indexes on temporary tables
+ (Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible failure during hash index bucket split, if other processes
+ are modifying the index concurrently (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Add the name of the target server to object description strings for
+ foreign-server user mappings (Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Include the schema name in object identity strings for conversions
+ (Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ In <application>libpq</>, fix misparsing of empty values in URI
+ connection strings (Thomas Fanghaenel)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix array handling in <application>ecpg</> (Michael Meskes)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ In <application>pg_dump</>, fix failure to honor <literal>-Z</>
+ compression level option together with <literal>-Fd</>
+ (Michael Paquier)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ Avoid possible <application>pg_dump</> failure when concurrent sessions
+ are creating and dropping temporary functions (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix dumping of views that are just <literal>VALUES(...)</> but have
+ column aliases (Tom Lane)
+ </para>
+ </listitem>
+
+ <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>
+
+ <listitem>
+ <para>
+ In <application>pg_upgrade</>, check for improperly non-connectable
+ databases before proceeding
+ (Bruce Momjian)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <application>pg_upgrade</>, quote directory paths
+ properly in the generated <literal>delete_old_cluster</> script
+ (Bruce Momjian)
+ </para>
+ </listitem>
+
+ <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>
+
+ <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>
+
+ <listitem>
+ <para>
+ Improve handling of <function>readdir()</> failures when scanning
+ directories in <application>initdb</> and <application>pg_basebackup</>
+ (Marco Nenciarini)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix compile failure on Sparc V8 machines (Rob Rowan)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Silence some build warnings on macOS (Tom Lane)
+ </para>
+ </listitem>
+
+ <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-3-6">
+ <title>Release 9.3.6</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2015-02-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.3.5.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.6</title>
+
+ <para>
+ A dump/restore is not required for those running 9.3.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</> 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>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 9.3.5,
+ see <xref linkend="release-9-3-5">.
+ </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>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
+Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
+Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
+Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
+-->
+
+ <listitem>
+ <para>
+ Avoid possible data corruption if <command>ALTER DATABASE SET
+ TABLESPACE</> is used to move a database to a new tablespace and then
+ shortly later move it back to its original tablespace (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
+Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
+Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
+Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
+Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
+Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
+Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
+-->
+
+ <listitem>
+ <para>
+ Avoid corrupting tables when <command>ANALYZE</> inside a transaction
+ is rolled back (Andres Freund, Tom Lane, Michael Paquier)
+ </para>
+
+ <para>
+ If the failing transaction had earlier removed the last index, rule, or
+ trigger from the table, the table would be left in a corrupted state
+ with the relevant <structname>pg_class</> flags not set though they
+ should be.
+ </para>
+ </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
+Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
+Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
+-->
+
+ <listitem>
+ <para>
+ Ensure that unlogged tables are copied correctly
+ during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
+ TABLESPACE</> (Pavan Deolasee, Andres Freund)
+ </para>
+ </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix incorrect processing
+ of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
+ Jelinek)
+ </para>
+
+ <para>
+ This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
+ were executed as a prepared query, or via extended query protocol.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
+Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
+Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix <command>DROP</>'s dependency searching to correctly handle the
+ case where a table column is recursively visited before its table
+ (Petr Jelinek, Tom Lane)
+ </para>
+
+ <para>
+ This case is only known to arise when an extension creates both a
+ datatype and a table using that datatype. The faulty code might
+ refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
+ specified, which should not be required.
+ </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: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
+Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
+Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
+Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix planning of <command>SELECT FOR UPDATE</> when using a partial
+ index on a child table (Kyotaro Horiguchi)
+ </para>
+
+ <para>
+ In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
+ also recheck the partial index's <literal>WHERE</> condition when
+ rechecking a recently-updated row to see if it still satisfies the
+ query's <literal>WHERE</> condition. This requirement was missed if the
+ index belonged to an inheritance child table, so that it was possible
+ to incorrectly return rows that no longer satisfy the query condition.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
+Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
+Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
+Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
+ twice, and possibly miss returning other rows (Tom Lane)
+ </para>
+
+ <para>
+ In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
+ that is scanning an inheritance tree could incorrectly return a row
+ from a prior child table instead of the one it should return from a
+ later child table.
+ </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: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
+Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
+Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
+Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
+-->
+
+ <listitem>
+ <para>
+ Reject duplicate column names in the referenced-columns list of
+ a <literal>FOREIGN KEY</> declaration (David Rowley)
+ </para>
+
+ <para>
+ This restriction is per SQL standard. Previously we did not reject
+ the case explicitly, but later on the code would fail with
+ bizarre-looking errors.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
+-->
+
+ <listitem>
+ <para>
+ Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
+ </para>
+
+ <para>
+ A negative offset value has been an error since 8.4, but an
+ optimization added in 9.3 accidentally turned the case into a no-op.
+ Restore the expected behavior.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
+Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
+-->
+
+ <listitem>
+ <para>
+ Restore previous behavior of conversion of domains to JSON
+ (Tom Lane)
+ </para>
+
+ <para>
+ This change causes domains over numeric and boolean to be treated
+ like their base types for purposes of conversion to JSON. It worked
+ like that before 9.3.5 and 9.2.9, but was unintentionally changed
+ while fixing a related problem.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix <function>json_agg()</> to not return extra trailing right
+ brackets in its result (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
+Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
+Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
+Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix bugs in raising a <type>numeric</> value to a large integral power
+ (Tom Lane)
+ </para>
+
+ <para>
+ The previous code could get a wrong answer, or consume excessive
+ amounts of time and memory before realizing that the answer must
+ overflow.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
+Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
+Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
+Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
+-->
+
+ <listitem>
+ <para>
+ In <function>numeric_recv()</>, truncate away any fractional digits
+ that would be hidden according to the value's <literal>dscale</> field
+ (Tom Lane)
+ </para>
+
+ <para>
+ A <type>numeric</> value's display scale (<literal>dscale</>) should
+ never be less than the number of nonzero fractional digits; but
+ apparently there's at least one broken client application that
+ transmits binary <type>numeric</> values in which that's true.
+ This leads to strange behavior since the extra digits are taken into
+ account by arithmetic operations even though they aren't printed.
+ The least risky fix seems to be to truncate away such <quote>hidden</>
+ digits on receipt, so that the value is indeed what it prints as.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
+Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix incorrect search for shortest-first regular expression matches
+ (Tom Lane)
+ </para>
+
+ <para>
+ Matching would often fail when the number of allowed iterations is
+ limited by a <literal>?</> quantifier or a bound expression.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
+Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
+Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
+Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
+-->
+
+ <listitem>
+ <para>
+ Reject out-of-range numeric timezone specifications (Tom Lane)
+ </para>
+
+ <para>
+ Simple numeric timezone specifications exceeding +/- 168 hours (one
+ week) would be accepted, but could then cause null-pointer dereference
+ crashes in certain operations. There's no use-case for such large UTC
+ offsets, so reject them.
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
+Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
+Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
+Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
+-->
+
+ <listitem>
+ <para>
+ Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
+ operator (Heikki Linnakangas)
+ </para>
+
+ <para>
+ Two different terms would be considered to match if they had the same
+ CRC. Also, if the second operand had more terms than the first, it
+ would be assumed not to be contained in the first; which is wrong
+ since it might contain duplicate terms.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
+Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
+Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
+Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
+-->
+
+ <listitem>
+ <para>
+ Improve ispell dictionary's defenses against bad affix files (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
+Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
+Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
+Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
+-->
+
+ <listitem>
+ <para>
+ Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
+ </para>
+
+ <para>
+ The previous coding could crash on an oversize dictionary, so this was
+ deemed a back-patchable bug fix rather than a feature addition.
+ </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: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
+Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
+-->
+
+ <listitem>
+ <para>
+ Ensure that whole-row variables expose nonempty column names
+ to functions that pay attention to column names within composite
+ arguments (Tom Lane)
+ </para>
+
+ <para>
+ In some contexts, constructs like <literal>row_to_json(tab.*)</> may
+ not produce the expected column names. This is fixed properly as of
+ 9.4; in older branches, just ensure that we produce some nonempty
+ name. (In some cases this will be the underlying table's column name
+ rather than the query-assigned alias that should theoretically be
+ visible.)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
+Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix mishandling of system columns,
+ particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
+ </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: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
+Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
+-->
+
+ <listitem>
+ <para>
+ Avoid doing <literal><replaceable>indexed_column</> = ANY
+ (<replaceable>array</>)</literal> as an index qualifier if that leads
+ to an inferior plan (Andrew Gierth)
+ </para>
+
+ <para>
+ In some cases, <literal>= ANY</> conditions applied to non-first index
+ columns would be done as index conditions even though it would be
+ better to use them as simple filter conditions.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix <quote>variable not found in subplan target list</> planner
+ failure when an inline-able SQL function taking a composite argument
+ is used in a <literal>LATERAL</> subselect and the composite argument
+ is a lateral reference (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
+Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
+Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
+Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix planner problems with nested append relations, such as inherited
+ tables within <literal>UNION ALL</> subqueries (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
+Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
+Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
+Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
+-->
+
+ <listitem>
+ <para>
+ Fail cleanly when a GiST index tuple doesn't fit on a page, rather
+ than going into infinite recursion (Andrew Gierth)
+ </para>
+ </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
+Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
+Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
+Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
+-->
+
+ <listitem>
+ <para>
+ Exempt tables that have per-table <varname>cost_limit</>
+ and/or <varname>cost_delay</> settings from autovacuum's global cost
+ balancing rules (Álvaro Herrera)
+ </para>
+
+ <para>
+ The previous behavior resulted in basically ignoring these per-table
+ settings, which was unintended. Now, a table having such settings
+ will be vacuumed using those settings, independently of what is going
+ on in other autovacuum workers. This may result in heavier total I/O
+ load than before, so such settings should be re-examined for sanity.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
+Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
+Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
+Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
+-->
+
+ <listitem>
+ <para>
+ Avoid wholesale autovacuuming when autovacuum is nominally off
+ (Tom Lane)
+ </para>
+
+ <para>
+ Even when autovacuum is nominally off, we will still launch autovacuum
+ worker processes to vacuum tables that are at risk of XID wraparound.
+ However, such a worker process then proceeded to vacuum all tables in
+ the target database, if they met the usual thresholds for
+ autovacuuming. This is at best pretty unexpected; at worst it delays
+ response to the wraparound threat. Fix it so that if autovacuum is
+ turned off, workers <emphasis>only</> do anti-wraparound vacuums and
+ not any other work.
+ </para>
+ </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
+Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
+Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
+Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
+Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
+Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
+Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
+-->
+
+ <listitem>
+ <para>
+ During crash recovery, ensure that unlogged relations are rewritten as
+ empty and are synced to disk before recovery is considered complete
+ (Abhijit Menon-Sen, Andres Freund)
+ </para>
+
+ <para>
+ This prevents scenarios in which unlogged relations might contain
+ garbage data following database crash recovery.
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
+Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
+Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
+Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
+-->
+
+ <listitem>
+ <para>
+ Fix race condition between hot standby queries and replaying a
+ full-page image (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This mistake could result in transient errors in queries being
+ executed in hot standby.
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
+Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
+Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
+Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
+-->
+
+ <listitem>
+ <para>
+ Fix several cases where recovery logic improperly ignored WAL records
+ for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
+ </para>
+
+ <para>
+ The most notable oversight was
+ that <varname>recovery_target_xid</> could not be used to stop at
+ a two-phase commit.
+ </para>
+ </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
+Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
+-->
+
+ <listitem>
+ <para>
+ Prevent latest WAL file from being archived a second time at completion
+ of crash recovery (Fujii Masao)
+ </para>
+ </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
+Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
+Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
+Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
+-->
+
+ <listitem>
+ <para>
+ Avoid creating unnecessary <filename>.ready</> marker files for
+ timeline history files (Fujii Masao)
+ </para>
+ </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
+Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
+Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
+Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
+-->
+
+ <listitem>
+ <para>
+ Fix possible null pointer dereference when an empty prepared statement
+ is used and the <varname>log_statement</> setting is <literal>mod</>
+ or <literal>ddl</> (Fujii Masao)
+ </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: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
+-->
+
+ <listitem>
+ <para>
+ Fix possible corruption of postmaster's list of dynamic background
+ workers (Andres Freund)
+ </para>
+ </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
+Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
+Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
+Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
+-->
+
+ <listitem>
+ <para>
+ Fix SPARC spinlock implementation to ensure correctness if the CPU is
+ being run in a non-TSO coherency mode, as some non-Solaris kernels do
+ (Andres Freund)
+ </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: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
+Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
+Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
+Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
+-->
+
+ <listitem>
+ <para>
+ Fix processing of repeated <literal>dbname</> parameters
+ in <function>PQconnectdbParams()</> (Alex Shulgin)
+ </para>
+
+ <para>
+ Unexpected behavior ensued if the first occurrence
+ of <literal>dbname</> contained a connection string or URI to be
+ expanded.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
+Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
+Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
+Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
+-->
+
+ <listitem>
+ <para>
+ Ensure that <application>libpq</> reports a suitable error message on
+ unexpected socket EOF (Marko Tiikkaja, Tom Lane)
+ </para>
+
+ <para>
+ Depending on kernel behavior, <application>libpq</> might return an
+ empty error string rather than something useful when the server
+ unexpectedly closed the socket.
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
+Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
+Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
+Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
+-->
+
+ <listitem>
+ <para>
+ Clear any old error message during <function>PQreset()</>
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ If <function>PQreset()</> is called repeatedly, and the connection
+ cannot be re-established, error messages from the failed connection
+ attempts kept accumulating in the <structname>PGconn</>'s error
+ string.
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
+Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
+Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
+Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
+-->
+
+ <listitem>
+ <para>
+ Properly handle out-of-memory conditions while parsing connection
+ options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
+Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
+Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
+Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix array overrun in <application>ecpg</>'s version
+ of <function>ParseDateTime()</> (Michael Paquier)
+ </para>
+ </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
+Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
+Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
+Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
+-->
+
+ <listitem>
+ <para>
+ In <application>initdb</>, give a clearer error message if a password
+ file is specified but is empty (Mats Erik Andersson)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
+Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
+Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
+Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix <application>psql</>'s <command>\s</> command to work nicely with
+ libedit, and add pager support (Stepan Rutz, Tom Lane)
+ </para>
+
+ <para>
+ When using libedit rather than readline, <command>\s</> printed the
+ command history in a fairly unreadable encoded format, and on recent
+ libedit versions might fail altogether. Fix that by printing the
+ history ourselves rather than having the library do it. A pleasant
+ side-effect is that the pager is used if appropriate.
+ </para>
+
+ <para>
+ This patch also fixes a bug that caused newline encoding to be applied
+ inconsistently when saving the command history with libedit.
+ Multiline history entries written by older <application>psql</>
+ versions will be read cleanly with this patch, but perhaps not
+ vice versa, depending on the exact libedit versions involved.
+ </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: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
+-->
+
+ <listitem>
+ <para>
+ Make <application>psql</>'s <command>\watch</> command display
+ nulls as specified by <command>\pset null</> (Fujii Masao)
+ </para>
+ </listitem>
+
+<!--
+Author: Stephen Frost <sfrost@snowman.net>
+Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
+Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
+Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
+Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix <application>psql</>'s expanded-mode display to work
+ consistently when using <literal>border</> = 3
+ and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
+ (Stephen Frost)
+ </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: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
+Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
+Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
+-->
+
+ <listitem>
+ <para>
+ Improve performance of <application>pg_dump</> when the database
+ contains many instances of multiple dependency paths between the same
+ two objects (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
+Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix <application>pg_dumpall</> to restore its ability to dump from
+ pre-8.1 servers (Gilles Darold)
+ </para>
+ </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
+Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
+Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
+Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix possible deadlock during parallel restore of a schema-only dump
+ (Robert Haas, Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
+Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
+Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
+Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
+ composite type (Rushabh Lathia)
+ </para>
+ </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
+-->
+
+ <listitem>
+ <para>
+ Fix failure to fsync tables in nondefault tablespaces
+ during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
+ </para>
+
+ <para>
+ With an operating system crash and some bad luck, this could result in
+ data loss during an upgrade.
+ </para>
+ </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
+-->
+
+ <listitem>
+ <para>
+ In <application>pg_upgrade</>, cope with cases where the new cluster
+ creates a TOAST table for a table that didn't previously have one
+ (Bruce Momjian)
+ </para>
+
+ <para>
+ Previously this could result in failures due to OID conflicts.
+ </para>
+ </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
+-->
+
+ <listitem>
+ <para>
+ In <application>pg_upgrade</>, don't try to
+ set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
+ (Bruce Momjian)
+ </para>
+
+ <para>
+ This could result in failure because not all 9.3.X versions have that
+ parameter. Fortunately, we don't actually need to set it at all.
+ </para>
+ </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
+-->
+
+ <listitem>
+ <para>
+ In <application>pg_upgrade</>, preserve the transaction ID epoch
+ (Bruce Momjian)
+ </para>
+
+ <para>
+ This oversight did not bother <productname>PostgreSQL</> proper,
+ but could confuse some external replication tools.
+ </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: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
+-->
+
+ <listitem>
+ <para>
+ Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
+ </para>
+ </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
+-->
+
+ <listitem>
+ <para>
+ Fix unintended suppression of <application>pg_receivexlog</> verbose
+ messages (Fujii Masao)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
+Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix failure of <filename>contrib/auto_explain</> to print per-node
+ timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
+Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
+Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
+ (Tom Lane)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
+-->
+
+ <listitem>
+ <para>
+ Avoid integer overflow and buffer overrun
+ in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
+ (Heikki Linnakangas)
+ </para>
+ </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix recognition of numbers in <function>hstore_to_json_loose()</>,
+ so that JSON numbers and strings are correctly distinguished
+ (Andrew Dunstan)
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
+Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
+Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
+Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix block number checking
+ in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
+ (Tom Lane)
+ </para>
+
+ <para>
+ The incorrect checking logic could prevent access to some pages in
+ non-main relation forks.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
+Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
+Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
+Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
+ to not fail on messages whose length is 6 less than a power of 2
+ (Marko Tiikkaja)
+ </para>
+ </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
+Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
+Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
+-->
+
+ <listitem>
+ <para>
+ Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
+ (Jeff Janes)
+ </para>
+
+ <para>
+ This could cause failure to remove temporary files on Windows.
+ </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: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
+Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
+Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
+Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
+-->
+
+ <listitem>
+ <para>
+ Avoid a possible crash in <filename>contrib/xml2</>'s
+ <function>xslt_process()</> (Mark Simonetti)
+ </para>
+
+ <para>
+ <application>libxslt</> seems to have an undocumented dependency on
+ the order in which resources are freed; reorder our calls to avoid a
+ crash.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
+Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
+Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
+-->
+
+ <listitem>
+ <para>
+ Mark some <filename>contrib</> I/O functions with correct volatility
+ properties (Tom Lane)
+ </para>
+
+ <para>
+ The previous over-conservative marking was immaterial in normal use,
+ but could cause optimization problems or rejection of valid index
+ expression definitions. Since the consequences are not large, we've
+ just adjusted the function definitions in the extension modules'
+ scripts, without changing version numbers.
+ </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: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
+-->
+
+ <listitem>
+ <para>
+ Fix setup of background workers in EXEC_BACKEND builds, eg Windows
+ (Robert Haas)
+ </para>
+ </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
+Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
+Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
+Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
+-->
+
+ <listitem>
+ <para>
+ Detect incompatible OpenLDAP versions during build (Noah Misch)
+ </para>
+
+ <para>
+ With OpenLDAP versions 2.4.24 through 2.4.31,
+ inclusive, <productname>PostgreSQL</> backends can crash at exit.
+ Raise a warning during <application>configure</> based on the
+ compile-time OpenLDAP version number, and test the crashing scenario
+ in the <filename>contrib/dblink</> regression test.
+ </para>
+ </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
+Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
+Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
+Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
+-->
+
+ <listitem>
+ <para>
+ In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
+ with execute permissions (Noah Misch)
+ </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: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
+Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
+Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
+Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
+-->
+
+ <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>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
+Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
+Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
+Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
+Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
+Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
+Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
+-->
+
+ <listitem>
+ <para>
+ Update time zone abbreviations lists (Tom Lane)
+ </para>
+
+ <para>
+ Add CST (China Standard Time) to our lists.
+ Remove references to ADT as <quote>Arabia Daylight Time</>, an
+ abbreviation that's been out of use since 2007; therefore, claiming
+ there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
+ especially helpful.
+ Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
+ (Fiji); we didn't even have them on the proper side of the date line.
+ </para>
+ </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
+Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
+Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
+Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
+Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
+Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
+Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
+Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
+Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
+Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
+-->
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2015a.
+ </para>
+
+ <para>
+ The IANA timezone database has adopted abbreviations of the form
+ <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
+ for all Australian time zones, reflecting what they believe to be
+ current majority practice Down Under. These names do not conflict
+ with usage elsewhere (other than ACST for Acre Summer Time, which has
+ been in disuse since 1994). Accordingly, adopt these names into
+ our <quote>Default</> timezone abbreviation set.
+ The <quote>Australia</> abbreviation set now contains only CST, EAST,
+ EST, SAST, SAT, and WST, all of which are thought to be mostly
+ historical usage. Note that SAST has also been changed to be South
+ Africa Standard Time in the <quote>Default</> abbreviation set.
+ </para>
+
+ <para>
+ Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
+ (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
+ DST law changes in Chile, Mexico, the Turks & Caicos Islands
+ (America/Grand_Turk), and Fiji. There is a new zone
+ Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
+ corrections for historical (pre-1970) time zone data.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-3-5">
<title>Release 9.3.5</title>
<listitem>
<para>
- Fix linking of <application>libpython</> on OS X (Tom Lane)
+ Fix linking of <application>libpython</> on macOS (Tom Lane)
</para>
<para>
<para>
This prevents scenarios wherein a pathological regular expression
- could lock up a server process uninterruptably for a long time.
+ could lock up a server process uninterruptibly for a long time.
</para>
</listitem>
<listitem>
<para>
Allow tools like <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
to run on computers with different architectures (Heikki
Linnakangas)
</para>
<listitem>
<para>
Allow <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
and <link
linkend="app-pgbasebackup"><application>pg_basebackup</></link>
<option>--xlog-method</> to handle streaming timeline switches
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
<link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
to allow specifying a connection string (Amit Kapila)
</para>
</listitem>
<listitem>
<para>
- Remove <filename>src/tool/backend</>, now that the content is on
+ Remove <filename>src/tools/backend</>, now that the content is on
the <productname>PostgreSQL</> wiki (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
- Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
+ Add <link linkend="pgwaldump"><application>pg_xlogdump</></link>
contrib program (Andres Freund)
</para>
</listitem>
<listitem>
<para>
Add <link linkend="docguide-toolsets">instructions</link> for setting
- up the documentation tool chain on Mac <productname>OS X</>
+ up the documentation tool chain on <productname>macOS</>
(Peter Eisentraut)
</para>
</listitem>