+++ /dev/null
-<!-- doc/src/sgml/release-10.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-10-6">
- <title>Release 10.6</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-11-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.5.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.6</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you use the <filename>pg_stat_statements</filename> extension,
- see the changelog entry below about that.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.4,
- see <xref linkend="release-10-4"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Ensure proper quoting of transition table names
- when <application>pg_dump</application> emits <command>CREATE TRIGGER
- ... REFERENCING</command> commands (Tom Lane)
- </para>
-
- <para>
- This oversight could be exploited by an unprivileged user to gain
- superuser privileges during the next dump/reload
- or <application>pg_upgrade</application> run. (CVE-2018-16850)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3d0f68dd3] 2018-10-02 11:54:12 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [419cc8add] 2018-10-02 11:54:12 -0400
-Branch: REL_10_STABLE [7eed72333] 2018-10-02 11:54:12 -0400
-Branch: REL9_6_STABLE [6d73983be] 2018-10-02 11:54:12 -0400
-Branch: REL9_5_STABLE [dad4df0fc] 2018-10-02 11:54:13 -0400
-Branch: REL9_4_STABLE [fd81fae67] 2018-10-02 11:54:13 -0400
-Branch: REL9_3_STABLE [01c7a87df] 2018-10-02 11:54:13 -0400
--->
- <para>
- Fix corner-case failures
- in <function>has_<replaceable>foo</replaceable>_privilege()</function>
- family of functions (Tom Lane)
- </para>
-
- <para>
- Return NULL rather than throwing an error when an invalid object OID
- is provided. Some of these functions got that right already, but not
- all. <function>has_column_privilege()</function> was additionally
- capable of crashing on some platforms.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [aaf10f32a] 2018-09-27 18:15:17 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [49507dec4] 2018-09-27 18:15:06 -0400
-Branch: REL_10_STABLE [dff3f06dc] 2018-09-27 18:15:06 -0400
--->
- <para>
- Fix <function>pg_get_partition_constraintdef()</function> to return
- NULL rather than fail when passed an invalid relation OID (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [c8ea87e4b] 2018-08-28 12:17:33 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [bc552b322] 2018-08-28 12:17:37 +0100
-Branch: REL_10_STABLE [f6f61d937] 2018-08-28 11:55:18 +0100
-Branch: REL9_6_STABLE [450b24741] 2018-08-28 11:51:57 +0100
-Branch: REL9_5_STABLE [41cfae1f3] 2018-08-28 11:51:06 +0100
-Branch: REL9_4_STABLE [2ba7c4e6c] 2018-08-28 11:50:20 +0100
-Branch: REL9_3_STABLE [861670369] 2018-08-28 11:48:43 +0100
-Branch: master [b7f6bcbff] 2018-09-12 19:31:06 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [f7d0343ea] 2018-09-12 19:43:44 +0100
-Branch: REL_10_STABLE [ab78c6e36] 2018-09-12 19:44:28 +0100
-Branch: REL9_6_STABLE [03e0bc117] 2018-09-12 19:45:13 +0100
-Branch: REL9_5_STABLE [77c2663de] 2018-09-12 19:52:10 +0100
-Branch: REL9_4_STABLE [a389ddc75] 2018-09-12 19:47:50 +0100
-Branch: REL9_3_STABLE [dea7fc60a] 2018-09-12 19:49:59 +0100
--->
- <para>
- Avoid O(N^2) slowdown in regular expression match/split functions on
- long strings (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [a40631a92] 2018-08-23 21:42:40 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [5b4555f90] 2018-08-23 21:43:51 +0100
-Branch: REL_10_STABLE [d64fad666] 2018-08-23 21:43:55 +0100
-Branch: REL9_6_STABLE [5ec70a928] 2018-08-23 21:35:49 +0100
-Branch: REL9_5_STABLE [af988d130] 2018-08-23 21:35:53 +0100
--->
- <para>
- Fix parsing of standard multi-character operators that are immediately
- followed by a comment or <literal>+</literal> or <literal>-</literal>
- (Andrew Gierth)
- </para>
-
- <para>
- This oversight could lead to parse errors, or to incorrect assignment
- of precedence.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [d4a63f829] 2018-08-23 21:42:40 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [0b42bd459] 2018-08-23 21:43:51 +0100
-Branch: REL_10_STABLE [2dbfbd630] 2018-08-23 21:43:55 +0100
-Branch: REL9_6_STABLE [4854ead60] 2018-08-23 21:34:42 +0100
-Branch: REL9_5_STABLE [ad871a9d7] 2018-08-23 21:33:55 +0100
-Branch: REL9_4_STABLE [6c5ed6836] 2018-08-23 21:33:38 +0100
-Branch: REL9_3_STABLE [9923c934d] 2018-08-23 21:29:15 +0100
--->
- <para>
- Avoid O(N^3) slowdown in lexer for long strings
- of <literal>+</literal> or <literal>-</literal> characters
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [520acab17] 2018-08-17 15:44:13 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [67b161eae] 2018-08-17 15:47:49 +0100
-Branch: REL_10_STABLE [d31ebbff5] 2018-08-17 16:06:35 +0100
-Branch: REL9_6_STABLE [6302fe6b2] 2018-08-17 16:19:10 +0100
-Branch: REL9_5_STABLE [d2ecc27c3] 2018-08-17 16:20:04 +0100
-Branch: REL9_4_STABLE [3cf3a65cb] 2018-08-17 16:23:56 +0100
-Branch: REL9_3_STABLE [807c1c555] 2018-08-17 16:25:52 +0100
--->
- <para>
- Fix mis-execution of SubPlans when the outer query is being scanned
- backwards (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [89b280e13] 2018-09-23 16:05:45 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [fe30cd25e] 2018-09-23 16:05:45 -0400
-Branch: REL_10_STABLE [5ed281e21] 2018-09-23 16:05:45 -0400
-Branch: REL9_6_STABLE [77d2a4866] 2018-09-23 16:05:45 -0400
-Branch: REL9_5_STABLE [c8a978bf4] 2018-09-23 16:05:45 -0400
-Branch: REL9_4_STABLE [38cb01084] 2018-09-23 16:05:45 -0400
-Branch: REL9_3_STABLE [00011a6ae] 2018-09-23 16:05:46 -0400
--->
- <para>
- Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command>
- after rewinding the referenced cursor (Tom Lane)
- </para>
-
- <para>
- A cursor that scans multiple relations (particularly an inheritance
- tree) could produce wrong behavior if rewound to an earlier relation.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1f4a920b7] 2018-09-15 13:42:33 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f13e2d1ce] 2018-09-15 13:42:34 -0400
-Branch: REL_10_STABLE [99cbbbbd1] 2018-09-15 13:42:34 -0400
-Branch: REL9_6_STABLE [2a97a0ad3] 2018-09-15 13:42:34 -0400
-Branch: REL9_5_STABLE [9b14bbd52] 2018-09-15 13:42:34 -0400
-Branch: REL9_4_STABLE [849475510] 2018-09-15 13:42:34 -0400
-Branch: REL9_3_STABLE [591d0ac88] 2018-09-15 13:42:34 -0400
--->
- <para>
- Fix <function>EvalPlanQual</function> to handle conditionally-executed
- InitPlans properly (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This resulted in hard-to-reproduce crashes or wrong answers in
- concurrent updates, if they contained code such as an uncorrelated
- sub-<literal>SELECT</literal> inside a <literal>CASE</literal>
- construct.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent creation of a partition in a trigger attached to its parent
- table (Amit Langote)
- </para>
-
- <para>
- Ideally we'd allow that, but for the moment it has to be blocked to
- avoid crashes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix problems with applying <literal>ON COMMIT DELETE ROWS</literal> to
- a partitioned temporary table (Amit Langote)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix character-class checks to not fail on Windows for Unicode
- characters above U+FFFF (Tom Lane, Kenji Uno)
- </para>
-
- <para>
- This bug affected full-text-search operations, as well
- as <filename>contrib/ltree</filename>
- and <filename>contrib/pg_trgm</filename>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [75f9c4ca5] 2018-09-14 09:36:30 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [830d75659] 2018-09-14 09:51:47 +0530
-Branch: REL_10_STABLE [1ceb103e7] 2018-09-14 10:05:45 +0530
-Branch: REL9_6_STABLE [568b4e1fd] 2018-09-14 10:17:31 +0530
-Branch: master [14e9b2a75] 2018-09-04 10:28:08 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [2ce253cf5] 2018-09-04 10:26:06 +0530
-Branch: REL_10_STABLE [bf61873ae] 2018-09-04 10:49:05 +0530
-Branch: REL9_6_STABLE [f658235a4] 2018-09-04 11:01:25 +0530
--->
- <para>
- Disallow pushing sub-<literal>SELECT</literal>s containing window
- functions, <literal>LIMIT</literal>, or <literal>OFFSET</literal> to
- parallel workers (Amit Kapila)
- </para>
-
- <para>
- Such cases could result in inconsistent behavior due to different
- workers getting different answers, as a result of indeterminacy
- due to row-ordering variations.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [0320ddaf3] 2018-09-26 20:19:15 +0200
-Branch: REL_11_STABLE Release: REL_11_0 [648546960] 2018-09-26 20:19:31 +0200
-Branch: REL_10_STABLE [5f6b0e6d6] 2018-09-26 20:19:44 +0200
-Branch: REL9_6_STABLE [bdf11d688] 2018-09-26 20:20:17 +0200
-Branch: REL9_5_STABLE [992f8542a] 2018-09-26 20:20:59 +0200
-Branch: REL9_4_STABLE [26b877d28] 2018-09-26 20:33:05 +0200
-Branch: REL9_3_STABLE [14ce78e47] 2018-09-26 20:33:21 +0200
--->
- <para>
- Ensure that sequences owned by a foreign table are processed
- by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut)
- </para>
-
- <para>
- The ownership change should propagate to such sequences as well, but
- this was missed for foreign tables.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that the server will process
- already-received <literal>NOTIFY</literal>
- and <literal>SIGTERM</literal> interrupts before waiting for client
- input (Jeff Janes, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [87d9bbca1] 2018-09-24 11:30:59 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [bfdd02f88] 2018-09-24 11:30:51 -0400
-Branch: REL_10_STABLE [103511723] 2018-09-24 11:30:51 -0400
-Branch: REL9_6_STABLE [ac863108f] 2018-09-24 11:30:51 -0400
-Branch: REL9_5_STABLE [6ed095edb] 2018-09-24 11:30:51 -0400
-Branch: REL9_4_STABLE [028fc0bac] 2018-09-24 11:30:51 -0400
-Branch: REL9_3_STABLE [7ecdeb5f5] 2018-09-24 11:30:51 -0400
--->
- <para>
- Fix over-allocation of space for <function>array_out()</function>'s
- result string (Keiichi Hirobe)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [07172d5af] 2018-08-13 01:59:45 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [78f70e07e] 2018-08-13 02:03:12 +0100
-Branch: REL_10_STABLE [556140424] 2018-08-13 02:03:54 +0100
--->
- <para>
- Avoid query-lifetime memory leak in <literal>XMLTABLE</literal>
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix memory leak in repeated SP-GiST index scans (Tom Lane)
- </para>
-
- <para>
- This is only known to amount to anything significant in cases where
- an exclusion constraint using SP-GiST receives many new index entries
- in a single command.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-Branch: master [fa73b377e] 2018-08-16 16:49:57 +0200
-Branch: REL_11_STABLE Release: REL_11_0 [43ba5ac6a] 2018-08-16 16:55:34 +0200
-Branch: REL_10_STABLE [e00f4b68d] 2018-08-16 16:55:09 +0200
-Branch: REL9_6_STABLE [5257b9bfb] 2018-08-16 16:52:44 +0200
-Branch: REL9_5_STABLE [864ecd716] 2018-08-16 16:51:46 +0200
-Branch: REL9_4_STABLE [ef1ac5b2a] 2018-08-16 16:51:00 +0200
--->
- <para>
- Ensure that <function>ApplyLogicalMappingFile()</function> closes the
- mapping file when done with it (Tomas Vondra)
- </para>
-
- <para>
- Previously, the file descriptor was leaked, eventually resulting in
- failures during logical decoding.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [e9edc1ba0] 2018-10-10 13:53:02 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [88670a436] 2018-10-10 13:53:02 -0700
-Branch: REL_10_STABLE [532e3b5b3] 2018-10-10 13:53:02 -0700
-Branch: REL9_6_STABLE [a88482dd2] 2018-10-10 13:53:02 -0700
-Branch: REL9_5_STABLE [0a0c25594] 2018-10-10 13:53:03 -0700
-Branch: REL9_4_STABLE [c7b96ba29] 2018-10-10 13:53:03 -0700
--->
- <para>
- Fix logical decoding to handle cases where a mapped catalog table is
- repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal>
- (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent starting the server with <varname>wal_level</varname> set
- to too low a value to support an existing replication slot (Andres
- Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d48da369a] 2018-10-15 14:01:38 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [db9034bf7] 2018-10-15 14:01:38 -0400
-Branch: REL_10_STABLE [9d4212afa] 2018-10-15 14:01:38 -0400
-Branch: REL9_6_STABLE [ca361554c] 2018-10-15 14:01:38 -0400
-Branch: REL9_5_STABLE [10412cef1] 2018-10-15 14:01:38 -0400
-Branch: REL9_4_STABLE [eb01ea2a3] 2018-10-15 14:01:38 -0400
-Branch: REL9_3_STABLE [3a60c8bb1] 2018-10-15 14:01:38 -0400
--->
- <para>
- Avoid crash if a utility command causes infinite recursion (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [1df21ddb1] 2018-10-14 22:23:21 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [18781cd2a] 2018-10-14 22:23:29 +0900
-Branch: REL_10_STABLE [8384ff424] 2018-10-14 22:23:35 +0900
-Branch: REL9_6_STABLE [010041ddc] 2018-10-14 22:23:43 +0900
-Branch: REL9_5_STABLE [d83dac374] 2018-10-14 22:23:48 +0900
-Branch: REL9_4_STABLE [7c525519d] 2018-10-14 22:23:54 +0900
-Branch: REL9_3_STABLE [0c99e7196] 2018-10-14 22:24:01 +0900
--->
- <para>
- When initializing a hot standby, cope with duplicate XIDs caused by
- two-phase transactions on the master
- (Michael Paquier, Konstantin Knizhnik)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [ad08006ba] 2018-10-06 19:17:46 -0300
-Branch: REL_11_STABLE Release: REL_11_0 [1a852f7c1] 2018-10-06 19:17:46 -0300
-Branch: REL_10_STABLE [101b21ead] 2018-10-06 19:17:46 -0300
-Branch: REL9_6_STABLE [b2f266f58] 2018-10-06 19:17:46 -0300
-Branch: REL9_5_STABLE [a2a5159ed] 2018-10-06 19:17:46 -0300
--->
- <para>
- Fix event triggers to handle nested <command>ALTER TABLE</command>
- commands (Michael Paquier, Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [07ee62ce9] 2018-10-06 12:00:09 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [6bf278df8] 2018-10-06 12:00:09 -0400
-Branch: REL_10_STABLE [58454d0bb] 2018-10-06 12:00:10 -0400
-Branch: REL9_6_STABLE [bdc2e7a19] 2018-10-06 12:00:10 -0400
-Branch: REL9_5_STABLE [3c9dd963c] 2018-10-06 12:00:10 -0400
--->
- <para>
- Propagate parent process's transaction and statement start timestamps
- to parallel workers (Konstantin Knizhnik)
- </para>
-
- <para>
- This prevents misbehavior of functions such
- as <function>transaction_timestamp()</function> when executed in a
- worker.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [9bc9f72b2] 2018-10-03 09:15:03 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [ca5ca25d0] 2018-10-03 09:14:09 +0530
-Branch: REL_10_STABLE [9718c93f5] 2018-10-03 09:38:07 +0530
-Branch: REL9_6_STABLE [dca44d07c] 2018-10-03 09:54:01 +0530
--->
- <para>
- Fix transfer of expanded datums to parallel workers so that alignment
- is preserved, preventing crashes on alignment-picky platforms
- (Tom Lane, Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [78ea8b5da] 2018-09-28 11:54:38 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [88926fd48] 2018-09-28 11:55:43 +0900
-Branch: REL_10_STABLE [05b9c58da] 2018-09-28 11:55:55 +0900
-Branch: REL9_6_STABLE [f4fa92f26] 2018-09-28 11:56:04 +0900
-Branch: REL9_5_STABLE [ed9d6d621] 2018-09-28 11:56:11 +0900
--->
- <para>
- Fix WAL file recycling logic to work correctly on standby servers
- (Michael Paquier)
- </para>
-
- <para>
- Depending on the setting of <varname>archive_mode</varname>, a standby
- might fail to remove some WAL files that could be removed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [8d28bf500] 2018-09-26 10:25:54 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [180feb8c7] 2018-09-26 10:29:20 +0900
-Branch: REL_10_STABLE [cb822ffb7] 2018-09-26 10:29:28 +0900
-Branch: REL9_6_STABLE [e513a3d85] 2018-09-26 10:29:49 +0900
-Branch: REL9_5_STABLE [69a568636] 2018-09-26 10:30:38 +0900
--->
- <para>
- Fix handling of commit-timestamp tracking during recovery
- (Masahiko Sawada, Michael Paquier)
- </para>
-
- <para>
- If commit timestamp tracking has been turned on or off, recovery might
- fail due to trying to fetch the commit timestamp for a transaction
- that did not record it.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [d18f6674b] 2018-09-23 22:56:39 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [89f2b64da] 2018-09-23 22:56:42 -0700
-Branch: REL_10_STABLE [4232cff11] 2018-09-23 22:56:42 -0700
-Branch: REL9_6_STABLE [329cacb90] 2018-09-23 22:56:42 -0700
-Branch: REL9_5_STABLE [d68d5adfd] 2018-09-23 22:56:43 -0700
-Branch: REL9_4_STABLE [401228183] 2018-09-23 22:56:57 -0700
-Branch: REL9_3_STABLE [402da7054] 2018-09-23 22:57:43 -0700
--->
- <para>
- Randomize the <function>random()</function> seed in bootstrap and
- standalone backends, and in <application>initdb</application>
- (Noah Misch)
- </para>
-
- <para>
- The main practical effect of this change is that it avoids a scenario
- where <application>initdb</application> might mistakenly conclude that
- POSIX shared memory is not available, due to name collisions caused by
- always using the same random seed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [38763d677] 2018-09-20 15:52:39 +1200
-Branch: REL_11_STABLE Release: REL_11_0 [8ffc3be10] 2018-09-20 15:59:34 +1200
-Branch: REL_10_STABLE [ba20d3925] 2018-09-20 16:03:51 +1200
--->
- <para>
- Fix possible shared-memory corruption in DSA logic (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [422952ee7] 2018-09-18 22:56:36 +1200
-Branch: REL_11_STABLE Release: REL_11_0 [63efab4ca] 2018-09-18 23:03:54 +1200
-Branch: REL_10_STABLE [7167fa876] 2018-09-18 23:08:56 +1200
-Branch: REL9_6_STABLE [f547035a0] 2018-09-18 23:13:27 +1200
-Branch: REL9_5_STABLE [fb389498b] 2018-09-18 23:19:22 +1200
-Branch: REL9_4_STABLE [c0c5668c6] 2018-09-18 23:49:21 +1200
--->
- <para>
- Allow DSM allocation to be interrupted (Chris Travers)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [6c3c9d418] 2018-09-20 14:21:18 +1200
-Branch: REL_11_STABLE Release: REL_11_0 [9d178fb92] 2018-09-20 14:21:32 +1200
-Branch: REL_10_STABLE [98a4e814e] 2018-09-20 14:21:44 +1200
-Branch: REL9_6_STABLE [de4fe83c7] 2018-09-20 14:21:57 +1200
--->
- <para>
- Avoid failure in a parallel worker when loading an extension that
- tries to access system caches within its init function (Thomas Munro)
- </para>
-
- <para>
- We don't consider that to be good extension coding practice, but it
- mostly worked before parallel query, so continue to support it for
- now.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [bc153c941] 2018-09-13 15:32:50 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [ff4220ead] 2018-09-13 15:38:15 +0530
-Branch: REL_10_STABLE [ede7d8192] 2018-09-13 16:01:57 +0530
-Branch: REL9_6_STABLE [fd4f2af77] 2018-09-13 16:08:55 +0530
-Branch: REL9_5_STABLE [47a589c1f] 2018-09-13 16:10:59 +0530
--->
- <para>
- Properly handle turning <varname>full_page_writes</varname> on
- dynamically (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [500d49794] 2018-09-11 18:14:19 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [e331d6712] 2018-09-11 19:19:45 +0100
-Branch: REL_10_STABLE [c02b56869] 2018-09-11 19:19:50 +0100
-Branch: REL9_6_STABLE [84a3a1e55] 2018-09-11 19:19:55 +0100
--->
- <para>
- Fix possible crash due to double <function>free()</function> during
- SP-GiST rescan (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e3d77ea6b] 2018-09-09 15:17:01 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [6395ac14d] 2018-09-09 15:17:02 -0400
-Branch: REL_10_STABLE [d6ff5322c] 2018-09-09 15:17:03 -0400
-Branch: master [4fa3741d1] 2018-09-10 22:22:12 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [e3aafe200] 2018-09-10 22:22:12 -0400
-Branch: REL_10_STABLE [355fd62e8] 2018-09-10 22:22:12 -0400
--->
- <para>
- Prevent mis-linking of src/port and src/common functions on ELF-based
- BSD platforms, as well as HP-UX and Solaris (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- Shared libraries loaded into a backend's address space could use the
- backend's versions of these functions, rather than their own copies as
- intended. Since the behavior of the two sets of functions isn't
- quite the same, this led to failures.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-Branch: master [5f08accda] 2018-09-09 21:19:29 +0300
-Branch: REL_11_STABLE Release: REL_11_0 [cc909ddbf] 2018-09-09 21:29:00 +0300
-Branch: REL_10_STABLE [bccfd3817] 2018-09-09 21:29:07 +0300
-Branch: REL9_6_STABLE [f9e66f2fb] 2018-09-09 21:42:50 +0300
-Branch: REL9_5_STABLE [e950c6c9d] 2018-09-09 21:44:58 +0300
-Branch: REL9_4_STABLE [35ea98f79] 2018-09-09 21:45:55 +0300
--->
- <para>
- Avoid possible buffer overrun when replaying GIN page recompression
- from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [ac27c74de] 2018-09-06 09:27:19 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [834bce0a5] 2018-09-06 10:07:18 +0530
-Branch: REL_10_STABLE [916afca45] 2018-09-06 10:19:51 +0530
--->
- <para>
- Avoid overrun of a hash index's metapage
- when <literal>BLCKSZ</literal> is smaller than default (Dilip Kumar)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [7c9e19ca9] 2018-09-04 08:35:42 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [16e7bcfac] 2018-09-04 08:33:33 +0530
-Branch: REL_10_STABLE [3b7a96a61] 2018-09-04 08:43:37 +0530
--->
- <para>
- Fix missed page checksum updates in hash indexes (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [caa0c6ceb] 2018-09-02 12:40:30 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [680f89e56] 2018-09-02 12:40:38 -0700
-Branch: REL_10_STABLE [504f059f5] 2018-09-02 12:40:45 -0700
-Branch: REL9_6_STABLE [d8030c684] 2018-09-02 12:40:52 -0700
-Branch: REL9_5_STABLE [02b1b01d8] 2018-09-02 12:40:58 -0700
-Branch: REL9_4_STABLE [113020627] 2018-09-02 12:41:06 -0700
--->
- <para>
- Fix missed fsync of a replication slot's directory (Konstantin
- Knizhnik, Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [ab0ed6153] 2018-08-31 22:59:58 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [ee0ab2754] 2018-08-31 23:00:01 -0700
-Branch: REL_10_STABLE [1664c8b30] 2018-08-31 23:00:01 -0700
-Branch: REL9_6_STABLE [081e4104a] 2018-08-31 23:00:02 -0700
-Branch: REL9_5_STABLE [e3eca937c] 2018-08-31 23:00:02 -0700
-Branch: REL9_4_STABLE [20cd88857] 2018-08-31 23:00:03 -0700
--->
- <para>
- Fix unexpected timeouts when
- using <varname>wal_sender_timeout</varname> on a slow server
- (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [c186ba135] 2018-08-31 11:03:40 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [c34f8078a] 2018-08-31 11:03:55 -0700
-Branch: REL_10_STABLE [2c8cff5dd] 2018-08-31 11:04:07 -0700
-Branch: REL9_6_STABLE [4a9a5bb3f] 2018-08-31 11:04:33 -0700
-Branch: REL9_5_STABLE [f3520ff6f] 2018-08-31 11:04:46 -0700
-Branch: REL9_4_STABLE [d9638a326] 2018-08-31 11:05:59 -0700
-Branch: REL9_3_STABLE [65f39408e] 2018-08-31 11:06:09 -0700
--->
- <para>
- Ensure that hot standby processes use the correct WAL consistency
- point (Alexander Kukushkin, Michael Paquier)
- </para>
-
- <para>
- This prevents possible misbehavior just after a standby server has
- reached a consistent database state during WAL replay.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [55875b6d2] 2018-08-29 17:10:02 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [35622f7d3] 2018-08-29 17:10:13 -0700
-Branch: REL_10_STABLE [89f562ae1] 2018-08-29 17:11:19 -0700
-Branch: REL9_6_STABLE [f6feb8e38] 2018-08-29 17:11:27 -0700
-Branch: REL9_5_STABLE [32f2792eb] 2018-08-29 17:11:40 -0700
--->
- <para>
- Ensure background workers are stopped properly when the postmaster
- receives a fast-shutdown request before completing database startup
- (Alexander Kukushkin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [ab7dbd681] 2018-08-15 18:09:29 -0300
-Branch: REL_11_STABLE Release: REL_11_0 [6872c2be6] 2018-08-15 18:09:29 -0300
-Branch: REL_10_STABLE [255e2fbe8] 2018-08-15 18:09:29 -0300
-Branch: REL9_6_STABLE [3cbd190e1] 2018-08-15 18:09:29 -0300
--->
- <para>
- Update the free space map during WAL replay of page all-visible/frozen
- flag changes (Álvaro Herrera)
- </para>
-
- <para>
- Previously we were not careful about this, reasoning that the FSM is
- not critical data anyway. However, if it's sufficiently out of date,
- that can result in significant performance degradation after a standby
- has been promoted to primary. The FSM will eventually be healed by
- updates, but we'd like it to be good sooner, so work harder at
- maintaining it during WAL replay.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [2cd0acfda] 2018-08-13 08:22:18 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [c054afd0a] 2018-08-13 08:33:55 +0530
-Branch: REL_10_STABLE [ba10eaef5] 2018-08-13 08:43:33 +0530
-Branch: REL9_6_STABLE [69de17186] 2018-08-13 08:56:37 +0530
--->
- <para>
- Avoid premature release of parallel-query resources when query end or
- tuple count limit is reached (Amit Kapila)
- </para>
-
- <para>
- It's only okay to shut down the executor at this point if the caller
- cannot demand backwards scan afterwards.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [8e19a8264] 2018-08-08 19:10:32 +0300
-Branch: REL_11_STABLE Release: REL_11_0 [79f17d45e] 2018-08-08 19:10:35 +0300
-Branch: REL_10_STABLE [2332020d6] 2018-08-08 19:09:30 +0300
-Branch: REL9_6_STABLE [8e4e783ee] 2018-08-08 19:09:33 +0300
-Branch: REL9_5_STABLE [f318f7fdf] 2018-08-08 19:09:35 +0300
-Branch: REL9_4_STABLE [d5a9b706e] 2018-08-08 19:10:38 +0300
-Branch: REL9_3_STABLE [58ce9c785] 2018-08-08 19:10:07 +0300
--->
- <para>
- Don't run atexit callbacks when servicing <literal>SIGQUIT</literal>
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9b7c56d6c] 2018-08-07 16:32:50 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [ea1b65971] 2018-08-07 16:32:55 -0400
-Branch: REL_10_STABLE [9446d7157] 2018-08-07 16:33:00 -0400
-Branch: REL9_6_STABLE [f3ed5364e] 2018-08-07 16:33:03 -0400
-Branch: REL9_5_STABLE [74c877e8d] 2018-08-07 16:33:08 -0400
-Branch: REL9_4_STABLE [33c5d3bf8] 2018-08-07 16:33:12 -0400
-Branch: REL9_3_STABLE [f5973ac76] 2018-08-07 16:33:17 -0400
--->
- <para>
- Don't record foreign-server user mappings as members of extensions
- (Tom Lane)
- </para>
-
- <para>
- If <command>CREATE USER MAPPING</command> is executed in an extension
- script, an extension dependency was created for the user mapping,
- which is unexpected. Roles can't be extension members, so user
- mappings shouldn't be either.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [bff84a547] 2018-08-26 14:21:55 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f8fc5f5f5] 2018-08-26 14:21:55 -0400
-Branch: REL_10_STABLE [6fbbe3353] 2018-08-26 14:21:55 -0400
-Branch: REL9_6_STABLE [93ca07fd8] 2018-08-26 14:21:55 -0400
-Branch: REL9_5_STABLE [8895daf1b] 2018-08-26 14:21:55 -0400
-Branch: REL9_4_STABLE [48bc1a525] 2018-08-26 14:21:55 -0400
-Branch: REL9_3_STABLE [23f21e070] 2018-08-26 14:21:55 -0400
--->
- <para>
- Make syslogger more robust against failures in opening CSV log files
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5ca007741] 2018-08-23 16:39:36 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [c781a066e] 2018-08-23 16:39:37 -0400
-Branch: REL_10_STABLE [6953daf08] 2018-08-23 16:39:20 -0400
--->
- <para>
- When <application>libpq</application> is given multiple target host
- names, do the DNS lookups one at a time, not all at once (Tom Lane)
- </para>
-
- <para>
- This prevents unnecessary failures or slow connections when a
- connection is successfully made to one of the earlier servers in the
- list.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1e6e98f76] 2018-08-13 13:07:52 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [998c73664] 2018-08-13 13:07:52 -0400
-Branch: REL_10_STABLE [e0db288ab] 2018-08-13 13:07:53 -0400
--->
- <para>
- Fix <application>libpq</application>'s handling of connection timeouts
- so that they are properly applied per host name or IP address (Tom Lane)
- </para>
-
- <para>
- Previously, some code paths failed to restart the timer when switching
- to a new target host, possibly resulting in premature timeout.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</application>, as well as documentation
- examples, to call <function>PQconsumeInput()</function> before
- each <function>PQnotifies()</function> call (Tom Lane)
- </para>
-
- <para>
- This fixes cases in which <application>psql</application> would not
- report receipt of a <literal>NOTIFY</literal> message until after the
- next command.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [08c9917e2] 2018-09-25 11:03:56 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [1f5039411] 2018-09-25 11:05:13 +0900
-Branch: REL_10_STABLE [55a586ba9] 2018-09-25 11:05:29 +0900
--->
- <para>
- Fix <application>pg_dump</application>'s
- <option>--no-publications</option> option to also ignore publication
- tables (Gilles Darold)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [b965f2617] 2018-08-22 14:21:49 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [4ed59e02f] 2018-08-22 14:22:39 +0900
-Branch: REL_10_STABLE [cb282eab1] 2018-08-22 14:23:03 +0900
--->
- <para>
- In <application>pg_dump</application>, exclude identity sequences when
- their parent table is excluded from the dump (David Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5b5ed4756] 2018-08-07 13:13:42 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f73643006] 2018-08-07 13:13:42 -0400
-Branch: REL_10_STABLE [dc391dacf] 2018-08-07 13:13:42 -0400
-Branch: REL9_6_STABLE [6b6327d93] 2018-08-07 13:13:42 -0400
-Branch: REL9_5_STABLE [f3f6558b5] 2018-08-07 13:13:42 -0400
-Branch: REL9_4_STABLE [abd04e0dd] 2018-08-07 13:13:42 -0400
-Branch: REL9_3_STABLE [5abdb33ad] 2018-08-07 13:13:42 -0400
--->
- <para>
- Fix possible inconsistency in <application>pg_dump</application>'s
- sorting of dissimilar object names (Jacob Champion)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6771c932c] 2018-08-17 17:12:33 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [d73093c4f] 2018-08-17 17:12:21 -0400
-Branch: REL_10_STABLE [05aeeb5e2] 2018-08-17 17:12:21 -0400
-Branch: REL9_6_STABLE [72329ba03] 2018-08-17 17:12:21 -0400
-Branch: REL9_5_STABLE [3998dfe1b] 2018-08-17 17:12:21 -0400
-Branch: REL9_4_STABLE [a4fdcceab] 2018-08-17 17:12:21 -0400
-Branch: REL9_3_STABLE [b2171d472] 2018-08-17 17:12:21 -0400
--->
- <para>
- Ensure that <application>pg_restore</application> will schema-qualify
- the table name when
- emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal>
- commands (Tom Lane)
- </para>
-
- <para>
- This avoids failures due to the new policy of running restores with
- restrictive search path.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [03838b804] 2018-08-07 15:43:48 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [187331fef] 2018-08-07 15:43:48 -0400
-Branch: REL_10_STABLE [c9dacdb1c] 2018-08-07 15:43:49 -0400
-Branch: REL9_6_STABLE [92d5dd36e] 2018-08-07 15:43:49 -0400
-Branch: REL9_5_STABLE [91f6ec299] 2018-08-07 15:43:49 -0400
-Branch: REL9_4_STABLE [fb4e0e896] 2018-08-07 15:43:49 -0400
-Branch: REL9_3_STABLE [dfffe651e] 2018-08-07 15:43:49 -0400
--->
- <para>
- Fix <application>pg_upgrade</application> to handle event triggers in
- extensions correctly (Haribabu Kommi)
- </para>
-
- <para>
- <application>pg_upgrade</application> failed to preserve an event
- trigger's extension-membership status.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [777e6ddf1] 2018-08-14 17:19:02 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [995133410] 2018-08-14 17:19:02 -0400
-Branch: REL_10_STABLE [efc4b4897] 2018-08-14 17:19:02 -0400
-Branch: REL9_6_STABLE [54db0e5e1] 2018-08-14 17:19:02 -0400
-Branch: REL9_5_STABLE [dcca99627] 2018-08-14 17:19:02 -0400
-Branch: REL9_4_STABLE [a034c6737] 2018-08-14 17:19:02 -0400
-Branch: REL9_3_STABLE [235eab04e] 2018-08-14 17:19:02 -0400
--->
- <para>
- Fix <application>pg_upgrade</application>'s cluster state check to
- work correctly on a standby server (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-Branch: master [f919c165e] 2018-08-31 20:24:48 +0300
-Branch: REL_11_STABLE Release: REL_11_0 [36343e59b] 2018-08-31 20:24:20 +0300
-Branch: REL_10_STABLE [29e07cd22] 2018-08-31 20:23:32 +0300
-Branch: REL9_6_STABLE [5fed7b24a] 2018-08-31 20:22:39 +0300
-Branch: REL9_5_STABLE [b187dae9d] 2018-08-31 20:06:49 +0300
-Branch: REL9_4_STABLE [7cea5e6eb] 2018-08-31 20:10:40 +0300
-Branch: REL9_3_STABLE [9f3ade1a6] 2018-08-31 20:21:30 +0300
--->
- <para>
- Enforce type <type>cube</type>'s dimension limit in
- all <filename>contrib/cube</filename> functions (Andrey Borodin)
- </para>
-
- <para>
- Previously, some cube-related functions could construct values that
- would be rejected by <function>cube_in()</function>, leading to
- dump/reload failures.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <filename>contrib/pg_stat_statements</filename>, disallow
- the <literal>pg_read_all_stats</literal> role from
- executing <function>pg_stat_statements_reset()</function>
- (Haribabu Kommi)
- </para>
-
- <para>
- <literal>pg_read_all_stats</literal> is only meant to grant permission
- to read statistics, not to change them, so this grant was incorrect.
- </para>
-
- <para>
- To cause this change to take effect, run <literal>ALTER EXTENSION
- pg_stat_statements UPDATE</literal> in each database
- where <filename>pg_stat_statements</filename> has been installed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [bf2d0462c] 2018-08-28 14:43:51 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [8bc6a301b] 2018-08-28 15:04:19 +0100
-Branch: REL_10_STABLE [64eed263a] 2018-08-28 15:04:24 +0100
-Branch: REL9_6_STABLE [639bdbb96] 2018-08-28 15:04:30 +0100
--->
- <para>
- In <filename>contrib/postgres_fdw</filename>, don't try to ship a
- variable-free <literal>ORDER BY</literal> clause to the remote server
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a5322ca10] 2018-09-06 10:49:45 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [23aad181f] 2018-09-06 10:49:45 -0400
-Branch: REL_10_STABLE [a54f5b187] 2018-09-06 10:49:45 -0400
-Branch: REL9_6_STABLE [594ee1ada] 2018-09-06 10:49:45 -0400
-Branch: REL9_5_STABLE [c79b39fb1] 2018-09-06 10:49:45 -0400
-Branch: REL9_4_STABLE [d4ab39626] 2018-09-06 10:49:45 -0400
-Branch: REL9_3_STABLE [25ff97ba7] 2018-09-06 10:49:45 -0400
--->
- <para>
- Fix <filename>contrib/unaccent</filename>'s
- <function>unaccent()</function> function to use
- the <literal>unaccent</literal> text search dictionary that is in the
- same schema as the function (Tom Lane)
- </para>
-
- <para>
- Previously it tried to look up the dictionary using the search path,
- which could fail if the search path has a restrictive value.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix build problems on macOS 10.14 (Mojave) (Tom Lane)
- </para>
-
- <para>
- Adjust <application>configure</application> to add
- an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>;
- without this, PL/Perl and PL/Tcl fail to configure or build on macOS
- 10.14. The specific sysroot used can be overridden at configure time
- or build time by setting the <varname>PG_SYSROOT</varname> variable in
- the arguments of <application>configure</application>
- or <application>make</application>.
- </para>
-
- <para>
- It is now recommended that Perl-related extensions
- write <literal>$(perl_includespec)</literal> rather
- than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler
- flags. The latter continues to work on most platforms, but not recent
- macOS.
- </para>
-
- <para>
- Also, it should no longer be necessary to
- specify <option>--with-tclconfig</option> manually to get PL/Tcl to
- build on recent macOS releases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix MSVC build and regression-test scripts to work on recent Perl
- versions (Andrew Dunstan)
- </para>
-
- <para>
- Perl no longer includes the current directory in its search path
- by default; work around that.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, allow the regression tests to be run by an Administrator
- account (Andrew Dunstan)
- </para>
-
- <para>
- To do this safely, <application>pg_regress</application> now gives up
- any such privileges at startup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c87cb5f7a] 2018-10-05 16:01:29 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [67e7d4da7] 2018-10-05 16:01:29 -0400
-Branch: REL_10_STABLE [142cfd3cd] 2018-10-05 16:01:29 -0400
-Branch: REL9_6_STABLE [60cc2414b] 2018-10-05 16:01:30 -0400
-Branch: REL9_5_STABLE [0dc6bf633] 2018-10-05 16:01:30 -0400
-Branch: REL9_4_STABLE [26cc27541] 2018-10-05 16:01:30 -0400
-Branch: REL9_3_STABLE [6e63e0697] 2018-10-05 16:01:30 -0400
--->
- <para>
- Allow btree comparison functions to return <literal>INT_MIN</literal>
- (Tom Lane)
- </para>
-
- <para>
- Up to now, we've forbidden datatype-specific comparison functions from
- returning <literal>INT_MIN</literal>, which allows callers to invert
- the sort order just by negating the comparison result. However, this
- was never safe for comparison functions that directly return the
- result of <function>memcmp()</function>, <function>strcmp()</function>,
- etc, as POSIX doesn't place any such restriction on those functions.
- At least some recent versions of <function>memcmp()</function> can
- return <literal>INT_MIN</literal>, causing incorrect sort ordering.
- Hence, we've removed this restriction. Callers must now use
- the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to
- invert the sort order.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f868a8143] 2018-09-07 18:04:54 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [2569ca0dc] 2018-09-07 18:04:55 -0400
-Branch: REL_10_STABLE [9e6f4fbdd] 2018-09-07 18:04:56 -0400
-Branch: REL9_6_STABLE [395f310b0] 2018-09-07 18:04:58 -0400
-Branch: REL9_5_STABLE [66321ae61] 2018-09-07 18:04:38 -0400
-Branch: REL9_4_STABLE [bf919387e] 2018-09-07 18:04:38 -0400
-Branch: REL9_3_STABLE [95e9f928c] 2018-09-07 18:04:38 -0400
--->
- <para>
- Fix recursion hazard in shared-invalidation message processing
- (Tom Lane)
- </para>
-
- <para>
- This error could, for example, result in failure to access a system
- catalog or index that had just been processed by <command>VACUUM
- FULL</command>.
- </para>
-
- <para>
- This change adds a new result code
- for <function>LockAcquire</function>, which might possibly affect
- external callers of that function, though only very unusual usage
- patterns would have an issue with it. The API
- of <function>LockAcquireExtended</function> is also changed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [361844fe5] 2018-09-07 20:09:57 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [825f10fbd] 2018-09-07 20:09:57 -0400
-Branch: REL_10_STABLE [3985b75dc] 2018-09-07 20:09:57 -0400
-Branch: REL9_6_STABLE [82ebf39fc] 2018-09-07 20:09:57 -0400
-Branch: REL9_5_STABLE [0254aa83b] 2018-09-07 20:09:57 -0400
-Branch: REL9_4_STABLE [d2003339c] 2018-09-07 20:09:57 -0400
-Branch: REL9_3_STABLE [92f0c5083] 2018-09-07 20:09:57 -0400
--->
- <para>
- Save and restore SPI's global variables
- during <function>SPI_connect()</function>
- and <function>SPI_finish()</function> (Chapman Flack, Tom Lane)
- </para>
-
- <para>
- This prevents possible interference when one SPI-using function calls
- another.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [44cac9346] 2018-09-01 15:27:17 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f5c93cf92] 2018-09-01 15:27:13 -0400
-Branch: REL_10_STABLE [10b9af3eb] 2018-09-01 15:27:13 -0400
-Branch: REL9_6_STABLE [826980424] 2018-09-01 15:27:13 -0400
-Branch: REL9_5_STABLE [03ffe5553] 2018-09-01 15:27:13 -0400
-Branch: REL9_4_STABLE [083d9ced1] 2018-09-01 15:27:13 -0400
-Branch: REL9_3_STABLE [5af055ed7] 2018-09-01 15:27:14 -0400
--->
- <para>
- Avoid using potentially-under-aligned page buffers (Tom Lane)
- </para>
-
- <para>
- Invent new union types <type>PGAlignedBlock</type>
- and <type>PGAlignedXLogBlock</type>, and use these in place of plain
- char arrays, ensuring that the compiler can't place the buffer at a
- misaligned start address. This fixes potential core dumps on
- alignment-picky platforms, and may improve performance even on
- platforms that allow misalignment.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [805889d7d] 2018-08-15 13:21:37 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [36147ec9f] 2018-08-15 17:25:49 -0400
-Branch: REL_10_STABLE [1811900b9] 2018-08-15 17:25:50 -0400
-Branch: REL9_6_STABLE [c2a2e331d] 2018-08-15 17:25:52 -0400
-Branch: REL9_5_STABLE [8e9f229d2] 2018-08-15 17:25:23 -0400
-Branch: REL9_4_STABLE [27c4b0899] 2018-08-15 17:25:24 -0400
-Branch: REL9_3_STABLE [a57a6faf6] 2018-08-15 17:25:24 -0400
--->
- <para>
- Make <filename>src/port/snprintf.c</filename> follow the C99
- standard's definition of <function>snprintf()</function>'s result
- value (Tom Lane)
- </para>
-
- <para>
- On platforms where this code is used (mostly Windows), its pre-C99
- behavior could lead to failure to detect buffer overrun, if the
- calling code assumed C99 semantics.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [bd1463e34] 2018-09-20 17:39:40 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [84f14fb78] 2018-09-20 17:48:34 -0700
-Branch: REL_10_STABLE [1b8f09dbd] 2018-09-20 18:10:32 -0700
-Branch: REL9_6_STABLE [e553997e3] 2018-09-20 18:10:52 -0700
-Branch: REL9_5_STABLE [dbbc98a9e] 2018-09-20 18:11:04 -0700
-Branch: REL9_4_STABLE [29196e13c] 2018-09-20 18:11:10 -0700
-Branch: REL9_3_STABLE [978515df2] 2018-09-20 18:11:49 -0700
--->
- <para>
- When building on i386 with the <application>clang</application>
- compiler, require <option>-msse2</option> to be used (Andres Freund)
- </para>
-
- <para>
- This avoids problems with missed floating point overflow checks.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [751f532b9] 2018-09-26 18:23:13 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [7871a3625] 2018-09-30 16:24:56 -0400
-Branch: REL_10_STABLE [0aa1e0ef1] 2018-09-30 16:24:56 -0400
-Branch: REL9_6_STABLE [2855421ec] 2018-09-30 16:24:56 -0400
-Branch: REL9_5_STABLE [8b36dc588] 2018-09-30 16:24:56 -0400
-Branch: REL9_4_STABLE [e5baf8c27] 2018-09-30 16:24:56 -0400
-Branch: REL9_3_STABLE [08aad3c81] 2018-09-30 16:24:56 -0400
--->
- <para>
- Fix <application>configure</application>'s detection of the result
- type of <function>strerror_r()</function> (Tom Lane)
- </para>
-
- <para>
- The previous coding got the wrong answer when building
- with <application>icc</application> on Linux (and perhaps in other
- cases), leading to <application>libpq</application> not returning
- useful error messages for system-reported errors.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia
- (Volgograd), plus historical corrections for China, Hawaii, Japan,
- Macau, and North Korea.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-5">
- <title>Release 10.5</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-08-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.4.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.5</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 10.4,
- see <xref linkend="release-10-4"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d1c6a14ba] 2018-08-06 10:53:35 -0400
-Branch: REL_11_STABLE [f6f735f78] 2018-08-06 10:53:35 -0400
-Branch: REL_10_STABLE [ab5400469] 2018-08-06 10:53:35 -0400
-Branch: REL9_6_STABLE [a8094d0fe] 2018-08-06 10:53:35 -0400
-Branch: REL9_5_STABLE [7aabfd1d8] 2018-08-06 10:53:35 -0400
-Branch: REL9_4_STABLE [6de9766b8] 2018-08-06 10:53:35 -0400
-Branch: REL9_3_STABLE [243de06be] 2018-08-06 10:53:35 -0400
--->
- <para>
- Fix failure to reset <application>libpq</application>'s state fully
- between connection attempts (Tom Lane)
- </para>
-
- <para>
- An unprivileged user of <filename>dblink</filename>
- or <filename>postgres_fdw</filename> could bypass the checks intended
- to prevent use of server-side credentials, such as
- a <filename>~/.pgpass</filename> file owned by the operating-system
- user running the server. Servers allowing peer authentication on
- local connections are particularly vulnerable. Other attacks such
- as SQL injection into a <filename>postgres_fdw</filename> session
- are also possible.
- Attacking <filename>postgres_fdw</filename> in this way requires the
- ability to create a foreign server object with selected connection
- parameters, but any user with access to <filename>dblink</filename>
- could exploit the problem.
- In general, an attacker with the ability to select the connection
- parameters for a <application>libpq</application>-using application
- could cause mischief, though other plausible attack scenarios are
- harder to think of.
- Our thanks to Andrew Krasichkov for reporting this issue.
- (CVE-2018-10915)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b8a1247a3] 2018-08-04 19:38:58 -0400
-Branch: REL_11_STABLE [e7154b6ac] 2018-08-04 19:38:58 -0400
-Branch: REL_10_STABLE [f6a124d01] 2018-08-04 19:38:58 -0400
-Branch: REL9_6_STABLE [b484bffe7] 2018-08-04 19:38:58 -0400
-Branch: REL9_5_STABLE [5ad143cda] 2018-08-04 19:38:59 -0400
--->
- <para>
- Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view
- that isn't just <literal>SELECT * FROM ...</literal>
- (Dean Rasheed, Amit Langote)
- </para>
-
- <para>
- Erroneous expansion of an updatable view could lead to crashes
- or <quote>attribute ... has the wrong type</quote> errors, if the
- view's <literal>SELECT</literal> list doesn't match one-to-one with
- the underlying table's columns.
- Furthermore, this bug could be leveraged to allow updates of columns
- that an attacking user lacks <literal>UPDATE</literal> privilege for,
- if that user has <literal>INSERT</literal> and <literal>UPDATE</literal>
- privileges for some other column(s) of the table.
- Any user could also use it for disclosure of server memory.
- (CVE-2018-10925)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master Release: REL_11_BR [a54e1f158] 2018-06-12 11:13:21 -0700
-Branch: REL_10_STABLE [2ce64caaf] 2018-06-12 11:13:21 -0700
-Branch: REL9_6_STABLE [6a46aba1c] 2018-06-12 11:13:21 -0700
-Branch: REL9_5_STABLE [14b3ec6f3] 2018-06-12 11:13:21 -0700
-Branch: REL9_4_STABLE [817f9f9a8] 2018-06-12 11:13:22 -0700
-Branch: REL9_3_STABLE [9b9b622b2] 2018-06-12 11:13:22 -0700
--->
- <para>
- Ensure that updates to the <structfield>relfrozenxid</structfield>
- and <structfield>relminmxid</structfield> values
- for <quote>nailed</quote> system catalogs are processed in a timely
- fashion (Andres Freund)
- </para>
-
- <para>
- Overoptimistic caching rules could prevent these updates from being
- seen by other sessions, leading to spurious errors and/or data
- corruption. The problem was significantly worse for shared catalogs,
- such as <structname>pg_authid</structname>, because the stale cache
- data could persist into new sessions as well as existing ones.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [3c64dcb1e] 2018-07-05 10:46:18 +0900
-Branch: REL_11_STABLE [9a1bd8271] 2018-07-05 10:46:43 +0900
-Branch: REL_10_STABLE [6716f2f96] 2018-07-05 10:47:01 +0900
-Branch: REL9_6_STABLE [8d68ee6f3] 2018-07-05 10:47:19 +0900
-Branch: REL9_5_STABLE [23eef5cd7] 2018-07-05 10:47:32 +0900
-Branch: REL9_4_STABLE [f352f43d3] 2018-07-05 10:47:50 +0900
-Branch: REL9_3_STABLE [56535dcdc] 2018-07-05 10:48:03 +0900
--->
- <para>
- Fix case where a freshly-promoted standby crashes before having
- completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
- Horiguchi, Pavan Deolasee, Álvaro Herrera)
- </para>
-
- <para>
- This led to a situation where the server did not think it had reached
- a consistent database state during subsequent WAL replay, preventing
- restart.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0905fe891] 2018-07-09 19:26:19 -0400
-Branch: REL_11_STABLE [cfcfbd39b] 2018-07-09 19:26:19 -0400
-Branch: REL_10_STABLE [59b2dcbf4] 2018-07-09 19:26:19 -0400
-Branch: REL9_6_STABLE [568995be6] 2018-07-09 19:26:19 -0400
-Branch: REL9_5_STABLE [7ddac4e8f] 2018-07-09 19:26:19 -0400
-Branch: REL9_4_STABLE [d80ec868f] 2018-07-09 19:26:19 -0400
-Branch: REL9_3_STABLE [e8fe3bb23] 2018-07-09 19:26:19 -0400
--->
- <para>
- Avoid emitting a bogus WAL record when recycling an all-zero btree
- page (Amit Kapila)
- </para>
-
- <para>
- This mistake has been seen to cause assertion failures, and
- potentially it could result in unnecessary query cancellations on hot
- standby servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master Release: REL_11_BR [70b4f82a4] 2018-06-18 10:43:27 +0900
-Branch: REL_10_STABLE [fb28104a4] 2018-06-18 10:43:42 +0900
-Branch: REL9_6_STABLE [5860b22c4] 2018-06-18 10:43:59 +0900
-Branch: REL9_5_STABLE [e41c79548] 2018-06-18 10:44:10 +0900
--->
- <para>
- During WAL replay, guard against corrupted record lengths exceeding
- 1GB (Michael Paquier)
- </para>
-
- <para>
- Treat such a case as corrupt data. Previously, the code would try to
- allocate space and get a hard error, making recovery impossible.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [cbc55da55] 2018-07-09 10:22:34 +0900
-Branch: REL_11_STABLE [5d7c9347e] 2018-07-09 10:25:40 +0900
-Branch: REL_10_STABLE [c030db349] 2018-07-09 10:26:18 +0900
-Branch: REL9_6_STABLE [619dea467] 2018-07-09 10:26:41 +0900
-Branch: REL9_5_STABLE [62203e608] 2018-07-09 10:27:10 +0900
--->
- <para>
- When ending recovery, delay writing the timeline history file as long
- as possible (Heikki Linnakangas)
- </para>
-
- <para>
- This avoids some situations where a failure during recovery cleanup
- (such as a problem with a two-phase state file) led to inconsistent
- timeline state on-disk.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [b41669118] 2018-07-05 02:23:46 +0900
-Branch: REL_11_STABLE [9e53171b1] 2018-07-05 02:25:45 +0900
-Branch: REL_10_STABLE [8463be060] 2018-07-05 02:26:22 +0900
-Branch: REL9_6_STABLE [7da22d866] 2018-07-05 02:27:05 +0900
-Branch: REL9_5_STABLE [614e0729a] 2018-07-05 02:27:46 +0900
-Branch: REL9_4_STABLE [62c2fe644] 2018-07-05 02:46:44 +0900
-Branch: REL9_3_STABLE [7ffe0127e] 2018-07-05 02:52:28 +0900
--->
- <para>
- Improve performance of WAL replay for transactions that drop many
- relations (Fujii Masao)
- </para>
-
- <para>
- This change reduces the number of times that shared buffers are
- scanned, so that it is of most benefit when that setting is large.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master Release: REL_11_BR [a40cff895] 2018-06-26 18:45:45 +1200
-Branch: REL_10_STABLE [88554c091] 2018-06-26 17:17:27 +1200
-Branch: REL9_6_STABLE [35750a38b] 2018-06-26 18:44:31 +1200
-Branch: REL9_5_STABLE [7bcda60d4] 2018-06-26 17:56:20 +1200
-Branch: REL9_4_STABLE [c4ccbcc1a] 2018-06-26 18:23:36 +1200
-Branch: REL9_3_STABLE [12f7d9199] 2018-06-26 18:23:17 +1200
--->
- <para>
- Improve performance of lock releasing in standby server WAL replay
- (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [9a7b7adc1] 2018-07-12 10:19:35 +0900
-Branch: REL_11_STABLE [0414ac6a1] 2018-07-12 10:19:51 +0900
-Branch: REL_10_STABLE [11abea37d] 2018-07-12 10:20:08 +0900
-Branch: REL9_6_STABLE [d5eb1fe0d] 2018-07-12 10:20:14 +0900
-Branch: REL9_5_STABLE [19648375c] 2018-07-12 10:20:21 +0900
-Branch: REL9_4_STABLE [98e2c298c] 2018-07-12 10:20:27 +0900
--->
- <para>
- Make logical WAL senders report streaming state correctly (Simon
- Riggs, Sawada Masahiko)
- </para>
-
- <para>
- The code previously mis-detected whether or not it had caught up with
- the upstream server.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [4f10e7ea7] 2018-07-30 16:30:07 -0400
-Branch: REL_11_STABLE [5dbd0beb8] 2018-07-30 16:30:07 -0400
-Branch: REL_10_STABLE [2c4d0f32e] 2018-07-30 16:30:07 -0400
--->
- <para>
- Ensure that a snapshot is provided when executing data type input
- functions in logical replication subscribers (Minh-Quan Tran,
- Álvaro Herrera)
- </para>
-
- <para>
- This omission led to failures in some cases, such as domains with
- constraints using SQL-language functions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL_11_BR [f49a80c48] 2018-06-26 16:48:10 -0400
-Branch: REL_10_STABLE [b767b3f2e] 2018-06-26 16:38:34 -0400
-Branch: REL9_6_STABLE [da10d6a8a] 2018-06-26 16:38:34 -0400
-Branch: REL9_5_STABLE [4cb6f7837] 2018-06-26 16:38:34 -0400
-Branch: REL9_4_STABLE [962313558] 2018-06-26 16:38:34 -0400
--->
- <para>
- Fix bugs in snapshot handling during logical decoding, allowing wrong
- decoding results in rare cases (Arseny Sher, Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [32df1c9af] 2018-07-16 17:33:22 -0400
-Branch: REL_11_STABLE [9ec9f8f68] 2018-07-16 17:33:35 -0400
-Branch: REL_10_STABLE [4beb25c63] 2018-07-16 17:55:13 -0400
--->
- <para>
- Add subtransaction handling in logical-replication table
- synchronization workers (Amit Khandekar, Robert Haas)
- </para>
-
- <para>
- Previously, table synchronization could misbehave if any
- subtransactions were aborted after modifying a table being
- synchronized.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Geoghegan <pg@bowt.ie>
-Branch: master [b3f919da0] 2018-08-03 15:11:31 -0700
-Branch: REL_11_STABLE [b9612e5cf] 2018-08-03 14:45:02 -0700
-Branch: REL_10_STABLE [c83408aa7] 2018-08-03 14:44:56 -0700
-Branch: REL9_6_STABLE [0a60a291c] 2018-08-03 14:44:44 -0700
-Branch: REL9_5_STABLE [aca225741] 2018-08-03 14:44:38 -0700
-Branch: REL9_4_STABLE [250528cec] 2018-08-03 14:44:33 -0700
-Branch: REL9_3_STABLE [0229e087d] 2018-08-03 14:44:26 -0700
--->
- <para>
- Ensure a table's cached index list is correctly rebuilt after an index
- creation fails partway through (Peter Geoghegan)
- </para>
-
- <para>
- Previously, the failed index's OID could remain in the list, causing
- problems later in the same session.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-Branch: master [309765fa1] 2018-07-19 21:04:17 +0300
-Branch: REL_11_STABLE [608793266] 2018-07-19 23:26:15 +0300
-Branch: REL_10_STABLE [0d26812a4] 2018-07-19 21:12:43 +0300
-Branch: REL9_6_STABLE [44b550e0d] 2018-07-19 21:19:19 +0300
-Branch: REL9_5_STABLE [3c09b032a] 2018-07-19 21:22:07 +0300
-Branch: REL9_4_STABLE [9c6a676c4] 2018-07-19 21:24:53 +0300
--->
- <para>
- Fix mishandling of empty uncompressed posting list pages in GIN
- indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
- </para>
-
- <para>
- This could result in an assertion failure after pg_upgrade of a
- pre-9.4 GIN index (9.4 and later will not create such pages).
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [2d3067595] 2018-07-25 11:00:29 +1200
-Branch: REL_11_STABLE [f2db5f3bb] 2018-07-25 11:00:42 +1200
-Branch: REL_10_STABLE [46201d603] 2018-07-25 11:00:53 +1200
--->
- <para>
- Pad arrays of unnamed POSIX semaphores to reduce cache line sharing
- (Thomas Munro)
- </para>
-
- <para>
- This reduces contention on many-CPU systems, fixing a performance
- regression (compared to previous releases) on Linux and FreeBSD.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [8ce29bb4f] 2018-07-27 10:53:00 +0530
-Branch: REL_11_STABLE [09a5be587] 2018-07-27 10:56:07 +0530
-Branch: REL_10_STABLE [ff8ce0b79] 2018-07-27 11:05:06 +0530
--->
- <para>
- Ensure that a process doing a parallel index scan will respond to
- signals (Amit Kapila)
- </para>
-
- <para>
- Previously, parallel workers could get stuck waiting for a lock on an
- index page, and not notice requests to abort the query.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [3a01f68e3] 2018-07-04 14:58:25 -0700
-Branch: REL_11_STABLE [0c69db762] 2018-07-04 15:08:32 -0700
-Branch: REL_10_STABLE [009580989] 2018-07-04 14:58:39 -0700
-Branch: REL9_6_STABLE [2adadf018] 2018-07-04 14:58:26 -0700
-Branch: REL9_5_STABLE [f411108c9] 2018-07-04 14:58:26 -0700
-Branch: REL9_4_STABLE [8c8c9f37c] 2018-07-04 14:58:26 -0700
--->
- <para>
- Ensure that <command>VACUUM</command> will respond to signals
- within btree page deletion loops (Andres Freund)
- </para>
-
- <para>
- Corrupted btree indexes could result in an infinite loop here, and
- that previously wasn't interruptible without forcing a crash.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1007b0a12] 2018-07-14 11:59:12 -0400
-Branch: REL_11_STABLE [704e39319] 2018-07-14 11:59:12 -0400
-Branch: REL_10_STABLE [0bb28ca36] 2018-07-14 11:59:12 -0400
--->
- <para>
- Fix hash-join costing mistake introduced with inner_unique
- optimization (David Rowley)
- </para>
-
- <para>
- This could lead to bad plan choices in situations where that
- optimization was applicable.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [a11b3bd37] 2018-05-16 13:46:23 -0400
-Branch: REL_10_STABLE [aada0a764] 2018-05-16 13:46:09 -0400
-Branch: REL9_6_STABLE [ace3c7cc0] 2018-05-16 13:46:09 -0400
-Branch: REL9_5_STABLE [6d7629094] 2018-05-16 13:46:09 -0400
-Branch: REL9_4_STABLE [62e0020ad] 2018-05-16 13:46:09 -0400
-Branch: REL9_3_STABLE [bc711befd] 2018-05-16 13:46:09 -0400
--->
- <para>
- Fix misoptimization of equivalence classes involving composite-type
- columns (Tom Lane)
- </para>
-
- <para>
- This resulted in failure to recognize that an index on a composite
- column could provide the sort order needed for a mergejoin on that
- column.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [07e5a2135] 2018-06-21 10:58:42 -0400
-Branch: REL_10_STABLE [a4c95b0b8] 2018-06-21 10:58:42 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [57cd2b6e6] 2018-07-11 15:25:28 -0400
-Branch: REL_11_STABLE [5b762d96e] 2018-07-11 15:25:28 -0400
-Branch: REL_10_STABLE [c35032027] 2018-07-11 15:25:29 -0400
-Branch: REL9_6_STABLE [4b8860e2d] 2018-07-11 15:25:29 -0400
--->
- <para>
- Fix planner to avoid <quote>ORDER/GROUP BY expression not found in
- targetlist</quote> errors in some queries with set-returning functions
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [b6e3a3a49] 2018-07-10 15:19:40 -0400
-Branch: REL_11_STABLE [e7df94f31] 2018-07-10 15:16:27 -0400
-Branch: REL_10_STABLE [7c644b7d3] 2018-07-10 15:07:28 -0400
--->
- <para>
- Fix handling of partition keys whose data type uses a polymorphic
- btree operator class, such as arrays (Amit Langote, Álvaro
- Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master Release: REL_11_BR [1da162e1f] 2018-05-21 17:27:08 +0100
-Branch: REL_10_STABLE [cf516dc9d] 2018-05-21 17:31:01 +0100
-Branch: REL9_6_STABLE [7a0aa8d12] 2018-05-21 17:32:18 +0100
-Branch: REL9_5_STABLE [3b0fb2529] 2018-05-21 17:32:24 +0100
-Branch: REL9_4_STABLE [769e6fcd1] 2018-05-21 17:32:29 +0100
-Branch: REL9_3_STABLE [89b09db01] 2018-05-21 17:32:34 +0100
--->
- <para>
- Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
- parameters (<literal>$<replaceable>n</replaceable></literal>), as the
- standard expects (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [240971675] 2018-07-19 15:41:46 -0400
-Branch: REL_11_STABLE [b1af4bcc4] 2018-07-19 15:41:46 -0400
-Branch: REL_10_STABLE [2131d4501] 2018-07-19 15:41:46 -0400
--->
- <para>
- Remove undocumented restriction against duplicate partition key
- columns (Yugo Nagata)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master Release: REL_11_BR [1c7c317cd] 2018-06-20 10:42:25 +0900
-Branch: REL_10_STABLE [5862174ec] 2018-06-20 10:48:28 +0900
--->
- <para>
- Disallow temporary tables from being partitions of non-temporary
- tables (Amit Langote, Michael Paquier)
- </para>
-
- <para>
- While previously allowed, this case didn't work reliably.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [85c9d3475] 2018-08-03 11:02:02 +0530
-Branch: REL_11_STABLE [dac7fe13b] 2018-08-03 11:16:25 +0530
-Branch: REL_10_STABLE [b805b63ac] 2018-08-03 11:27:11 +0530
-Branch: REL9_6_STABLE [19df1702f] 2018-08-03 11:43:01 +0530
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [ccc84a956] 2018-08-03 09:11:37 +0530
-Branch: REL_11_STABLE [ef305bd59] 2018-08-03 09:29:45 +0530
-Branch: REL_10_STABLE [3f02b5150] 2018-08-03 09:50:24 +0530
-Branch: REL9_6_STABLE [7124c93fb] 2018-08-03 10:07:56 +0530
--->
- <para>
- Fix <command>EXPLAIN</command>'s accounting for resource usage,
- particularly buffer accesses, in parallel workers
- (Amit Kapila, Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL_11_BR [0c8910a0c] 2018-06-08 16:19:05 -0400
-Branch: REL_10_STABLE [a25c207b2] 2018-06-08 16:27:56 -0400
--->
- <para>
- Fix <command>SHOW ALL</command> to show all settings to roles that are
- members of <literal>pg_read_all_settings</literal>, and also allow
- such roles to see source filename and line number in
- the <structname>pg_settings</structname> view (Laurenz Albe,
- Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [1a31baf61] 2018-05-24 12:38:55 -0400
-Branch: REL_10_STABLE [e8cb8fdfd] 2018-05-24 12:38:55 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [056f52d9c] 2018-05-24 12:07:41 -0400
-Branch: REL_10_STABLE [eb1aa1b46] 2018-05-24 12:07:41 -0400
-Branch: REL9_6_STABLE [3d3165210] 2018-05-24 12:07:41 -0400
-Branch: REL9_5_STABLE [ad73c07b4] 2018-05-24 12:07:41 -0400
-Branch: REL9_4_STABLE [8f2143bc8] 2018-05-24 12:07:41 -0400
-Branch: REL9_3_STABLE [cbb37b2e1] 2018-05-24 12:07:42 -0400
--->
- <para>
- Fix failure to schema-qualify some object names
- in <function>getObjectDescription</function>
- and <function>getObjectIdentity</function> output
- (Kyotaro Horiguchi, Tom Lane)
- </para>
-
- <para>
- Names of collations, conversions, text search objects, publication
- relations, and extended statistics objects were not schema-qualified
- when they should be.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [05ca21b87] 2018-05-15 15:06:53 -0400
-Branch: REL_10_STABLE [17083ab7e] 2018-05-15 15:06:53 -0400
-Branch: REL9_6_STABLE [f92491186] 2018-05-15 15:06:53 -0400
--->
- <para>
- Fix <command>CREATE AGGREGATE</command> type checking so that
- parallelism support functions can be attached to variadic aggregates
- (Alexey Bashtanov)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [ecac23511] 2018-05-22 13:32:52 -0400
-Branch: REL_10_STABLE [c92d1461e] 2018-05-22 13:32:52 -0400
-Branch: REL9_6_STABLE [588edd83e] 2018-05-22 13:32:52 -0400
-Branch: REL9_5_STABLE [7df277827] 2018-05-22 13:32:52 -0400
-Branch: REL9_4_STABLE [d25714d0a] 2018-05-22 13:32:52 -0400
-Branch: REL9_3_STABLE [d78028350] 2018-05-22 13:32:52 -0400
--->
- <para>
- Widen <command>COPY FROM</command>'s current-line-number counter
- from 32 to 64 bits (David Rowley)
- </para>
-
- <para>
- This avoids two problems with input exceeding 4G lines: <literal>COPY
- FROM WITH HEADER</literal> would drop a line every 4G lines, not only
- the first line, and error reports could show a wrong line number.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [0ce5cf2ef] 2018-07-06 16:38:30 -0400
-Branch: REL_11_STABLE [ef6464595] 2018-07-06 16:38:29 -0400
-Branch: REL_10_STABLE [a1f680d96] 2018-07-06 16:38:29 -0400
--->
- <para>
- Allow replication slots to be dropped in single-user mode
- (Álvaro Herrera)
- </para>
-
- <para>
- This use-case was accidentally broken in release 10.0.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [ec4719cd1] 2018-06-21 16:18:39 -0400
-Branch: REL_10_STABLE [b8a1d0302] 2018-06-21 16:18:34 -0400
--->
- <para>
- Fix incorrect results from <function>variance(int4)</function> and
- related aggregates when run in parallel aggregation mode
- (David Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL_11_BR [b7f0be9a7] 2018-06-20 12:58:12 -0400
-Branch: REL_10_STABLE [e10bc161f] 2018-06-20 12:58:12 -0400
-Branch: REL_10_STABLE [04ab840b8] 2018-06-20 13:02:46 -0400
--->
- <para>
- Process <literal>TEXT</literal> and <literal>CDATA</literal> nodes
- correctly in <function>xmltable()</function> column expressions
- (Markus Winand)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-Branch: master [8f6ce7fb0] 2018-07-20 08:55:44 +0100
-Branch: REL_11_STABLE [1f919e663] 2018-07-20 08:57:08 +0100
-Branch: REL_10_STABLE [821200405] 2018-07-20 08:58:37 +0100
--->
- <para>
- Cope with possible failure of <application>OpenSSL</application>'s
- <function>RAND_bytes()</function> function
- (Dean Rasheed, Michael Paquier)
- </para>
-
- <para>
- Under rare circumstances, this oversight could result in <quote>could
- not generate random cancel key</quote> failures that could only be
- resolved by restarting the postmaster.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master Release: REL_11_BR [1944cdc98] 2018-03-27 12:32:18 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL_10_STABLE [62038810b] 2018-08-03 11:30:34 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [24986c955] 2018-08-03 12:12:10 -0400
-Branch: REL_11_STABLE [6efc30167] 2018-08-03 12:12:10 -0400
-Branch: REL_10_STABLE [8d00858ba] 2018-08-03 12:12:10 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c7a8f7867] 2018-08-03 12:20:47 -0400
-Branch: REL_11_STABLE [d8b2beb26] 2018-08-03 12:20:47 -0400
-Branch: REL_10_STABLE [ed5d8196c] 2018-08-03 12:20:47 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e3f99e03e] 2018-08-01 12:30:36 -0400
-Branch: REL_11_STABLE [e9bbfe608] 2018-08-01 12:30:36 -0400
-Branch: REL_10_STABLE [71e3b2890] 2018-08-01 12:30:36 -0400
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [b90d97e08] 2018-07-19 20:24:29 +0300
-Branch: REL_11_STABLE [dc961e582] 2018-07-19 20:24:59 +0300
-Branch: REL_10_STABLE [ff4fb4cc1] 2018-07-19 20:25:05 +0300
--->
- <para>
- Fix <application>libpq</application>'s handling of some cases
- where <literal>hostaddr</literal> is specified
- (Hari Babu, Tom Lane, Robert Haas)
- </para>
-
- <para>
- <function>PQhost()</function> gave misleading or incorrect results
- in some cases. Now, it uniformly returns the host name if specified,
- or the host address if only that is specified, or the default host
- name (typically <literal>/tmp</literal>
- or <literal>localhost</literal>) if both parameters are omitted.
- </para>
-
- <para>
- Also, the wrong value might be compared to the server name when
- verifying an SSL certificate.
- </para>
-
- <para>
- Also, the wrong value might be compared to the host name field in
- <filename>~/.pgpass</filename>. Now, that field is compared to the
- host name if specified, or the host address if only that is specified,
- or <literal>localhost</literal> if both parameters are omitted.
- </para>
-
- <para>
- Also, an incorrect error message was reported for an unparseable
- <literal>hostaddr</literal> value.
- </para>
-
- <para>
- Also, when the <literal>host</literal>, <literal>hostaddr</literal>,
- or <literal>port</literal> parameters contain comma-separated
- lists, <application>libpq</application> is now more careful to treat
- empty elements of a list as selecting the default behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master Release: REL_11_BR [4c8156d87] 2018-06-18 18:33:53 +1200
-Branch: REL_10_STABLE [3566873f2] 2018-06-26 19:49:52 +1200
-Branch: REL9_6_STABLE [b5b973ef0] 2018-06-26 20:54:09 +1200
-Branch: REL9_5_STABLE [3bc19d0d2] 2018-06-26 20:54:40 +1200
-Branch: REL9_4_STABLE [db05d0b90] 2018-06-26 23:21:39 +1200
-Branch: REL9_3_STABLE [edabd8f5a] 2018-06-26 23:37:49 +1200
--->
- <para>
- Add a string freeing function
- to <application>ecpg</application>'s <filename>pgtypes</filename>
- library, so that cross-module memory management problems can be
- avoided on Windows (Takayuki Tsunakawa)
- </para>
-
- <para>
- On Windows, crashes can ensue if the <function>free</function> call
- for a given chunk of memory is not made from the same DLL
- that <function>malloc</function>'ed the memory.
- The <filename>pgtypes</filename> library sometimes returns strings
- that it expects the caller to free, making it impossible to follow
- this rule. Add a <function>PGTYPESchar_free()</function> function
- that just wraps <function>free</function>, allowing applications
- to follow this rule.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [f586f8638] 2018-05-18 12:52:28 -0400
-Branch: REL_10_STABLE [cf39aebf1] 2018-05-18 12:52:28 -0400
-Branch: REL9_6_STABLE [25caeae8d] 2018-05-18 12:52:28 -0400
-Branch: REL9_5_STABLE [11a110595] 2018-05-18 12:52:28 -0400
-Branch: REL9_4_STABLE [385f4acbf] 2018-05-18 12:52:28 -0400
-Branch: REL9_3_STABLE [63d3e787f] 2018-05-18 12:52:28 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [a6228128f] 2018-05-18 22:42:10 -0400
-Branch: REL_10_STABLE [c964c2147] 2018-05-18 22:42:10 -0400
-Branch: REL9_6_STABLE [4ffd7909c] 2018-05-18 22:42:10 -0400
-Branch: REL9_5_STABLE [95fef6e82] 2018-05-18 22:42:10 -0400
-Branch: REL9_4_STABLE [023aa76e1] 2018-05-18 22:42:10 -0400
-Branch: REL9_3_STABLE [e9f475f99] 2018-05-18 22:42:10 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [06f66cff9] 2018-05-19 14:22:18 -0400
-Branch: REL_10_STABLE [a5be529aa] 2018-05-19 14:22:18 -0400
-Branch: REL9_6_STABLE [22d22e4bd] 2018-05-19 14:22:18 -0400
-Branch: REL9_5_STABLE [7329af6b9] 2018-05-19 14:22:18 -0400
-Branch: REL9_4_STABLE [8109f201d] 2018-05-19 14:22:19 -0400
-Branch: REL9_3_STABLE [91f3bcc9e] 2018-05-19 14:22:19 -0400
--->
- <para>
- Fix <application>ecpg</application>'s support for <type>long
- long</type> variables on Windows, as well as other platforms that
- declare <function>strtoll</function>/<function>strtoull</function>
- nonstandardly or not at all (Dang Minh Huong, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [9a8aa25cc] 2018-05-25 14:31:06 -0400
-Branch: REL_10_STABLE [5a225b0d6] 2018-05-25 14:31:06 -0400
-Branch: REL9_6_STABLE [f9ecb6cab] 2018-05-25 14:31:07 -0400
-Branch: REL9_5_STABLE [004293c66] 2018-05-25 14:31:07 -0400
-Branch: REL9_4_STABLE [98d522a1d] 2018-05-25 14:31:07 -0400
-Branch: REL9_3_STABLE [da757bf0f] 2018-05-25 14:31:07 -0400
--->
- <para>
- Fix misidentification of SQL statement type in PL/pgSQL, when a rule
- change causes a change in the semantics of a statement intra-session
- (Tom Lane)
- </para>
-
- <para>
- This error led to assertion failures, or in rare cases, failure to
- enforce the <literal>INTO STRICT</literal> option as expected.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [50485b3e2] 2018-05-23 19:04:34 -0400
-Branch: REL_10_STABLE [bed74e9d4] 2018-05-23 19:04:34 -0400
-Branch: REL9_6_STABLE [bbaf75ee0] 2018-05-23 19:04:34 -0400
-Branch: REL9_5_STABLE [085791b8a] 2018-05-23 19:04:34 -0400
-Branch: REL9_4_STABLE [09fb2d5d3] 2018-05-23 19:04:34 -0400
-Branch: REL9_3_STABLE [3466b0202] 2018-05-23 19:04:34 -0400
--->
- <para>
- Fix password prompting in client programs so that echo is properly
- disabled on Windows when <literal>stdin</literal> is not the
- terminal (Matthew Stickney)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3eb76b39] 2018-07-31 13:00:14 -0400
-Branch: REL_11_STABLE [a56c11d44] 2018-07-31 13:00:08 -0400
-Branch: REL_10_STABLE [31b29b1b3] 2018-07-31 13:00:08 -0400
-Branch: REL9_6_STABLE [6680d19a8] 2018-07-31 13:00:08 -0400
-Branch: REL9_5_STABLE [12f2d814a] 2018-07-31 13:00:08 -0400
-Branch: REL9_4_STABLE [88adf1add] 2018-07-31 13:00:08 -0400
-Branch: REL9_3_STABLE [461e2e433] 2018-07-31 13:00:08 -0400
--->
- <para>
- Further fix mis-quoting of values for list-valued GUC variables in
- dumps (Tom Lane)
- </para>
-
- <para>
- The previous fix for quoting of <varname>search_path</varname> and
- other list-valued variables in <application>pg_dump</application>
- output turned out to misbehave for empty-string list elements, and it
- risked truncation of long file paths.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c0a552921] 2018-07-30 12:35:49 -0400
-Branch: REL_11_STABLE [f6ef3ed43] 2018-07-30 12:35:49 -0400
-Branch: REL_10_STABLE [96b1d984f] 2018-07-30 12:35:49 -0400
-Branch: REL9_6_STABLE [8c7f64b0e] 2018-07-30 12:35:49 -0400
-Branch: REL9_5_STABLE [b868c08eb] 2018-07-30 12:35:49 -0400
-Branch: REL9_4_STABLE [addf9e1bd] 2018-07-30 12:35:49 -0400
--->
- <para>
- Fix <application>pg_dump</application>'s failure to
- dump <literal>REPLICA IDENTITY</literal> properties for constraint
- indexes (Tom Lane)
- </para>
-
- <para>
- Manually created unique indexes were properly marked, but not those
- created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
- KEY</literal> constraints.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [244142d32] 2018-07-28 15:01:55 -0400
-Branch: REL_11_STABLE [113224848] 2018-07-28 15:01:55 -0400
-Branch: REL_10_STABLE [9a13e7f0f] 2018-07-28 15:01:55 -0400
-Branch: REL9_6_STABLE [a326ca75b] 2018-07-28 15:01:55 -0400
-Branch: REL9_5_STABLE [260fe9f2b] 2018-07-28 15:01:55 -0400
-Branch: REL9_4_STABLE [f87878106] 2018-07-28 15:01:55 -0400
-Branch: REL9_3_STABLE [a5c84e0b7] 2018-07-28 15:01:55 -0400
-Branch: master [b6d6488a3] 2018-07-31 18:10:06 -0400
-Branch: REL_11_STABLE [920001633] 2018-07-31 18:10:06 -0400
-Branch: REL_10_STABLE [d8dd8d221] 2018-07-31 18:10:06 -0400
-Branch: REL9_6_STABLE [764e21db0] 2018-07-31 18:10:06 -0400
-Branch: REL9_5_STABLE [92a11a0d8] 2018-07-31 18:10:06 -0400
-Branch: REL9_4_STABLE [12dd07008] 2018-07-31 18:10:06 -0400
-Branch: REL9_3_STABLE [a1d383ab5] 2018-07-31 18:10:06 -0400
-Branch: REL9_3_STABLE [dfc71a1b2] 2018-07-31 19:06:32 -0400
--->
- <para>
- Make <application>pg_upgrade</application> check that the old server
- was shut down cleanly (Bruce Momjian)
- </para>
-
- <para>
- The previous check could be fooled by an immediate-mode shutdown.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [e3b7f7cc5] 2018-06-18 15:55:06 -0400
-Branch: REL_10_STABLE [7594b7a53] 2018-06-18 15:55:06 -0400
-Branch: REL9_6_STABLE [1bebfb9b6] 2018-06-18 15:55:06 -0400
-Branch: REL9_5_STABLE [645929c54] 2018-06-18 15:55:06 -0400
--->
- <para>
- Fix <filename>contrib/hstore_plperl</filename> to look through Perl
- scalar references, and to not crash if it doesn't find a hash
- reference where it expects one (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [28a1ae534] 2018-07-13 18:45:30 -0400
-Branch: REL_11_STABLE [dbd7f4e7c] 2018-07-13 18:45:30 -0400
-Branch: REL_10_STABLE [1f47eb08c] 2018-07-13 18:45:30 -0400
-Branch: REL9_6_STABLE [330cad2c4] 2018-07-13 18:45:30 -0400
-Branch: REL9_5_STABLE [ac6b69c19] 2018-07-13 18:45:30 -0400
-Branch: REL9_4_STABLE [f8e8be7f2] 2018-07-13 18:45:30 -0400
-Branch: REL9_3_STABLE [cbbe75fe6] 2018-07-13 18:45:30 -0400
--->
- <para>
- Fix crash in <filename>contrib/ltree</filename>'s
- <function>lca()</function> function when the input array is empty
- (Pierre Ducroquet)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [81256cd05] 2018-05-21 00:32:28 -0400
-Branch: REL_10_STABLE [28782d7e3] 2018-05-21 00:32:39 -0400
-Branch: REL9_6_STABLE [1545ca9a7] 2018-05-21 00:32:44 -0400
-Branch: REL9_5_STABLE [ced0cdc76] 2018-05-21 00:32:48 -0400
-Branch: REL9_4_STABLE [5517367e9] 2018-05-21 00:32:52 -0400
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master Release: REL_11_BR [6cb337241] 2018-06-25 11:19:05 +0900
-Branch: REL_10_STABLE [6eec6724f] 2018-06-25 11:20:19 +0900
-Branch: REL9_6_STABLE [7fdf56b0a] 2018-06-25 11:20:50 +0900
-Branch: REL9_5_STABLE [910e2aca1] 2018-06-25 11:21:49 +0900
-Branch: REL9_4_STABLE [79b5b101f] 2018-06-25 11:22:02 +0900
-Branch: REL9_3_STABLE [f53ed82b7] 2018-06-25 11:22:24 +0900
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [5a23c74b6] 2018-08-05 05:31:18 +0900
-Branch: REL_11_STABLE [58673b4a5] 2018-08-05 05:31:56 +0900
-Branch: REL_10_STABLE [7124e6452] 2018-08-05 05:32:12 +0900
-Branch: REL9_6_STABLE [f5b4bb881] 2018-08-05 05:32:27 +0900
-Branch: REL9_5_STABLE [afd5fde85] 2018-08-05 05:32:37 +0900
-Branch: REL9_4_STABLE [e69a3ac4a] 2018-08-05 05:32:44 +0900
-Branch: REL9_3_STABLE [69599cc49] 2018-08-05 05:32:54 +0900
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master Release: REL_11_BR [cfb758b6d] 2018-05-18 17:54:18 +0200
-Branch: REL_10_STABLE [29ce50091] 2018-05-18 17:53:12 +0200
-Branch: REL9_6_STABLE [830e8e360] 2018-05-18 17:53:15 +0200
-Branch: REL9_5_STABLE [714d8e5fa] 2018-05-18 17:53:17 +0200
-Branch: REL9_4_STABLE [b5f096d50] 2018-05-18 17:53:19 +0200
-Branch: REL9_3_STABLE [048caa556] 2018-05-18 17:53:20 +0200
--->
- <para>
- Fix various error-handling code paths in which an incorrect error code
- might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [dddfc4cb2] 2018-04-03 16:26:05 -0400
-Branch: REL_10_STABLE [c74f48a4e] 2018-07-09 17:23:31 -0400
-Branch: REL9_6_STABLE [ccc286da1] 2018-07-09 17:23:31 -0400
-Branch: REL9_5_STABLE [6532ca57a] 2018-07-09 17:23:31 -0400
-Branch: REL9_4_STABLE [dd4e83674] 2018-07-09 17:23:32 -0400
-Branch: REL9_3_STABLE [f6f75539d] 2018-07-09 17:23:32 -0400
--->
- <para>
- Rearrange makefiles to ensure that programs link to freshly-built
- libraries (such as <filename>libpq.so</filename>) rather than ones
- that might exist in the system library directories (Tom Lane)
- </para>
-
- <para>
- This avoids problems when building on platforms that supply old copies
- of <productname>PostgreSQL</productname> libraries.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [234bb985c] 2018-05-09 13:56:22 -0400
-Branch: REL_10_STABLE [aba2f5522] 2018-05-09 13:55:42 -0400
-Branch: REL9_6_STABLE [22e524d97] 2018-05-09 13:55:48 -0400
-Branch: REL9_5_STABLE [777918e34] 2018-05-09 13:55:54 -0400
-Branch: REL9_4_STABLE [32453bc5a] 2018-05-09 13:56:00 -0400
-Branch: REL9_3_STABLE [3f36e4fc5] 2018-05-09 13:56:06 -0400
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018e for DST law changes in North Korea, plus historical
- corrections for Czechoslovakia.
- </para>
-
- <para>
- This update includes a redefinition of <quote>daylight savings</quote>
- in Ireland, as well as for some past years in Namibia and
- Czechoslovakia. In those jurisdictions, legally standard time is
- observed in summer, and daylight savings time in winter, so that the
- daylight savings offset is one hour behind standard time not one hour
- ahead. This does not affect either the actual UTC offset or the
- timezone abbreviations in use; the only known effect is that
- the <structfield>is_dst</structfield> column in
- the <structname>pg_timezone_names</structname> view will now be true
- in winter and false in summer in these cases.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-4">
- <title>Release 10.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-05-10</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.3.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.4</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you use the <filename>adminpack</filename> extension,
- you should update it as per the first changelog entry below.
- </para>
-
- <para>
- Also, if the function marking mistakes mentioned in the second and
- third changelog entries below affect you, you will want to take steps
- to correct your database catalogs.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.3,
- see <xref linkend="release-10-3"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [7b347409f] 2018-05-07 10:10:33 -0400
-Branch: REL_10_STABLE [20f01fc45] 2018-05-07 10:10:41 -0400
-Branch: REL9_6_STABLE [53b79ab4f] 2018-05-07 10:10:45 -0400
--->
- <para>
- Remove public execute privilege
- from <filename>contrib/adminpack</filename>'s
- <function>pg_logfile_rotate()</function> function (Stephen Frost)
- </para>
-
- <para>
- <function>pg_logfile_rotate()</function> is a deprecated wrapper
- for the core function <function>pg_rotate_logfile()</function>.
- When that function was changed to rely on SQL privileges for access
- control rather than a hard-coded superuser
- check, <function>pg_logfile_rotate()</function> should have been
- updated as well, but the need for this was missed. Hence,
- if <filename>adminpack</filename> is installed, any user could
- request a logfile rotation, creating a minor security issue.
- </para>
-
- <para>
- After installing this update, administrators should
- update <filename>adminpack</filename> by performing
- <literal>ALTER EXTENSION adminpack UPDATE</literal> in each
- database in which <filename>adminpack</filename> is installed.
- (CVE-2018-1115)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [11002f8af] 2018-03-30 18:14:51 -0400
-Branch: REL_10_STABLE [283262cd9] 2018-03-30 18:14:51 -0400
-Branch: REL9_6_STABLE [91d82317d] 2018-03-30 18:14:51 -0400
-Branch: REL9_5_STABLE [ea83c7e66] 2018-03-30 18:14:51 -0400
-Branch: REL9_4_STABLE [b7537ffb1] 2018-03-30 18:14:51 -0400
-Branch: REL9_3_STABLE [485857d44] 2018-03-30 18:14:51 -0400
--->
- <para>
- Fix incorrect volatility markings on a few built-in functions
- (Thomas Munro, Tom Lane)
- </para>
-
- <para>
- The functions
- <function>query_to_xml</function>,
- <function>cursor_to_xml</function>,
- <function>cursor_to_xmlschema</function>,
- <function>query_to_xmlschema</function>, and
- <function>query_to_xml_and_xmlschema</function>
- should be marked volatile because they execute user-supplied queries
- that might contain volatile operations. They were not, leading to a
- risk of incorrect query optimization. This has been repaired for new
- installations by correcting the initial catalog data, but existing
- installations will continue to contain the incorrect markings.
- Practical use of these functions seems to pose little hazard, but in
- case of trouble, it can be fixed by manually updating these
- functions' <structname>pg_proc</structname> entries, for example
- <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean,
- boolean, text) VOLATILE</literal>. (Note that that will need to be
- done in each database of the installation.) Another option is
- to <application>pg_upgrade</application> the database to a version
- containing the corrected initial data.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [11002f8af] 2018-03-30 18:14:51 -0400
-Branch: REL_10_STABLE [283262cd9] 2018-03-30 18:14:51 -0400
-Branch: REL9_6_STABLE [91d82317d] 2018-03-30 18:14:51 -0400
--->
- <para>
- Fix incorrect parallel-safety markings on a few built-in functions
- (Thomas Munro, Tom Lane)
- </para>
-
- <para>
- The functions
- <function>brin_summarize_new_values</function>,
- <function>brin_summarize_range</function>,
- <function>brin_desummarize_range</function>,
- <function>gin_clean_pending_list</function>,
- <function>cursor_to_xml</function>,
- <function>cursor_to_xmlschema</function>,
- <function>ts_rewrite</function>,
- <function>ts_stat</function>,
- <function>binary_upgrade_create_empty_extension</function>, and
- <function>pg_import_system_collations</function>
- should be marked parallel-unsafe; some because they perform database
- modifications directly, and others because they execute user-supplied
- queries that might do so. They were marked parallel-restricted
- instead, leading to a risk of unexpected query errors. This has been
- repaired for new installations by correcting the initial catalog
- data, but existing installations will continue to contain the
- incorrect markings. Practical use of these functions seems to pose
- little hazard unless <varname>force_parallel_mode</varname> is turned
- on. In case of trouble, it can be fixed by manually updating these
- functions' <structname>pg_proc</structname> entries, for example
- <literal>ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass)
- PARALLEL UNSAFE</literal>. (Note that that will need to be done in
- each database of the installation.) Another option is
- to <application>pg_upgrade</application> the database to a version
- containing the corrected initial data.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0408e1ed5] 2018-04-11 17:41:22 -0400
-Branch: REL_10_STABLE [5a11bf970] 2018-04-11 17:41:23 -0400
-Branch: REL9_6_STABLE [8bba10f7e] 2018-04-11 17:41:25 -0400
-Branch: REL9_5_STABLE [3767216fb] 2018-04-11 17:41:26 -0400
-Branch: REL9_4_STABLE [5b3ed6b78] 2018-04-11 17:41:27 -0400
-Branch: REL9_3_STABLE [7448e7e23] 2018-04-11 17:41:28 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d1e907929] 2018-04-11 18:11:29 -0400
-Branch: REL_10_STABLE [08e6cda1c] 2018-04-11 18:11:29 -0400
-Branch: REL9_6_STABLE [060bb38d0] 2018-04-11 18:11:30 -0400
-Branch: REL9_5_STABLE [efbe36a2c] 2018-04-11 18:11:30 -0400
-Branch: REL9_4_STABLE [6943fb927] 2018-04-11 18:11:30 -0400
-Branch: REL9_3_STABLE [66d4b6bb8] 2018-04-11 18:11:30 -0400
--->
- <para>
- Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed
- TOAST entries (Pavan Deolasee)
- </para>
-
- <para>
- Once the OID counter has wrapped around, it's possible to assign a
- TOAST value whose OID matches a previously deleted entry in the same
- TOAST table. If that entry were not yet vacuumed away, this resulted
- in <quote>unexpected chunk number 0 (expected 1) for toast
- value <replaceable>nnnnn</replaceable></quote> errors, which would
- persist until the dead entry was removed
- by <command>VACUUM</command>. Fix by not selecting such OIDs when
- creating a new TOAST entry.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [cfbecf810] 2018-04-06 11:42:28 -0400
-Branch: REL_10_STABLE [29ab1e24a] 2018-04-06 11:52:38 -0400
--->
- <para>
- Correctly enforce any <literal>CHECK</literal> constraints on
- individual partitions during <command>COPY</command> to a partitioned
- table (Etsuro Fujita)
- </para>
-
- <para>
- Previously, only constraints declared for the partitioned table as a
- whole were checked.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [4df58f7ed] 2018-04-23 15:29:11 -0400
-Branch: REL_10_STABLE [1222db999] 2018-04-23 15:29:12 -0400
--->
- <para>
- Accept <literal>TRUE</literal> and <literal>FALSE</literal> as
- partition bound values (Amit Langote)
- </para>
-
- <para>
- Previously, only string-literal values were accepted for a boolean
- partitioning column. But then <application>pg_dump</application>
- would print such values as <literal>TRUE</literal>
- or <literal>FALSE</literal>, leading to dump/reload failures.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [a4d56f583] 2018-04-12 15:08:10 -0300
-Branch: REL_10_STABLE [5f11c6ec6] 2018-04-12 15:08:25 -0300
--->
- <para>
- Fix memory management for partition key comparison functions
- (Álvaro Herrera, Amit Langote)
- </para>
-
- <para>
- This error could lead to crashes when using user-defined operator
- classes for partition keys.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [6666ee49f] 2018-03-19 17:45:53 -0300
-Branch: REL_10_STABLE [e3faddf53] 2018-03-19 17:43:55 -0300
--->
- <para>
- Fix possible crash when a query inserts tuples in several partitions
- of a partitioned table, and those partitions don't have identical row
- types (Etsuro Fujita, Amit Langote)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d04900de7] 2018-03-13 13:24:27 -0400
-Branch: REL_10_STABLE [1bfb56723] 2018-03-13 13:24:27 -0400
-Branch: REL9_6_STABLE [c2c4bc628] 2018-03-13 13:24:27 -0400
-Branch: REL9_5_STABLE [c9414e786] 2018-03-13 13:24:27 -0400
-Branch: REL9_4_STABLE [25a2ba35e] 2018-03-13 13:24:27 -0400
-Branch: REL9_3_STABLE [d44ce7b1a] 2018-03-13 13:24:27 -0400
--->
- <para>
- Change <command>ANALYZE</command>'s algorithm for updating
- <structname>pg_class</structname>.<structfield>reltuples</structfield>
- (David Gould)
- </para>
-
- <para>
- Previously, pages not actually scanned by <command>ANALYZE</command>
- were assumed to retain their old tuple density. In a large table
- where <command>ANALYZE</command> samples only a small fraction of the
- pages, this meant that the overall tuple density estimate could not
- change very much, so that <structfield>reltuples</structfield> would
- change nearly proportionally to changes in the table's physical size
- (<structfield>relpages</structfield>) regardless of what was actually
- happening in the table. This has been observed to result
- in <structfield>reltuples</structfield> becoming so much larger than
- reality as to effectively shut off autovacuuming. To fix, assume
- that <command>ANALYZE</command>'s sample is a statistically unbiased
- sample of the table (as it should be), and just extrapolate the
- density observed within those pages to the whole table.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [5564c1181] 2018-03-05 19:37:19 -0300
-Branch: REL_10_STABLE [911e6236b] 2018-03-05 19:37:19 -0300
--->
- <para>
- Include extended-statistics objects in the set of table properties
- duplicated by <command>CREATE TABLE ... LIKE ... INCLUDING
- ALL</command> (David Rowley)
- </para>
-
- <para>
- Also add an <literal>INCLUDING STATISTICS</literal> option, to allow
- finer-grained control over whether this happens.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [377b5ac48] 2018-03-13 09:41:30 -0400
-Branch: REL_10_STABLE [c32f44c4a] 2018-03-13 09:41:36 -0400
--->
- <para>
- Fix <command>CREATE TABLE ... LIKE</command> with <type>bigint</type>
- identity columns (Peter Eisentraut)
- </para>
-
- <para>
- On platforms where <type>long</type> is 32 bits (which includes
- 64-bit Windows as well as most 32-bit machines), copied sequence
- parameters would be truncated to 32 bits.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1dec82068] 2018-04-18 12:07:37 -0400
-Branch: REL_10_STABLE [94a898f69] 2018-04-18 12:07:37 -0400
-Branch: REL9_6_STABLE [69e3a548e] 2018-04-18 12:07:37 -0400
-Branch: REL9_5_STABLE [82acf3eb7] 2018-04-18 12:07:38 -0400
-Branch: REL9_4_STABLE [7490ce725] 2018-04-18 12:07:38 -0400
--->
- <para>
- Avoid deadlocks in concurrent <command>CREATE INDEX
- CONCURRENTLY</command> commands that are run
- under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE
- READ</literal> transaction isolation (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6fbd5cce2] 2018-03-19 17:23:21 -0400
-Branch: REL_10_STABLE [1568156d8] 2018-03-19 17:23:23 -0400
-Branch: REL9_6_STABLE [ebcf34d46] 2018-03-19 17:23:07 -0400
-Branch: REL9_5_STABLE [c553e4a50] 2018-03-19 17:23:07 -0400
-Branch: REL9_4_STABLE [b6ba94ec4] 2018-03-19 17:23:07 -0400
--->
- <para>
- Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8f5ac4404] 2018-03-17 14:59:49 -0400
-Branch: REL_10_STABLE [ee7bf0fd9] 2018-03-17 14:59:31 -0400
-Branch: REL9_6_STABLE [12d18b487] 2018-03-17 14:59:31 -0400
-Branch: REL9_5_STABLE [7de7ddb27] 2018-03-17 14:59:31 -0400
-Branch: REL9_4_STABLE [0a0721f84] 2018-03-17 14:59:31 -0400
-Branch: REL9_3_STABLE [5b77c11da] 2018-03-17 14:59:31 -0400
--->
- <para>
- Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail
- when the referenced cursor uses an index-only-scan plan (Yugo Nagata,
- Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e5d83995e] 2018-04-19 15:49:30 -0400
-Branch: REL_10_STABLE [68fab04f7] 2018-04-19 15:49:12 -0400
-Branch: REL9_6_STABLE [0c141fcaa] 2018-04-19 15:49:12 -0400
-Branch: REL9_5_STABLE [e4e43a16b] 2018-04-19 15:49:12 -0400
-Branch: REL9_4_STABLE [a347d5210] 2018-04-19 15:49:12 -0400
-Branch: REL9_3_STABLE [e1d4398c0] 2018-04-19 15:49:12 -0400
-Branch: REL9_6_STABLE [306d6e59f] 2018-04-19 18:29:39 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c792c7db4] 2018-04-20 15:19:16 -0400
-Branch: REL_10_STABLE [8b6294c7a] 2018-04-20 15:19:16 -0400
-Branch: REL9_6_STABLE [64ad85860] 2018-04-20 15:19:17 -0400
-Branch: REL9_5_STABLE [80e12a621] 2018-04-20 15:19:17 -0400
-Branch: REL9_4_STABLE [58fec9526] 2018-04-20 15:19:17 -0400
-Branch: REL9_3_STABLE [9680c120e] 2018-04-20 15:19:17 -0400
--->
- <para>
- Fix incorrect planning of join clauses pushed into parameterized
- paths (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This error could result in misclassifying a condition as
- a <quote>join filter</quote> for an outer join when it should be a
- plain <quote>filter</quote> condition, leading to incorrect join
- output.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b5febc1d1] 2018-03-01 15:35:03 -0500
-Branch: REL_10_STABLE [147b59971] 2018-03-01 15:35:03 -0500
-Branch: REL9_6_STABLE [3f26be83e] 2018-03-01 15:35:03 -0500
-Branch: REL9_5_STABLE [be55bfc93] 2018-03-01 15:35:03 -0500
--->
- <para>
- Fix possibly incorrect generation of an index-only-scan plan when the
- same table column appears in multiple index columns, and only some of
- those index columns use operator classes that can return the column
- value (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [4a4e2442a] 2018-03-11 18:10:42 -0400
-Branch: REL_10_STABLE [e2ed3c4a3] 2018-03-11 18:10:42 -0400
-Branch: REL9_6_STABLE [976e5844e] 2018-03-11 18:10:42 -0400
-Branch: REL9_5_STABLE [106d58805] 2018-03-11 18:10:42 -0400
-Branch: REL9_4_STABLE [e556fb137] 2018-03-11 18:10:42 -0400
-Branch: REL9_3_STABLE [925581d89] 2018-03-11 18:10:43 -0400
--->
- <para>
- Fix misoptimization of <literal>CHECK</literal> constraints having
- provably-NULL subclauses of
- top-level <literal>AND</literal>/<literal>OR</literal> conditions
- (Tom Lane, Dean Rasheed)
- </para>
-
- <para>
- This could, for example, allow constraint exclusion to exclude a
- child table that should not be excluded from a query.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [d2d79887e] 2018-03-21 11:39:28 +0000
-Branch: REL_10_STABLE [cf21c4649] 2018-03-21 11:41:53 +0000
--->
- <para>
- Prevent planner crash when a query has multiple <literal>GROUPING
- SETS</literal>, none of which can be implemented by sorting (Andrew
- Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c2d4eb1b1] 2018-03-28 13:26:57 -0400
-Branch: REL_10_STABLE [c98f218fb] 2018-03-28 13:26:43 -0400
-Branch: REL9_6_STABLE [90decdba3] 2018-03-28 13:26:43 -0400
-Branch: REL9_5_STABLE [e4ff71158] 2018-03-28 13:26:43 -0400
--->
- <para>
- Fix executor crash due to double free in some <literal>GROUPING
- SETS</literal> usages (Peter Geoghegan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e98a4de7d] 2018-02-27 15:56:51 -0500
-Branch: REL_10_STABLE [b9dac4a6e] 2018-02-27 15:56:51 -0500
--->
- <para>
- Fix misexecution of self-joins on transition tables (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b1b71f165] 2018-04-20 17:15:31 -0400
-Branch: REL_10_STABLE [fab4ecacc] 2018-04-20 17:15:31 -0400
-Branch: REL9_6_STABLE [c76d0eed2] 2018-04-20 17:15:31 -0400
-Branch: REL9_5_STABLE [168df1b84] 2018-04-20 17:15:31 -0400
--->
- <para>
- Avoid crash if a table rewrite event trigger is added concurrently
- with a command that could call such a trigger (Álvaro Herrera,
- Andrew Gierth, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [8f9be261f] 2018-05-03 20:08:29 +0300
-Branch: REL_10_STABLE [ee492e3de] 2018-05-03 20:09:02 +0300
-Branch: REL9_6_STABLE [d9b3bc552] 2018-05-03 20:09:28 +0300
-Branch: REL9_5_STABLE [d3fc427f4] 2018-05-03 20:09:47 +0300
-Branch: REL9_4_STABLE [6bd659f19] 2018-05-03 20:10:11 +0300
-Branch: REL9_3_STABLE [540e7a6e5] 2018-05-03 20:10:34 +0300
--->
- <para>
- Avoid failure if a query-cancel or session-termination interrupt
- occurs while committing a prepared transaction (Stas Kelvich)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9e17bdb8a] 2018-03-16 16:03:45 -0400
-Branch: REL_10_STABLE [bdc7f686d] 2018-03-16 16:03:45 -0400
-Branch: REL9_6_STABLE [5149dc934] 2018-03-16 16:03:45 -0400
-Branch: REL9_5_STABLE [c17a58967] 2018-03-16 16:03:45 -0400
-Branch: REL9_4_STABLE [2709549ec] 2018-03-16 16:03:45 -0400
-Branch: REL9_3_STABLE [574386ddc] 2018-03-16 16:03:45 -0400
--->
- <para>
- Fix query-lifespan memory leakage in repeatedly executed hash joins
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0b1d1a038] 2018-03-02 17:40:48 -0500
-Branch: REL_10_STABLE [76ec45756] 2018-03-02 17:40:48 -0500
-Branch: REL9_6_STABLE [96d2df840] 2018-03-02 17:40:48 -0500
--->
- <para>
- Fix possible leak or double free of visibility map buffer pins
- (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [d2599ecfc] 2018-05-04 18:24:45 -0300
-Branch: REL_10_STABLE [e1d634758] 2018-05-04 18:23:58 -0300
-Branch: REL9_6_STABLE [3a11485a5] 2018-05-04 18:23:30 -0300
--->
- <para>
- Avoid spuriously marking pages as all-visible (Dan Wood,
- Pavan Deolasee, Álvaro Herrera)
- </para>
-
- <para>
- This could happen if some tuples were locked (but not deleted). While
- queries would still function correctly, vacuum would normally ignore
- such pages, with the long-term effect that the tuples were never
- frozen. In recent releases this would eventually result in errors
- such as <quote>found multixact <replaceable>nnnnn</replaceable> from
- before relminmxid <replaceable>nnnnn</replaceable></quote>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [477ad05e1] 2018-03-01 18:07:46 -0300
-Branch: REL_10_STABLE [aad956ada] 2018-03-01 18:07:46 -0300
-Branch: REL9_6_STABLE [0ddaaa4cf] 2018-03-01 18:07:46 -0300
-Branch: REL9_5_STABLE [491bbc36e] 2018-03-01 18:07:46 -0300
-Branch: REL9_4_STABLE [3ee23834e] 2018-03-01 18:07:46 -0300
-Branch: REL9_3_STABLE [650f3863f] 2018-03-01 18:07:46 -0300
--->
- <para>
- Fix overly strict sanity check
- in <function>heap_prepare_freeze_tuple</function>
- (Álvaro Herrera)
- </para>
-
- <para>
- This could result in incorrect <quote>cannot freeze committed
- xmax</quote> failures in databases that have
- been <application>pg_upgrade</application>'d from 9.2 or earlier.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [25b692568] 2018-02-27 13:28:02 -0500
-Branch: REL_10_STABLE [b45f821e2] 2018-02-27 13:27:38 -0500
-Branch: REL9_6_STABLE [06f47297e] 2018-02-27 13:27:38 -0500
-Branch: REL9_5_STABLE [2ee44e10d] 2018-02-27 13:27:38 -0500
-Branch: REL9_4_STABLE [5ccb77586] 2018-02-27 13:27:38 -0500
-Branch: REL9_3_STABLE [9bc33ef5e] 2018-02-27 13:27:38 -0500
--->
- <para>
- Prevent dangling-pointer dereference when a C-coded before-update row
- trigger returns the <quote>old</quote> tuple (Rushabh Lathia)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [38f7831d7] 2018-03-13 12:28:35 -0400
-Branch: REL_10_STABLE [4460964ae] 2018-03-13 12:28:36 -0400
-Branch: REL9_6_STABLE [4b0e71705] 2018-03-13 12:28:37 -0400
-Branch: REL9_5_STABLE [231329a17] 2018-03-13 12:28:38 -0400
-Branch: REL9_4_STABLE [95f08d32d] 2018-03-13 12:28:39 -0400
-Branch: REL9_3_STABLE [5328b6135] 2018-03-13 12:28:40 -0400
--->
- <para>
- Reduce locking during autovacuum worker scheduling (Jeff Janes)
- </para>
-
- <para>
- The previous behavior caused drastic loss of potential worker
- concurrency in databases with many tables.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [a820b4c32] 2018-04-11 23:39:48 +0300
-Branch: REL_10_STABLE [89c2ab340] 2018-04-11 23:40:03 +0300
-Branch: REL9_6_STABLE [74dc05e01] 2018-04-11 23:40:13 +0300
-Branch: REL9_5_STABLE [fd2efda5d] 2018-04-11 23:40:19 +0300
-Branch: REL9_4_STABLE [310d1379d] 2018-04-11 23:40:27 +0300
-Branch: REL9_3_STABLE [dfc383cf3] 2018-04-11 23:40:31 +0300
--->
- <para>
- Ensure client hostname is copied while copying
- <structname>pg_stat_activity</structname> data to local memory
- (Edmund Horner)
- </para>
-
- <para>
- Previously the supposedly-local snapshot contained a pointer into
- shared memory, allowing the client hostname column to change
- unexpectedly if any existing session disconnected.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [811969b21] 2018-04-11 23:39:49 +0300
-Branch: REL_10_STABLE [93b3d43dc] 2018-04-11 23:52:11 +0300
--->
- <para>
- Handle <structname>pg_stat_activity</structname> information for
- auxiliary processes correctly (Edmund Horner)
- </para>
-
- <para>
- The <structfield>application_name</structfield>,
- <structfield>client_hostname</structfield>,
- and <structfield>query</structfield> fields might show incorrect
- data for such processes.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [65a69dfa0] 2018-04-12 18:39:51 -0400
-Branch: REL_10_STABLE [40132187e] 2018-04-12 18:39:51 -0400
-Branch: REL9_6_STABLE [0f439c8dd] 2018-04-12 18:39:51 -0400
-Branch: REL9_5_STABLE [906e44d4d] 2018-04-12 18:39:51 -0400
-Branch: REL9_4_STABLE [f71d803c8] 2018-04-12 18:39:51 -0400
-Branch: REL9_3_STABLE [ac8ea0f27] 2018-04-12 18:39:52 -0400
--->
- <para>
- Fix incorrect processing of multiple compound affixes
- in <literal>ispell</literal> dictionaries (Arthur Zakirov)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b15e8f71d] 2018-04-16 16:06:58 -0400
-Branch: REL_10_STABLE [3397c6727] 2018-04-16 16:06:47 -0400
-Branch: REL9_6_STABLE [d90b2904c] 2018-04-16 16:06:47 -0400
-Branch: REL9_5_STABLE [93053aca5] 2018-04-16 16:06:47 -0400
-Branch: REL9_4_STABLE [608d1f971] 2018-04-16 16:06:47 -0400
-Branch: REL9_3_STABLE [cf73a5b34] 2018-04-16 16:06:47 -0400
--->
- <para>
- Fix collation-aware searches (that is, indexscans using inequality
- operators) in SP-GiST indexes on text columns (Tom Lane)
- </para>
-
- <para>
- Such searches would return the wrong set of rows in most non-C
- locales.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [467963c3e] 2018-03-19 23:59:30 -0400
-Branch: REL_10_STABLE [d18a88acf] 2018-03-19 23:59:17 -0400
-Branch: REL9_6_STABLE [57ef2da43] 2018-03-19 23:59:17 -0400
--->
- <para>
- Prevent query-lifespan memory leakage with SP-GiST operator classes
- that use traversal values (Anton Dignös)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [649f17925] 2018-03-22 13:24:05 -0400
-Branch: REL_10_STABLE [bf14575c8] 2018-03-22 13:23:48 -0400
-Branch: REL9_6_STABLE [db35bf507] 2018-03-22 13:23:48 -0400
-Branch: REL9_5_STABLE [eee190da7] 2018-03-22 13:23:48 -0400
-Branch: REL9_4_STABLE [7f6f8ccd9] 2018-03-22 13:23:48 -0400
-Branch: REL9_3_STABLE [46f80803a] 2018-03-22 13:23:48 -0400
--->
- <para>
- Count the number of index tuples correctly during initial build of an
- SP-GiST index (Tomas Vondra)
- </para>
-
- <para>
- Previously, the tuple count was reported to be the same as that of
- the underlying table, which is wrong if the index is partial.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [81b9b5ce4] 2018-03-02 11:22:42 -0500
-Branch: REL_10_STABLE [ccd650430] 2018-03-02 11:22:42 -0500
-Branch: REL9_6_STABLE [529137cac] 2018-03-02 11:22:42 -0500
-Branch: REL9_5_STABLE [46d98da43] 2018-03-02 11:22:42 -0500
-Branch: REL9_4_STABLE [947f06c62] 2018-03-02 11:22:42 -0500
-Branch: REL9_3_STABLE [6b56f0752] 2018-03-02 11:22:42 -0500
--->
- <para>
- Count the number of index tuples correctly during vacuuming of a
- GiST index (Andrey Borodin)
- </para>
-
- <para>
- Previously it reported the estimated number of heap tuples,
- which might be inaccurate, and is certainly wrong if the
- index is partial.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [066871980] 2018-05-05 01:34:53 +0300
-Branch: REL_10_STABLE [ca572db22] 2018-05-05 01:35:09 +0300
-Branch: REL9_6_STABLE [7b7521d65] 2018-05-05 01:35:12 +0300
-Branch: REL9_5_STABLE [4ea8f7d45] 2018-05-05 01:35:15 +0300
-Branch: REL9_4_STABLE [c06380e97] 2018-05-05 01:35:18 +0300
--->
- <para>
- Fix a corner case where a streaming standby gets stuck at a WAL
- continuation record (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [8aa75e138] 2018-03-06 18:34:29 -0300
-Branch: REL_10_STABLE [cee1dd1ee] 2018-03-06 16:20:54 -0300
-Branch: REL9_6_STABLE [8e5c2afa9] 2018-03-06 16:20:13 -0300
-Branch: REL9_5_STABLE [d4429d50a] 2018-03-06 16:20:03 -0300
-Branch: REL9_4_STABLE [6d30e3a2b] 2018-03-06 16:10:23 -0300
--->
- <para>
- In logical decoding, avoid possible double processing of WAL data
- when a walsender restarts (Craig Ringer)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [24c0a6c64] 2018-03-14 21:34:26 -0300
-Branch: REL_10_STABLE [3c3450e74] 2018-03-14 21:34:21 -0300
--->
- <para>
- Fix logical replication to not assume that type OIDs match between
- the local and remote servers (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [58d9acc18] 2018-03-03 20:31:35 -0500
-Branch: REL_10_STABLE [bfade0e51] 2018-03-03 20:31:35 -0500
-Branch: REL9_6_STABLE [e2108f581] 2018-03-03 20:31:35 -0500
-Branch: REL9_5_STABLE [ad3e3d731] 2018-03-03 20:31:35 -0500
-Branch: REL9_4_STABLE [165fa27fe] 2018-03-03 20:31:35 -0500
-Branch: REL9_3_STABLE [0bea99bd9] 2018-03-03 20:31:35 -0500
--->
- <para>
- Allow <function>scalarltsel</function>
- and <function>scalargtsel</function> to be used on non-core datatypes
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d25c2ee9c] 2018-04-13 12:53:45 -0400
-Branch: REL_10_STABLE [d014b38df] 2018-04-13 12:53:45 -0400
-Branch: REL9_6_STABLE [131f6a958] 2018-04-13 12:53:46 -0400
-Branch: REL9_5_STABLE [2278e94ae] 2018-04-13 12:53:46 -0400
-Branch: REL9_4_STABLE [3dd36aa4b] 2018-04-13 12:53:46 -0400
-Branch: REL9_3_STABLE [bbec33c2d] 2018-04-13 12:53:46 -0400
--->
- <para>
- Reduce <application>libpq</application>'s memory consumption when a
- server error is reported after a large amount of query output has
- been collected (Tom Lane)
- </para>
-
- <para>
- Discard the previous output before, not after, processing the error
- message. On some platforms, notably Linux, this can make a
- difference in the application's subsequent memory footprint.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [b32fad52e] 2018-03-13 16:22:28 +0100
-Branch: REL_10_STABLE [fe65f5931] 2018-03-13 16:23:25 +0100
-Branch: REL9_6_STABLE [44a36a8d9] 2018-03-12 23:53:39 +0100
-Branch: REL9_5_STABLE [95f026021] 2018-03-12 23:53:46 +0100
-Branch: REL9_4_STABLE [bd7eb6fe6] 2018-03-12 23:54:22 +0100
-Branch: REL9_3_STABLE [042badc37] 2018-03-12 23:54:29 +0100
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [db2fc801f] 2018-03-14 00:51:17 +0100
-Branch: REL_10_STABLE [8559b40c5] 2018-03-14 00:50:39 +0100
-Branch: REL9_6_STABLE [8e3f3ab5b] 2018-03-14 00:51:58 +0100
-Branch: REL9_5_STABLE [837d4f739] 2018-03-14 00:52:11 +0100
-Branch: REL9_4_STABLE [fcc15bf38] 2018-03-14 00:52:21 +0100
-Branch: REL9_3_STABLE [09f4ca92b] 2018-03-14 00:52:45 +0100
--->
- <para>
- Fix double-free crashes in <application>ecpg</application>
- (Patrick Krecker, Jeevan Ladhe)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [51057feaa] 2018-02-27 16:46:52 -0500
-Branch: REL_10_STABLE [fda3e6578] 2018-02-27 16:46:52 -0500
-Branch: REL9_6_STABLE [7ee8005ce] 2018-02-27 16:46:52 -0500
-Branch: REL9_5_STABLE [f171cbe0d] 2018-02-27 16:46:52 -0500
-Branch: REL9_4_STABLE [49f9014c8] 2018-02-27 16:46:52 -0500
-Branch: REL9_3_STABLE [87b7e1e88] 2018-02-27 16:46:52 -0500
--->
- <para>
- Fix <application>ecpg</application> to handle <type>long long
- int</type> variables correctly in MSVC builds (Michael Meskes,
- Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [742869946] 2018-03-21 20:03:28 -0400
-Branch: REL_10_STABLE [66e92878a] 2018-03-21 20:03:28 -0400
-Branch: REL9_6_STABLE [8132f0f38] 2018-03-21 20:03:28 -0400
-Branch: REL9_5_STABLE [a35d72923] 2018-03-21 20:03:28 -0400
-Branch: REL9_4_STABLE [67e02cde7] 2018-03-21 20:03:28 -0400
-Branch: REL9_3_STABLE [be677bb5a] 2018-03-21 20:03:29 -0400
--->
- <para>
- Fix mis-quoting of values for list-valued GUC variables in dumps
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- The <varname>local_preload_libraries</varname>,
- <varname>session_preload_libraries</varname>,
- <varname>shared_preload_libraries</varname>,
- and <varname>temp_tablespaces</varname> variables were not correctly
- quoted in <application>pg_dump</application> output. This would
- cause problems if settings for these variables appeared in
- <command>CREATE FUNCTION ... SET</command> or <command>ALTER
- DATABASE/ROLE ... SET</command> clauses.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [8d2814f27] 2018-03-18 13:08:25 +0100
-Branch: REL_10_STABLE [e7d3a37d9] 2018-03-18 13:11:27 +0100
-Branch: REL9_6_STABLE [59743deca] 2018-03-18 13:11:40 +0100
-Branch: REL9_5_STABLE [24ff0fe87] 2018-03-18 13:11:49 +0100
-Branch: REL9_4_STABLE [af5fbb128] 2018-03-18 13:11:58 +0100
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [6336b6dfc] 2018-04-25 18:50:29 -0700
-Branch: REL_10_STABLE [c7cc9b7d4] 2018-04-25 18:50:32 -0700
-Branch: REL9_6_STABLE [32c247629] 2018-04-25 18:50:33 -0700
-Branch: REL9_5_STABLE [24f1e9ca0] 2018-04-25 18:50:33 -0700
-Branch: REL9_4_STABLE [bb532859f] 2018-04-25 18:50:34 -0700
--->
- <para>
- Fix <application>pg_recvlogical</application> to not fail against
- pre-v10 <productname>PostgreSQL</productname> servers
- (Michael Paquier)
- </para>
-
- <para>
- A previous fix caused <application>pg_recvlogical</application> to
- issue a command regardless of server version, but it should only be
- issued to v10 and later servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [09e96b3f3] 2018-03-29 04:00:21 +0900
-Branch: REL_10_STABLE [f1e07d576] 2018-03-29 04:01:43 +0900
-Branch: REL9_6_STABLE [52c32d8d8] 2018-03-29 04:02:08 +0900
-Branch: REL9_5_STABLE [b33e38cb1] 2018-03-29 04:02:34 +0900
--->
- <para>
- Ensure that <application>pg_rewind</application> deletes files on the
- target server if they are deleted from the source server during the
- run (Takayuki Tsunakawa)
- </para>
-
- <para>
- Failure to do this could result in data inconsistency on the target,
- particularly if the file in question is a WAL segment.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [2f3e2340c] 2018-03-06 02:08:18 +0900
-Branch: REL_10_STABLE [bca696ab0] 2018-03-06 02:09:12 +0900
-Branch: REL9_6_STABLE [7aba4f23f] 2018-03-06 02:10:41 +0900
-Branch: REL9_5_STABLE [cb5c141ed] 2018-03-06 02:12:06 +0900
--->
- <para>
- Fix <application>pg_rewind</application> to handle tables in
- non-default tablespaces correctly (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2dbee9f19] 2018-03-17 15:38:15 -0400
-Branch: REL_10_STABLE [04c76acab] 2018-03-17 15:38:15 -0400
-Branch: REL9_6_STABLE [5917297bf] 2018-03-17 15:38:15 -0400
-Branch: REL9_5_STABLE [b3fade55c] 2018-03-17 15:38:15 -0400
-Branch: REL9_4_STABLE [092401b14] 2018-03-17 15:38:15 -0400
-Branch: REL9_3_STABLE [f1f7a85d8] 2018-03-17 15:38:15 -0400
--->
- <para>
- Fix overflow handling in <application>PL/pgSQL</application>
- integer <command>FOR</command> loops (Tom Lane)
- </para>
-
- <para>
- The previous coding failed to detect overflow of the loop variable
- on some non-gcc compilers, leading to an infinite loop.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [fa03769e4] 2018-05-03 13:13:09 -0400
-Branch: master [7d8679975] 2018-05-03 20:29:54 -0400
-Branch: REL_10_STABLE [8f1787a8f] 2018-05-05 23:03:44 -0400
-Branch: REL9_6_STABLE [ab7825ead] 2018-05-05 23:34:41 -0400
-Branch: REL9_5_STABLE [b812d6372] 2018-05-05 23:48:19 -0400
-Branch: REL9_4_STABLE [af9e0d5cd] 2018-05-05 23:53:05 -0400
-Branch: REL9_3_STABLE [e7f904715] 2018-05-05 23:54:04 -0400
--->
- <para>
- Adjust <application>PL/Python</application> regression tests to pass
- under Python 3.7 (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [966268c76] 2018-05-04 15:22:48 -0400
-Branch: REL_10_STABLE [56a45646d] 2018-05-04 15:32:31 -0400
-Branch: REL9_6_STABLE [a9fbf550b] 2018-05-04 15:33:06 -0400
-Branch: REL9_5_STABLE [c1f3638d2] 2018-05-04 15:33:18 -0400
-Branch: REL9_4_STABLE [134db37d2] 2018-05-04 15:51:31 -0400
-Branch: REL9_3_STABLE [af39c1da7] 2018-05-04 15:56:01 -0400
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [2b9bdda74] 2018-05-06 07:37:05 -0400
-Branch: REL_10_STABLE [0e6114be8] 2018-05-06 07:39:05 -0400
-Branch: REL9_6_STABLE [289bafdbc] 2018-05-06 07:39:37 -0400
-Branch: REL9_5_STABLE [3b17d4b9d] 2018-05-06 07:39:51 -0400
-Branch: REL9_4_STABLE [1eb24720c] 2018-05-06 07:40:04 -0400
-Branch: REL9_3_STABLE [a75b01c61] 2018-05-06 07:40:25 -0400
--->
- <para>
- Support testing <application>PL/Python</application> and related
- modules when building with Python 3 and MSVC (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c35b47286] 2018-03-22 13:14:07 -0400
-Branch: REL_10_STABLE [76e2b5ae4] 2018-03-22 13:13:58 -0400
-Branch: REL9_6_STABLE [df9040155] 2018-03-22 13:13:58 -0400
--->
- <para>
- Fix errors in initial build of <filename>contrib/bloom</filename>
- indexes (Tomas Vondra, Tom Lane)
- </para>
-
- <para>
- Fix possible omission of the table's last tuple from the index.
- Count the number of index tuples correctly, in case it is a partial
- index.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [43e949086] 2018-02-28 18:33:45 -0500
-Branch: REL_10_STABLE [aac6286d8] 2018-02-28 18:33:45 -0500
-Branch: REL9_6_STABLE [11e7700e5] 2018-02-28 18:33:45 -0500
-Branch: REL9_5_STABLE [679df2b8d] 2018-02-28 18:33:45 -0500
-Branch: REL9_4_STABLE [d07f79a9c] 2018-02-28 18:33:45 -0500
-Branch: REL9_3_STABLE [10102c91e] 2018-02-28 18:33:45 -0500
--->
- <para>
- Rename internal <function>b64_encode</function>
- and <function>b64_decode</function> functions to avoid conflict with
- Solaris 11.4 built-in functions (Rainer Orth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b45f6613e] 2018-05-04 12:26:25 -0400
-Branch: REL_10_STABLE [b49f4e69a] 2018-05-04 12:26:34 -0400
-Branch: REL9_6_STABLE [7a83323f2] 2018-05-04 12:26:39 -0400
-Branch: REL9_5_STABLE [4e0e9e59b] 2018-05-04 12:26:43 -0400
-Branch: REL9_4_STABLE [2d123b310] 2018-05-04 12:26:48 -0400
-Branch: REL9_3_STABLE [9469ebc71] 2018-05-04 12:26:52 -0400
--->
- <para>
- Sync our copy of the timezone library with IANA tzcode release 2018e
- (Tom Lane)
- </para>
-
- <para>
- This fixes the <application>zic</application> timezone data compiler
- to cope with negative daylight-savings offsets. While
- the <productname>PostgreSQL</productname> project will not
- immediately ship such timezone data, <application>zic</application>
- might be used with timezone data obtained directly from IANA, so it
- seems prudent to update <application>zic</application> now.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [df629586e] 2018-04-29 15:50:08 -0400
-Branch: REL_10_STABLE [783e8f56d] 2018-04-29 15:50:23 -0400
-Branch: REL9_6_STABLE [2acbeea48] 2018-04-29 15:50:31 -0400
-Branch: REL9_5_STABLE [eaed0d230] 2018-04-29 15:50:37 -0400
-Branch: REL9_4_STABLE [37c02b2b0] 2018-04-29 15:50:43 -0400
-Branch: REL9_3_STABLE [adcd0c2be] 2018-04-29 15:50:50 -0400
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018d for DST law changes in Palestine and Antarctica (Casey
- Station), plus historical corrections for Portugal and its colonies,
- as well as Enderbury, Jamaica, Turks & Caicos Islands, and
- Uruguay.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-3">
- <title>Release 10.3</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-03-01</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.2.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.3</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you run an installation in which not all users are mutually
- trusting, or if you maintain an application or extension that is
- intended for use in arbitrary situations, it is strongly recommended
- that you read the documentation changes described in the first changelog
- entry below, and take suitable steps to ensure that your installation or
- code is secure.
- </para>
-
- <para>
- Also, the changes described in the second changelog entry below may
- cause functions used in index expressions or materialized views to fail
- during auto-analyze, or when reloading from a dump. After upgrading,
- monitor the server logs for such problems, and fix affected functions.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.2,
- see <xref linkend="release-10-2"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [5770172cb] 2018-02-26 07:39:44 -0800
-Branch: REL_10_STABLE [ee0d1966e] 2018-02-26 07:39:47 -0800
-Branch: REL9_6_STABLE [70396dbe3] 2018-02-26 07:39:48 -0800
-Branch: REL9_5_STABLE [1f47ea7b8] 2018-02-26 07:39:48 -0800
-Branch: REL9_4_STABLE [f28955e38] 2018-02-26 07:39:48 -0800
-Branch: REL9_3_STABLE [41ee473a4] 2018-02-26 07:39:48 -0800
--->
- <para>
- Document how to configure installations and applications to guard
- against search-path-dependent trojan-horse attacks from other users
- (Noah Misch)
- </para>
-
- <para>
- Using a <varname>search_path</varname> setting that includes any
- schemas writable by a hostile user enables that user to capture
- control of queries and then run arbitrary SQL code with the
- permissions of the attacked user. While it is possible to write
- queries that are proof against such hijacking, it is notationally
- tedious, and it's very easy to overlook holes. Therefore, we now
- recommend configurations in which no untrusted schemas appear in
- one's search path. Relevant documentation appears in
- <xref linkend="ddl-schemas-patterns"/> (for database administrators and users),
- <xref linkend="libpq-connect"/> (for application authors),
- <xref linkend="extend-extensions-style"/> (for extension authors), and
- <xref linkend="sql-createfunction"/> (for authors
- of <literal>SECURITY DEFINER</literal> functions).
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [582edc369] 2018-02-26 07:39:44 -0800
-Branch: REL_10_STABLE [10d598354] 2018-02-26 07:39:47 -0800
-Branch: REL9_6_STABLE [e170b8c8c] 2018-02-26 07:39:48 -0800
-Branch: REL9_5_STABLE [91f3ffc52] 2018-02-26 07:39:48 -0800
-Branch: REL9_4_STABLE [928bca1a3] 2018-02-26 07:39:48 -0800
-Branch: REL9_3_STABLE [3db38b0ce] 2018-02-26 07:39:48 -0800
-Author: Noah Misch <noah@leadboat.com>
-Branch: REL9_4_STABLE [461c32b55] 2018-02-26 07:39:48 -0800
-Branch: REL9_3_STABLE [de8ffd666] 2018-02-26 07:39:48 -0800
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3d2aed664] 2018-02-26 10:18:21 -0500
-Branch: REL_10_STABLE [b8a2908f0] 2018-02-26 10:18:22 -0500
-Branch: REL9_6_STABLE [815172ba8] 2018-02-26 10:18:22 -0500
-Branch: REL9_5_STABLE [a8fc37a63] 2018-02-26 10:18:22 -0500
-Branch: REL9_4_STABLE [9f6e5296a] 2018-02-26 10:18:22 -0500
-Branch: REL9_3_STABLE [fe8b95b7e] 2018-02-26 10:18:22 -0500
--->
- <para>
- Avoid use of insecure <varname>search_path</varname> settings
- in <application>pg_dump</application> and other client programs
- (Noah Misch, Tom Lane)
- </para>
-
- <para>
- <application>pg_dump</application>,
- <application>pg_upgrade</application>,
- <application>vacuumdb</application> and
- other <productname>PostgreSQL</productname>-provided applications were
- themselves vulnerable to the type of hijacking described in the previous
- changelog entry; since these applications are commonly run by
- superusers, they present particularly attractive targets. To make them
- secure whether or not the installation as a whole has been secured,
- modify them to include only the <structname>pg_catalog</structname>
- schema in their <varname>search_path</varname> settings.
- Autovacuum worker processes now do the same, as well.
- </para>
-
- <para>
- In cases where user-provided functions are indirectly executed by
- these programs — for example, user-provided functions in index
- expressions — the tighter <varname>search_path</varname> may
- result in errors, which will need to be corrected by adjusting those
- user-provided functions to not assume anything about what search path
- they are invoked under. That has always been good practice, but now
- it will be necessary for correct behavior.
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [bc1adc651] 2018-02-23 22:13:21 -0500
-Branch: REL_10_STABLE [b9bf23abb] 2018-02-23 22:09:26 -0500
--->
- <para>
- Prevent logical replication from trying to ship changes for
- unpublishable relations (Peter Eisentraut)
- </para>
-
- <para>
- A publication marked <literal>FOR ALL TABLES</literal> would
- incorrectly ship changes in materialized views
- and <structname>information_schema</structname> tables, which are
- supposed to be omitted from the change stream.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [159efe4af] 2018-02-19 16:00:31 -0500
-Branch: REL_10_STABLE [517e0fe86] 2018-02-19 16:00:18 -0500
-Branch: REL9_6_STABLE [795f2112e] 2018-02-19 16:00:18 -0500
-Branch: REL9_5_STABLE [340d63bfb] 2018-02-19 16:00:18 -0500
-Branch: REL9_4_STABLE [e11b6488e] 2018-02-19 16:00:18 -0500
-Branch: REL9_3_STABLE [ea6d67cf8] 2018-02-19 16:00:18 -0500
--->
- <para>
- Fix misbehavior of concurrent-update rechecks with CTE references
- appearing in subplans (Tom Lane)
- </para>
-
- <para>
- If a CTE (<literal>WITH</literal> clause reference) is used in an
- InitPlan or SubPlan, and the query requires a recheck due to trying
- to update or lock a concurrently-updated row, incorrect results could
- be obtained.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9afd513df] 2018-02-23 13:47:33 -0500
-Branch: REL_10_STABLE [c458970ad] 2018-02-23 13:47:33 -0500
-Branch: REL9_6_STABLE [e7c02a54a] 2018-02-23 13:47:33 -0500
-Branch: REL9_5_STABLE [7dc5f316f] 2018-02-23 13:47:33 -0500
-Branch: REL9_4_STABLE [f6dd08489] 2018-02-23 13:47:33 -0500
-Branch: REL9_3_STABLE [71a0d0c5a] 2018-02-23 13:47:33 -0500
--->
- <para>
- Fix planner failures with overlapping mergejoin clauses in an outer
- join (Tom Lane)
- </para>
-
- <para>
- These mistakes led to <quote>left and right pathkeys do not match in
- mergejoin</quote> or <quote>outer pathkeys do not match
- mergeclauses</quote> planner errors in corner cases.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [38b41f182] 2018-02-21 18:40:24 -0500
-Branch: REL_10_STABLE [5ab5d21aa] 2018-02-21 18:40:24 -0500
-Branch: REL9_6_STABLE [66e203c85] 2018-02-21 18:40:24 -0500
-Branch: REL9_5_STABLE [9936f1499] 2018-02-21 18:40:24 -0500
-Branch: REL9_4_STABLE [2d12c5593] 2018-02-21 18:40:24 -0500
-Branch: REL9_3_STABLE [d3b0a23a2] 2018-02-21 18:40:24 -0500
--->
- <para>
- Repair <application>pg_upgrade</application>'s failure to
- preserve <structfield>relfrozenxid</structfield> for materialized
- views (Tom Lane, Andres Freund)
- </para>
-
- <para>
- This oversight could lead to data corruption in materialized views
- after an upgrade, manifesting as <quote>could not access status of
- transaction</quote> or <quote>found xmin from before
- relfrozenxid</quote> errors. The problem would be more likely to
- occur in seldom-refreshed materialized views, or ones that were
- maintained only with <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command>.
- </para>
-
- <para>
- If such corruption is observed, it can be repaired by refreshing the
- materialized view (without <literal>CONCURRENTLY</literal>).
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3486bcf9e] 2018-02-20 11:23:42 -0500
-Branch: REL_10_STABLE [6753f6c41] 2018-02-20 11:23:34 -0500
--->
- <para>
- Fix incorrect <application>pg_dump</application> output for some
- non-default sequence limit values (Alexey Bashtanov)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5c9f2564f] 2018-02-11 13:24:15 -0500
-Branch: REL_10_STABLE [1298fccef] 2018-02-11 13:24:15 -0500
--->
- <para>
- Fix <application>pg_dump</application>'s mishandling
- of <literal>STATISTICS</literal> objects (Tom Lane)
- </para>
-
- <para>
- An extended statistics object's schema was mislabeled in the dump's
- table of contents, possibly leading to the wrong results in a
- schema-selective restore. Its ownership was not correctly restored,
- either. Also, change the logic so that statistics objects are
- dumped/restored, or not, as independent objects rather than tying
- them to the dump/restore decision for the table they are on. The
- original definition could not scale to the planned future extension to
- cross-table statistics.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e748e902d] 2018-02-14 14:47:18 -0500
-Branch: REL_10_STABLE [4081e1136] 2018-02-14 14:47:18 -0500
-Branch: REL9_6_STABLE [0a2381d13] 2018-02-14 14:47:18 -0500
-Branch: REL9_5_STABLE [db1c597f3] 2018-02-14 14:47:18 -0500
-Branch: REL9_4_STABLE [bd8718637] 2018-02-14 14:47:18 -0500
-Branch: REL9_3_STABLE [457e9e88e] 2018-02-14 14:47:18 -0500
--->
- <para>
- Fix incorrect reporting of PL/Python function names in
- error <literal>CONTEXT</literal> stacks (Tom Lane)
- </para>
-
- <para>
- An error occurring within a nested PL/Python function call (that is,
- one reached via a SPI query from another PL/Python function) would
- result in a stack trace showing the inner function's name twice,
- rather than the expected results. Also, an error in a nested
- PL/Python <literal>DO</literal> block could result in a null pointer
- dereference crash on some platforms.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8af87f411] 2018-02-23 14:39:17 -0500
-Branch: REL_10_STABLE [0222e897d] 2018-02-23 14:39:18 -0500
-Branch: REL9_6_STABLE [be87cd2a0] 2018-02-23 14:39:20 -0500
-Branch: REL9_5_STABLE [753875ed4] 2018-02-23 14:39:21 -0500
-Branch: REL9_4_STABLE [3ba503bde] 2018-02-23 14:39:22 -0500
-Branch: REL9_3_STABLE [a7a6051cf] 2018-02-23 14:39:23 -0500
--->
- <para>
- Allow <filename>contrib/auto_explain</filename>'s
- <varname>log_min_duration</varname> setting to range up
- to <literal>INT_MAX</literal>, or about 24 days instead of 35 minutes
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [935dee9ad] 2018-02-09 15:54:45 -0500
-Author: Andres Freund <andres@anarazel.de>
-Branch: REL_10_STABLE [2ff2baa22] 2018-02-22 12:54:45 -0800
-Branch: REL9_6_STABLE [83fce670e] 2018-02-22 12:58:43 -0800
--->
- <para>
- Mark assorted GUC variables as <literal>PGDLLIMPORT</literal>, to
- ease porting extension modules to Windows (Metin Doslu)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-2">
- <title>Release 10.2</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-02-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.1.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.2</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However,
- if you use <filename>contrib/cube</filename>'s <literal>~></literal>
- operator, see the entry below about that.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.1,
- see <xref linkend="release-10-1"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3492a0af0] 2018-02-05 10:37:30 -0500
-Branch: REL_10_STABLE [fe921a360] 2018-02-05 10:37:30 -0500
--->
- <para>
- Fix processing of partition keys containing multiple expressions
- (Álvaro Herrera, David Rowley)
- </para>
-
- <para>
- This error led to crashes or, with carefully crafted input, disclosure
- of arbitrary backend memory.
- (CVE-2018-1052)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a926eb84e] 2018-02-05 10:58:27 -0500
-Branch: REL_10_STABLE [6ba52aeb2] 2018-02-05 10:58:27 -0500
-Branch: REL9_6_STABLE [1341e017d] 2018-02-05 10:58:27 -0500
-Branch: REL9_5_STABLE [17aa02368] 2018-02-05 10:58:27 -0500
-Branch: REL9_4_STABLE [c3456208d] 2018-02-05 10:58:27 -0500
-Branch: REL9_3_STABLE [9c59e48a2] 2018-02-05 10:58:27 -0500
--->
- <para>
- Ensure that all temporary files made
- by <application>pg_upgrade</application> are non-world-readable
- (Tom Lane, Noah Misch)
- </para>
-
- <para>
- <application>pg_upgrade</application> normally restricts its
- temporary files to be readable and writable only by the calling user.
- But the temporary file containing <literal>pg_dumpall -g</literal>
- output would be group- or world-readable, or even writable, if the
- user's <literal>umask</literal> setting allows. In typical usage on
- multi-user machines, the <literal>umask</literal> and/or the working
- directory's permissions would be tight enough to prevent problems;
- but there may be people using <application>pg_upgrade</application>
- in scenarios where this oversight would permit disclosure of database
- passwords to unfriendly eyes.
- (CVE-2018-1053)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [9c2f0a6c3] 2017-12-14 18:20:47 -0800
-Branch: REL_10_STABLE [1224383e8] 2017-12-14 18:20:48 -0800
-Branch: REL9_6_STABLE [937494c0e] 2017-12-14 18:20:48 -0800
-Branch: REL9_5_STABLE [32c0295b1] 2017-12-14 18:20:48 -0800
-Branch: REL9_4_STABLE [4eff5a8c9] 2017-12-14 18:20:48 -0800
-Branch: REL9_3_STABLE [387abe870] 2017-12-14 18:20:48 -0800
--->
- <para>
- Fix vacuuming of tuples that were updated while key-share locked
- (Andres Freund, Álvaro Herrera)
- </para>
-
- <para>
- In some cases <command>VACUUM</command> would fail to remove such
- tuples even though they are now dead, leading to assorted data
- corruption scenarios.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [ad25a6b1f] 2018-02-01 15:23:45 -0500
-Branch: REL_10_STABLE [b94988fad] 2018-02-01 15:31:31 -0500
--->
- <para>
- Fix failure to mark a hash index's metapage dirty after
- adding a new overflow page, potentially leading to index corruption
- (Lixian Zou, Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [3b2787e1f] 2017-11-16 14:19:27 -0500
-Branch: REL_10_STABLE [c8df4831e] 2017-11-16 15:24:19 -0500
-Branch: REL9_6_STABLE [19648ce55] 2017-11-16 15:26:49 -0500
--->
- <para>
- Ensure that vacuum will always clean up the pending-insertions list of
- a GIN index (Masahiko Sawada)
- </para>
-
- <para>
- This is necessary to ensure that dead index entries get removed.
- The old code got it backwards, allowing vacuum to skip the cleanup if
- some other process were running cleanup concurrently, thus risking
- invalid entries being left behind in the index.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [272c2ab9f] 2018-01-09 17:06:31 -0300
-Branch: REL_10_STABLE [37dd11281] 2018-01-09 17:08:10 -0300
-Branch: REL9_6_STABLE [012683866] 2018-01-09 17:07:47 -0300
-Branch: REL9_5_STABLE [38a23790e] 2018-01-09 17:07:36 -0300
-Branch: REL9_4_STABLE [c61879640] 2018-01-09 17:07:24 -0300
-Branch: REL9_3_STABLE [469fa9ad6] 2018-01-09 17:07:00 -0300
--->
- <para>
- Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
- Asim Praveen, Ashwin Agrawal)
- </para>
-
- <para>
- These errors could result in misbehavior under concurrent load.
- The potential consequences have not been characterized fully.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [90947674f] 2018-01-12 12:24:50 -0500
-Branch: REL_10_STABLE [d3ca1a6c3] 2018-01-12 12:24:50 -0500
-Branch: REL9_6_STABLE [6520d4a96] 2018-01-12 12:24:50 -0500
-Branch: REL9_5_STABLE [ff99d7761] 2018-01-12 12:24:50 -0500
--->
- <para>
- Fix incorrect query results from cases involving flattening of
- subqueries whose outputs are used in <literal>GROUPING SETS</literal>
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [3ccdc6f9a] 2018-01-31 15:43:11 -0500
-Branch: REL_10_STABLE [86fba2865] 2018-01-31 16:08:39 -0500
--->
- <para>
- Fix handling of list partitioning constraints for partition keys of
- boolean or array types (Amit Langote)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [680d54050] 2018-01-12 15:46:37 -0500
-Branch: REL_10_STABLE [55e5eb4d9] 2018-01-12 15:46:37 -0500
-Branch: REL9_6_STABLE [c2a7044a5] 2018-01-12 15:46:37 -0500
-Branch: REL9_5_STABLE [a99922f96] 2018-01-12 15:46:37 -0500
-Branch: REL9_4_STABLE [8b0e5e7e7] 2018-01-12 15:46:38 -0500
-Branch: REL9_3_STABLE [4e7170058] 2018-01-12 15:46:38 -0500
--->
- <para>
- Avoid unnecessary failure in a query on an inheritance tree that
- occurs concurrently with some child table being removed from the tree
- by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [54eff5311] 2018-01-02 19:16:16 -0300
-Branch: REL_10_STABLE [6d2a9ae0e] 2018-01-02 19:16:16 -0300
-Branch: REL9_6_STABLE [fb7b43903] 2018-01-02 19:16:16 -0300
-Branch: REL9_5_STABLE [82f1c3b7d] 2018-01-02 19:16:16 -0300
-Branch: REL9_4_STABLE [47a3a1317] 2018-01-02 19:16:16 -0300
--->
- <para>
- Fix spurious deadlock failures when multiple sessions are
- running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [ad337c76b] 2017-12-27 18:25:37 +0300
-Branch: REL_10_STABLE [bdbf29aae] 2017-12-27 18:26:58 +0300
--->
- <para>
- During <command>VACUUM FULL</command>, update the table's size fields
- in <structname>pg_class</structname> sooner (Amit Kapila)
- </para>
-
- <para>
- This prevents poor behavior when rebuilding hash indexes on the
- table, since those use the <structname>pg_class</structname>
- statistics to govern the initial hash size.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c4c2885cb] 2017-12-22 12:08:06 -0500
-Branch: REL_10_STABLE [c252ccda7] 2017-12-22 12:08:18 -0500
--->
- <para>
- Fix
- <literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>
- over zero columns (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [005ac298b] 2017-12-08 12:13:04 -0500
-Branch: REL_10_STABLE [a2c6cf366] 2017-12-08 12:25:41 -0500
--->
- <para>
- Disallow identity columns on typed tables and partitions
- (Michael Paquier)
- </para>
-
- <para>
- These cases will be treated as unsupported features for now.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [2d2d06b7e] 2017-12-08 09:18:18 -0500
-Branch: REL_10_STABLE [ee5b59549] 2017-12-08 09:39:55 -0500
-Branch: master [533c5d8bd] 2018-02-02 14:39:10 -0500
-Branch: REL_10_STABLE [1597948c9] 2018-02-02 15:06:52 -0500
--->
- <para>
- Fix assorted failures to apply the correct default value when
- inserting into an identity column (Michael Paquier, Peter Eisentraut)
- </para>
-
- <para>
- In several contexts, notably <command>COPY</command>
- and <command>ALTER TABLE ADD COLUMN</command>, the expected default
- value was not applied and instead a null value was inserted.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9a785ad57] 2017-11-27 17:54:07 -0500
-Branch: REL_10_STABLE [a57aa430b] 2017-11-27 17:54:09 -0500
-Branch: REL9_6_STABLE [06ba53096] 2017-11-27 17:54:10 -0500
-Branch: REL9_5_STABLE [39f180fdd] 2017-11-27 17:54:11 -0500
--->
- <para>
- Fix failures when an inheritance tree contains foreign child tables
- (Etsuro Fujita)
- </para>
-
- <para>
- A mix of regular and foreign tables in an inheritance tree resulted in
- creation of incorrect plans for <command>UPDATE</command>
- and <command>DELETE</command> queries. This led to visible failures in
- some cases, notably when there are row-level triggers on a foreign
- child table.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9b63c13f0] 2017-11-25 14:15:48 -0500
-Branch: REL_10_STABLE [5dc7faa91] 2017-11-25 14:15:48 -0500
-Branch: REL9_6_STABLE [497e79b96] 2017-11-25 14:15:48 -0500
-Branch: REL9_5_STABLE [ae6ed0784] 2017-11-25 14:15:48 -0500
-Branch: REL9_4_STABLE [2e105cf6d] 2017-11-25 14:15:48 -0500
-Branch: REL9_3_STABLE [d538f6568] 2017-11-25 14:15:48 -0500
--->
- <para>
- Repair failure with correlated sub-<literal>SELECT</literal>
- inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
- subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [bb94ce4d2] 2018-01-23 16:50:34 -0500
-Branch: REL_10_STABLE [c5e59bb60] 2018-01-23 16:50:34 -0500
-Branch: REL9_6_STABLE [ae3699a6a] 2018-01-23 16:50:35 -0500
-Branch: REL9_5_STABLE [8a2228b2f] 2018-01-23 16:50:35 -0500
-Branch: REL9_4_STABLE [54e1599c7] 2018-01-23 16:50:35 -0500
-Branch: REL9_3_STABLE [b100a5274] 2018-01-23 16:50:35 -0500
--->
- <para>
- Fix <quote>could not devise a query plan for the given query</quote>
- planner failure for some cases involving nested <literal>UNION
- ALL</literal> inside a lateral subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ecc27d55f] 2017-12-04 11:51:43 -0500
-Branch: REL_10_STABLE [bf2b317f1] 2017-12-04 11:51:43 -0500
--->
- <para>
- Allow functional dependency statistics to be used for boolean columns
- (Tom Lane)
- </para>
-
- <para>
- Previously, although extended statistics could be declared and
- collected on boolean columns, the planner failed to apply them.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [df3a66e28] 2017-11-25 11:48:09 -0500
-Branch: REL_10_STABLE [b9fc2d0b9] 2017-11-25 11:48:09 -0500
--->
- <para>
- Avoid underestimating the number of groups emitted by subqueries
- containing set-returning functions in their grouping columns (Tom Lane)
- </para>
-
- <para>
- Cases similar to <literal>SELECT DISTINCT unnest(foo)</literal> got a
- lower output rowcount estimate in 10.0 than they did in earlier
- releases, possibly resulting in unfavorable plan choices. Restore the
- prior estimation behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Simon Riggs <simon@2ndQuadrant.com>
-Branch: master [7e17a6889] 2017-11-22 16:28:14 +1100
-Branch: REL_10_STABLE [7015bb389] 2017-11-28 09:37:22 +0000
--->
- <para>
- Fix use of triggers in logical replication workers (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [df9f682c7] 2018-01-05 12:17:10 -0300
-Branch: REL_10_STABLE [a19c262f3] 2018-01-05 12:17:10 -0300
-Branch: REL9_6_STABLE [9a5e4a6e0] 2018-01-05 12:17:10 -0300
-Branch: REL9_5_STABLE [132cd58d6] 2018-01-05 12:17:10 -0300
-Branch: REL9_4_STABLE [f68c49f86] 2018-01-05 12:17:10 -0300
--->
- <para>
- Fix logical decoding to correctly clean up disk files for crashed
- transactions (Atsushi Torikoshi)
- </para>
-
- <para>
- Logical decoding may spill WAL records to disk for transactions
- generating many WAL records. Normally these files are cleaned up
- after the transaction's commit or abort record arrives; but if
- no such record is ever seen, the removal code misbehaved.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [0fedb4ea6] 2017-12-14 11:13:14 -0500
-Branch: REL_10_STABLE [14c15b1f4] 2017-12-14 11:29:34 -0500
-Branch: REL9_6_STABLE [c28e0b1e0] 2017-12-14 11:31:13 -0500
-Branch: REL9_5_STABLE [87056267e] 2017-12-14 11:32:00 -0500
-Branch: REL9_4_STABLE [f5c7e0cdd] 2017-12-14 11:32:25 -0500
--->
- <para>
- Fix walsender timeout failure and failure to respond to interrupts
- when processing a large transaction (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8a906204a] 2018-01-09 12:09:30 -0500
-Branch: REL_10_STABLE [1f5adbd79] 2018-01-09 12:09:30 -0500
--->
- <para>
- Fix race condition during replication origin drop that could allow the
- dropping process to wait indefinitely (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Simon Riggs <simon@2ndQuadrant.com>
-Branch: master [6668a54eb] 2018-01-06 11:48:21 +0000
-Branch: REL_10_STABLE [76e117dbe] 2018-01-28 16:14:31 +0000
--->
- <para>
- Allow members of the <literal>pg_read_all_stats</literal> role to see
- walsender statistics in the <structname>pg_stat_replication</structname>
- view (Feike Steenbergen)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [d02974e32] 2017-12-29 16:28:32 +0100
-Branch: REL_10_STABLE [b38c3d58e] 2017-12-29 16:22:43 +0100
--->
- <para>
- Show walsenders that are sending base backups as active in
- the <structname>pg_stat_activity</structname> view (Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [38d485fda] 2018-01-30 16:50:30 -0500
-Branch: REL_10_STABLE [167a22b2a] 2018-01-30 17:05:35 -0500
--->
- <para>
- Fix reporting of <literal>scram-sha-256</literal> authentication
- method in the <structname>pg_hba_file_rules</structname> view
- (Michael Paquier)
- </para>
-
- <para>
- Previously this was printed as <literal>scram-sha256</literal>,
- possibly confusing users as to the correct spelling.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Joe Conway <mail@joeconway.com>
-Branch: master [752714dd9] 2017-11-26 09:49:40 -0800
-Branch: REL_10_STABLE [9e051b674] 2017-11-26 09:50:00 -0800
-Branch: REL9_6_STABLE [997015ef2] 2017-11-26 09:50:15 -0800
-Branch: REL9_5_STABLE [db714c62b] 2017-11-26 09:50:27 -0800
-Branch: REL9_4_STABLE [d8d9c97cd] 2017-11-26 09:50:42 -0800
-Branch: REL9_3_STABLE [69e5b1e9c] 2017-11-26 09:50:53 -0800
--->
- <para>
- Fix <function>has_sequence_privilege()</function> to
- support <literal>WITH GRANT OPTION</literal> tests,
- as other privilege-testing functions do (Joe Conway)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [2918fcedb] 2017-11-11 11:10:53 -0800
-Branch: REL_10_STABLE [30a5e940a] 2017-11-11 11:11:15 -0800
-Branch: REL9_6_STABLE [46fb15f48] 2017-11-11 11:11:19 -0800
-Branch: REL9_5_STABLE [e7083dfce] 2017-11-11 11:11:21 -0800
-Branch: REL9_4_STABLE [2f4061aff] 2017-11-11 11:11:24 -0800
-Branch: REL9_3_STABLE [d8406b9de] 2017-11-11 11:11:28 -0800
-Branch: master [4b865aee2] 2017-11-11 13:07:46 -0800
-Branch: REL_10_STABLE [075ced2a4] 2017-11-11 13:07:54 -0800
-Branch: REL9_6_STABLE [742471ef9] 2017-11-11 13:07:55 -0800
-Branch: REL9_5_STABLE [739f1f6ac] 2017-11-11 13:07:55 -0800
-Branch: REL9_4_STABLE [e48fb50d8] 2017-11-11 13:07:55 -0800
-Branch: REL9_3_STABLE [f5260d5ad] 2017-11-11 13:07:55 -0800
--->
- <para>
- In databases using UTF8 encoding, ignore any XML declaration that
- asserts a different encoding (Pavel Stehule, Noah Misch)
- </para>
-
- <para>
- We always store XML strings in the database encoding, so allowing
- libxml to act on a declaration of another encoding gave wrong results.
- In encodings other than UTF8, we don't promise to support non-ASCII
- XML data anyway, so retain the previous behavior for bug compatibility.
- This change affects only <function>xpath()</function> and related
- functions; other XML code paths already acted this way.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [ae65f6066] 2017-11-21 13:56:24 -0500
-Branch: REL_10_STABLE [5b2a87707] 2017-11-21 14:03:51 -0500
-Branch: REL9_6_STABLE [7c84bc0b3] 2017-11-21 14:30:33 -0500
-Branch: REL9_5_STABLE [c703aa625] 2017-11-21 14:34:26 -0500
-Branch: REL9_4_STABLE [294136d42] 2017-11-21 14:38:29 -0500
-Branch: REL9_3_STABLE [aa3a78c3d] 2017-11-21 14:45:29 -0500
--->
- <para>
- Provide for forward compatibility with future minor protocol versions
- (Robert Haas, Badrul Chowdhury)
- </para>
-
- <para>
- Up to now, <productname>PostgreSQL</productname> servers simply
- rejected requests to use protocol versions newer than 3.0, so that
- there was no functional difference between the major and minor parts
- of the protocol version number. Allow clients to request versions 3.x
- without failing, sending back a message showing that the server only
- understands 3.0. This makes no difference at the moment, but
- back-patching this change should allow speedier introduction of future
- minor protocol upgrades.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: REL_10_STABLE [218b024a7] 2017-12-08 10:17:46 -0500
--->
- <para>
- Allow a client that supports SCRAM channel binding (such as v11 or
- later <application>libpq</application>) to connect to a v10 server
- (Michael Paquier)
- </para>
-
- <para>
- v10 does not have this feature, and the connection-time negotiation
- about whether to use it was done incorrectly.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [aced5a92b] 2018-01-05 19:21:30 -0500
-Branch: REL_10_STABLE [1c77e9908] 2018-01-05 19:21:30 -0500
--->
- <para>
- Avoid live-lock in <function>ConditionVariableBroadcast()</function>
- (Tom Lane, Thomas Munro)
- </para>
-
- <para>
- Given repeatedly-unlucky timing, a process attempting to awaken all
- waiters for a condition variable could loop indefinitely. Due to the
- limited usage of condition variables in v10, this affects only
- parallel index scans and some operations on replication slots.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [59d1e2b95] 2017-12-21 09:24:30 -0500
-Branch: REL_10_STABLE [f3decdc94] 2017-12-21 09:24:48 -0500
--->
- <para>
- Clean up waits for condition variables correctly during subtransaction
- abort (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [80259d4db] 2018-01-09 12:34:57 -0500
-Branch: REL_10_STABLE [d56a5f994] 2018-01-09 12:34:46 -0500
--->
- <para>
- Ensure that child processes that are waiting for a condition variable
- will exit promptly if the postmaster process dies (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [fd7c0fa73] 2017-12-18 12:22:31 -0500
-Branch: REL_10_STABLE [b70ea4c75] 2017-12-18 12:31:10 -0500
--->
- <para>
- Fix crashes in parallel queries using more than one Gather node
- (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [884a60840] 2017-12-13 16:15:44 -0500
-Branch: REL_10_STABLE [192ffe1cb] 2017-12-13 16:09:00 -0500
--->
- <para>
- Fix hang in parallel index scan when processing a deleted or half-dead
- index page (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [c6755e233] 2017-11-28 11:44:59 -0500
-Branch: REL_10_STABLE [ec7629dfb] 2017-11-28 11:49:01 -0500
--->
- <para>
- Avoid crash if parallel bitmap heap scan is unable to allocate a
- shared memory segment (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [28724fd90] 2017-12-06 08:58:27 -0500
-Branch: REL_10_STABLE [a8ef4e81e] 2017-12-06 09:01:21 -0500
-Branch: REL9_6_STABLE [b75644066] 2017-12-06 09:04:02 -0500
-Branch: REL9_5_STABLE [0426a77ce] 2017-12-06 09:06:25 -0500
-Branch: REL9_4_STABLE [facd94e72] 2017-12-06 09:08:30 -0500
-Branch: master [2badb5afb] 2018-01-23 11:03:03 -0500
-Branch: REL_10_STABLE [383e4268f] 2018-01-23 11:13:42 -0500
-Branch: REL9_6_STABLE [2843c01a5] 2018-01-23 11:13:50 -0500
--->
- <para>
- Cope with failure to start a parallel worker process
- (Amit Kapila, Robert Haas)
- </para>
-
- <para>
- Parallel query previously tended to hang indefinitely if a worker
- could not be started, as the result of <literal>fork()</literal>
- failure or other low-probability problems.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [445dbd82a] 2017-11-28 12:15:38 -0500
-Branch: REL_10_STABLE [dba6e75c1] 2017-11-28 12:19:19 -0500
--->
- <para>
- Avoid unnecessary failure when no parallel workers can be obtained
- during parallel query startup (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [8526bcb2d] 2017-12-19 12:21:56 -0500
-Branch: REL_10_STABLE [72567f617] 2017-12-19 12:44:21 -0500
-Branch: REL9_6_STABLE [2157a61b5] 2018-01-04 12:46:00 -0500
--->
- <para>
- Fix collection of <command>EXPLAIN</command> statistics from parallel
- workers (Amit Kapila, Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [f94eec490] 2017-12-20 17:26:50 -0500
-Branch: REL_10_STABLE [7be0d775a] 2017-12-20 17:27:25 -0500
--->
- <para>
- Ensure that query strings passed to parallel workers are correctly
- null-terminated (Thomas Munro)
- </para>
-
- <para>
- This prevents emitting garbage in postmaster log output from such
- workers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [751804998] 2017-11-14 15:03:55 -0500
-Branch: REL_10_STABLE [619a8c47d] 2017-11-14 17:49:49 -0500
-Branch: REL9_6_STABLE [4a15f87d2] 2017-11-14 17:49:49 -0500
-Branch: REL9_5_STABLE [d4e38489f] 2017-11-14 17:49:49 -0500
--->
- <para>
- Avoid unsafe alignment assumptions when working
- with <type>__int128</type> (Tom Lane)
- </para>
-
- <para>
- Typically, compilers assume that <type>__int128</type> variables are
- aligned on 16-byte boundaries, but our memory allocation
- infrastructure isn't prepared to guarantee that, and increasing the
- setting of MAXALIGN seems infeasible for multiple reasons. Adjust the
- code to allow use of <type>__int128</type> only when we can tell the
- compiler to assume lesser alignment. The only known symptom of this
- problem so far is crashes in some parallel aggregation queries.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [35a528062] 2018-01-28 13:39:07 -0500
-Branch: REL_10_STABLE [1b2a3860d] 2018-01-28 13:39:07 -0500
-Branch: REL9_6_STABLE [4e9fb4bfe] 2018-01-28 13:39:07 -0500
-Branch: REL9_5_STABLE [e194f1383] 2018-01-28 13:39:07 -0500
-Branch: REL9_4_STABLE [06efc5cf5] 2018-01-28 13:39:07 -0500
-Branch: REL9_3_STABLE [c03fc8462] 2018-01-28 13:39:07 -0500
--->
- <para>
- Prevent stack-overflow crashes when planning extremely deeply
- nested set operations
- (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2e668c522] 2018-01-27 13:52:24 -0500
-Branch: REL_10_STABLE [78433f41f] 2018-01-27 13:52:24 -0500
--->
- <para>
- Avoid crash during an EvalPlanQual recheck of an indexscan that is the
- inner child of a merge join (Tom Lane)
- </para>
-
- <para>
- This could only happen during an update or <command>SELECT FOR
- UPDATE</command> of a join, when there is a concurrent update of some
- selected row.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [414cd434f] 2017-11-28 23:40:11 -0300
-Branch: REL_10_STABLE [d4607590b] 2017-11-28 23:42:42 -0300
--->
- <para>
- Fix crash in autovacuum when extended statistics are defined
- for a table but can't be computed (Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [0c98d0dd5] 2017-11-10 14:21:32 -0500
-Branch: REL_10_STABLE [f9e2885d5] 2017-11-10 14:27:51 -0500
-Branch: REL9_6_STABLE [d380d080f] 2017-11-10 14:29:13 -0500
-Branch: REL9_5_STABLE [9efd83bfd] 2017-11-10 14:30:06 -0500
-Branch: REL9_4_STABLE [0bcdab58e] 2017-11-10 14:30:34 -0500
-Branch: REL9_3_STABLE [62906461c] 2017-11-10 14:30:48 -0500
--->
- <para>
- Fix null-pointer crashes for some types of LDAP URLs appearing
- in <filename>pg_hba.conf</filename> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [ab9f2c429] 2018-01-29 11:24:57 -0800
-Branch: REL_10_STABLE [d1aac2998] 2018-01-29 11:24:57 -0800
-Branch: master [c068f8772] 2018-01-29 11:24:57 -0800
-Branch: REL_10_STABLE [d18d4bca8] 2018-01-29 11:24:57 -0800
-Branch: REL_10_STABLE [c0fda304d] 2018-01-29 11:24:57 -0800
--->
- <para>
- Prevent out-of-memory failures due to excessive growth of simple hash
- tables (Tomas Vondra, Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3c1e9fd23] 2018-01-10 17:13:47 -0500
-Branch: REL_10_STABLE [08adf688f] 2018-01-10 17:13:29 -0500
-Branch: REL9_6_STABLE [122605194] 2018-01-10 17:13:29 -0500
-Branch: REL9_5_STABLE [10bcd4165] 2018-01-10 17:13:29 -0500
-Branch: REL9_4_STABLE [493cdc8ee] 2018-01-10 17:13:29 -0500
-Branch: REL9_3_STABLE [45bfef7fb] 2018-01-10 17:13:29 -0500
--->
- <para>
- Fix sample <function>INSTR()</function> functions in the PL/pgSQL
- documentation (Yugo Nagata, Tom Lane)
- </para>
-
- <para>
- These functions are stated to
- be <trademark class="registered">Oracle</trademark> compatible, but
- they weren't exactly. In particular, there was a discrepancy in the
- interpretation of a negative third parameter: Oracle thinks that a
- negative value indicates the last place where the target substring can
- begin, whereas our functions took it as the last place where the
- target can end. Also, Oracle throws an error for a zero or negative
- fourth parameter, whereas our functions returned zero.
- </para>
-
- <para>
- The sample code has been adjusted to match Oracle's behavior more
- precisely. Users who have copied this code into their applications
- may wish to update their copies.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2b792ab09] 2018-01-22 12:06:18 -0500
-Branch: REL_10_STABLE [46246fd9d] 2018-01-22 12:06:18 -0500
-Branch: REL9_6_STABLE [52cc1b484] 2018-01-22 12:06:19 -0500
-Branch: REL9_5_STABLE [367e2b230] 2018-01-22 12:06:19 -0500
-Branch: REL9_4_STABLE [da83ca7d9] 2018-01-22 12:06:19 -0500
-Branch: REL9_3_STABLE [ef115621c] 2018-01-22 12:06:19 -0500
--->
- <para>
- Fix <application>pg_dump</application> to make ACL (permissions),
- comment, and security label entries reliably identifiable in archive
- output formats (Tom Lane)
- </para>
-
- <para>
- The <quote>tag</quote> portion of an ACL archive entry was usually
- just the name of the associated object. Make it start with the object
- type instead, bringing ACLs into line with the convention already used
- for comment and security label archive entries. Also, fix the
- comment and security label entries for the whole database, if present,
- to make their tags start with <literal>DATABASE</literal> so that they
- also follow this convention. This prevents false matches in code that
- tries to identify large-object-related entries by seeing if the tag
- starts with <literal>LARGE OBJECT</literal>. That could have resulted
- in misclassifying entries as data rather than schema, with undesirable
- results in a schema-only or data-only dump.
- </para>
-
- <para>
- Note that this change has user-visible results in the output
- of <command>pg_restore --list</command>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [3e68686e2] 2018-01-03 12:40:32 -0800
-Branch: REL_10_STABLE [e3fdb7c00] 2018-01-03 12:39:59 -0800
-Branch: REL9_6_STABLE [ceee51e38] 2018-01-03 12:39:59 -0800
-Branch: REL9_5_STABLE [ea4cbf8f1] 2018-01-03 12:39:59 -0800
--->
- <para>
- Rename <application>pg_rewind</application>'s
- <function>copy_file_range</function> function to avoid conflict
- with new Linux system call of that name (Andres Freund)
- </para>
-
- <para>
- This change prevents build failures with newer glibc versions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [649aeb123] 2018-01-13 14:57:49 +0100
-Branch: REL_10_STABLE [8b89b7aac] 2018-01-15 10:00:56 +0100
-Branch: REL9_6_STABLE [f082ef836] 2018-01-15 10:01:15 +0100
-Branch: REL9_5_STABLE [4eae1e6f5] 2018-01-15 10:02:03 +0100
-Branch: REL9_4_STABLE [2c1c4b060] 2018-01-15 10:02:16 +0100
-Branch: REL9_3_STABLE [a0f5890a6] 2018-01-15 10:02:23 +0100
--->
- <para>
- In <application>ecpg</application>, detect indicator arrays that do
- not have the correct length and report an error (David Rader)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [563a053bd] 2018-01-11 14:41:14 +0300
-Branch: REL_10_STABLE [b8279a783] 2018-01-11 14:42:16 +0300
-Branch: REL9_6_STABLE [bda5281fd] 2018-01-11 14:43:13 +0300
--->
- <para>
- Change the behavior of <filename>contrib/cube</filename>'s
- <type>cube</type> <literal>~></literal> <type>int</type>
- operator to make it compatible with KNN search (Alexander Korotkov)
- </para>
-
- <para>
- The meaning of the second argument (the dimension selector) has been
- changed to make it predictable which value is selected even when
- dealing with cubes of varying dimensionalities.
- </para>
-
- <para>
- This is an incompatible change, but since the point of the operator
- was to be used in KNN searches, it seems rather useless as-is.
- After installing this update, any expression indexes or materialized
- views using this operator will need to be reindexed/refreshed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d3f4e8a8a] 2017-11-25 14:42:10 -0500
-Branch: REL_10_STABLE [ddba32005] 2017-11-25 14:42:25 -0500
-Branch: REL9_6_STABLE [630aceda5] 2017-11-25 14:42:32 -0500
-Branch: REL9_5_STABLE [47226971e] 2017-11-25 14:42:36 -0500
-Branch: REL9_4_STABLE [5c38ddebd] 2017-11-25 14:42:41 -0500
-Branch: REL9_3_STABLE [6e9ac0a2e] 2017-11-25 14:42:46 -0500
--->
- <para>
- Avoid triggering a libc assertion
- in <filename>contrib/hstore</filename>, due to use
- of <function>memcpy()</function> with equal source and destination
- pointers (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [39cfe8619] 2018-01-04 14:59:00 -0500
-Branch: REL_10_STABLE [5ad1b1728] 2018-01-04 14:59:00 -0500
-Branch: REL9_6_STABLE [ad592f4a6] 2018-01-04 14:59:00 -0500
-Branch: master [18869e202] 2018-01-04 16:00:21 -0500
-Branch: REL_10_STABLE [0dc5dfcd7] 2018-01-04 15:59:30 -0500
--->
- <para>
- Fix incorrect display of tuples' null bitmaps
- in <filename>contrib/pageinspect</filename> (Maksim Milyutin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [b0313f9cc] 2018-01-26 09:56:33 -0500
-Branch: REL_10_STABLE [51fc1b09a] 2018-01-26 09:59:14 -0500
--->
- <para>
- Fix incorrect output from <filename>contrib/pageinspect</filename>'s
- <function>hash_page_items()</function> function (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [4bbf6edfb] 2018-01-17 16:18:39 -0500
-Branch: REL_10_STABLE [3f05a30b5] 2018-01-17 16:57:53 -0500
-Branch: REL9_6_STABLE [4a81c0229] 2018-01-17 17:09:20 -0500
-Branch: master [99f6a17dd] 2018-01-30 14:44:30 -0500
-Branch: REL_10_STABLE [92123c6ea] 2018-01-30 14:47:02 -0500
-Branch: REL9_6_STABLE [d397f558d] 2018-01-30 14:55:14 -0500
--->
- <para>
- In <filename>contrib/postgres_fdw</filename>, avoid
- <quote>outer pathkeys do not match mergeclauses</quote>
- planner error when constructing a plan involving a remote join
- (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e9f2703ab] 2018-01-12 16:52:49 -0500
-Branch: REL_10_STABLE [67854bc59] 2018-01-12 16:52:49 -0500
--->
- <para>
- In <filename>contrib/postgres_fdw</filename>, avoid planner failure
- when there are duplicate <literal>GROUP BY</literal> entries
- (Jeevan Chalke)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ac3b96268] 2017-11-17 12:46:52 -0500
-Branch: REL_10_STABLE [6313995c2] 2017-11-17 12:47:11 -0500
-Branch: REL9_6_STABLE [0d9243903] 2017-11-17 12:47:21 -0500
-Branch: REL9_5_STABLE [9508d422b] 2017-11-17 12:47:29 -0500
-Branch: REL9_4_STABLE [7d98dc133] 2017-11-17 12:47:36 -0500
-Branch: REL9_3_STABLE [77b76fea9] 2017-11-17 12:47:44 -0500
--->
- <para>
- Provide modern examples of how to auto-start Postgres on macOS
- (Tom Lane)
- </para>
-
- <para>
- The scripts in <filename>contrib/start-scripts/osx</filename> use
- infrastructure that's been deprecated for over a decade, and which no
- longer works at all in macOS releases of the last couple of years.
- Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
- containing scripts that use the newer <application>launchd</application>
- infrastructure.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [99d5a3ffb] 2018-01-03 15:36:54 -0500
-Branch: REL_10_STABLE [0fb69340b] 2018-01-03 15:33:12 -0500
-Branch: REL9_6_STABLE [85cdcde1f] 2018-01-03 15:33:32 -0500
-Branch: REL9_5_STABLE [d329d2d3e] 2018-01-03 15:33:47 -0500
-Branch: REL9_4_STABLE [2d03daa7b] 2018-01-03 15:34:02 -0500
-Branch: REL9_3_STABLE [5404145c5] 2018-01-03 15:34:21 -0500
--->
- <para>
- Fix incorrect selection of configuration-specific libraries for
- OpenSSL on Windows (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [84c4313c6] 2017-11-23 20:22:04 -0800
-Branch: REL_10_STABLE [f16a0958d] 2017-11-23 20:22:24 -0800
-Branch: REL9_6_STABLE [1695ce068] 2017-11-23 20:24:53 -0800
-Branch: REL9_5_STABLE [da8eae56e] 2017-11-23 20:25:08 -0800
-Branch: REL9_4_STABLE [558f62079] 2017-11-23 20:29:48 -0800
-Branch: REL9_3_STABLE [83e6b1434] 2017-11-23 20:32:01 -0800
-Branch: master [7e0c574ee] 2017-12-09 00:58:55 -0800
-Branch: REL_10_STABLE [e2cc65050] 2017-12-09 00:58:58 -0800
-Branch: REL9_6_STABLE [055532bad] 2017-12-09 00:58:58 -0800
-Branch: REL9_5_STABLE [470de6a24] 2017-12-09 00:58:59 -0800
-Branch: REL9_4_STABLE [d78c3ca0e] 2017-12-09 00:58:59 -0800
-Branch: REL9_3_STABLE [70dc7ad58] 2017-12-09 00:58:59 -0800
--->
- <para>
- Support linking to MinGW-built versions of libperl (Noah Misch)
- </para>
-
- <para>
- This allows building PL/Perl with some common Perl distributions for
- Windows.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [65a00f303] 2017-12-08 18:06:05 -0800
-Branch: REL_10_STABLE [9b5c99790] 2017-12-08 18:06:22 -0800
-Branch: REL9_6_STABLE [140fa2fba] 2017-12-08 18:06:25 -0800
-Branch: REL9_5_STABLE [1c1a572d0] 2017-12-08 18:06:29 -0800
-Branch: REL9_4_STABLE [aed8d41af] 2017-12-08 18:13:49 -0800
-Branch: REL9_3_STABLE [188689942] 2017-12-08 18:14:08 -0800
--->
- <para>
- Fix MSVC build to test whether 32-bit libperl
- needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
- </para>
-
- <para>
- Available Perl distributions are inconsistent about what they expect,
- and lack any reliable means of reporting it, so resort to a build-time
- test on what the library being used actually does.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [cbfffee41] 2017-11-12 14:31:00 -0800
-Branch: REL_10_STABLE [d6387e27e] 2017-11-12 14:31:04 -0800
-Branch: REL9_6_STABLE [8c92e66f1] 2017-11-12 14:31:04 -0800
-Branch: REL9_5_STABLE [b2df91f2f] 2017-11-12 14:31:04 -0800
-Branch: REL9_4_STABLE [e17b38db6] 2017-11-12 14:31:04 -0800
-Branch: REL9_3_STABLE [1c065901e] 2017-11-12 14:31:05 -0800
--->
- <para>
- On Windows, install the crash dump handler earlier in postmaster
- startup (Takayuki Tsunakawa)
- </para>
-
- <para>
- This may allow collection of a core dump for some early-startup
- failures that did not produce a dump before.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [e02571b73] 2017-11-12 13:03:15 -0800
-Branch: REL_10_STABLE [dcbec53f4] 2017-11-12 13:03:28 -0800
-Branch: REL9_6_STABLE [fd5da32fc] 2017-11-12 13:03:28 -0800
-Branch: REL9_5_STABLE [d74db7a35] 2017-11-12 13:03:28 -0800
-Branch: REL9_4_STABLE [19cf9e96a] 2017-11-12 13:03:29 -0800
-Branch: REL9_3_STABLE [30e99efe8] 2017-11-12 13:05:55 -0800
--->
- <para>
- On Windows, avoid encoding-conversion-related crashes when emitting
- messages very early in postmaster startup (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [84669c9b0] 2017-11-20 18:05:17 -0500
-Branch: REL_10_STABLE [ae772bbf9] 2017-11-20 18:05:02 -0500
-Branch: REL9_6_STABLE [fa9a69d3d] 2017-11-20 18:05:02 -0500
-Branch: REL9_5_STABLE [2cfafabe6] 2017-11-20 18:05:02 -0500
-Branch: REL9_4_STABLE [13f2bdb63] 2017-11-20 18:05:03 -0500
-Branch: REL9_3_STABLE [1056dd0e9] 2017-11-20 18:05:03 -0500
--->
- <para>
- Use our existing Motorola 68K spinlock code on OpenBSD as
- well as NetBSD (David Carlier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3bd00c01] 2017-11-20 18:05:17 -0500
-Branch: REL_10_STABLE [1ecf7eeb8] 2017-11-20 17:57:46 -0500
-Branch: REL9_6_STABLE [940bafa75] 2017-11-20 17:57:46 -0500
-Branch: REL9_5_STABLE [516cea4bb] 2017-11-20 17:57:46 -0500
-Branch: REL9_4_STABLE [8bd8b4b77] 2017-11-20 17:57:46 -0500
-Branch: REL9_3_STABLE [0245c75f4] 2017-11-20 17:57:46 -0500
--->
- <para>
- Add support for spinlocks on Motorola 88K (David Carlier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [41fc04ff9] 2018-01-27 16:42:28 -0500
-Branch: REL_10_STABLE [2d71b2700] 2018-01-27 16:42:36 -0500
-Branch: REL9_6_STABLE [462402be8] 2018-01-27 16:42:44 -0500
-Branch: REL9_5_STABLE [b00e7555e] 2018-01-27 16:42:49 -0500
-Branch: REL9_4_STABLE [fa86a32f9] 2018-01-27 16:42:55 -0500
-Branch: REL9_3_STABLE [e5e2cc6f8] 2018-01-27 16:43:00 -0500
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018c for DST law changes in Brazil, Sao Tome and Principe,
- plus historical corrections for Bolivia, Japan, and South Sudan.
- The <literal>US/Pacific-New</literal> zone has been removed (it was
- only an alias for <literal>America/Los_Angeles</literal> anyway).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-1">
- <title>Release 10.1</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-11-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.0.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.1</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you use BRIN indexes, see the fourth changelog entry below.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-Branch: master [87b2ebd35] 2017-11-06 09:19:22 +0000
-Branch: REL_10_STABLE [3f8089572] 2017-11-06 09:17:44 +0000
-Branch: REL9_6_STABLE [1f23d1cd2] 2017-11-06 09:16:24 +0000
-Branch: REL9_5_STABLE [045a18888] 2017-11-06 09:15:11 +0000
--->
- <para>
- Ensure that <literal>INSERT ... ON CONFLICT DO UPDATE</literal> checks
- table permissions and RLS policies in all cases (Dean Rasheed)
- </para>
-
- <para>
- The update path of <literal>INSERT ... ON CONFLICT DO UPDATE</literal>
- requires <literal>SELECT</literal> permission on the columns of the
- arbiter index, but it failed to check for that in the case of an
- arbiter specified by constraint name.
- In addition, for a table with row level security enabled, it failed to
- check updated rows against the table's <literal>SELECT</literal>
- policies (regardless of how the arbiter index was specified).
- (CVE-2017-15099)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b57422871] 2017-11-06 10:29:37 -0500
-Branch: REL_10_STABLE [c30f082d2] 2017-11-06 10:29:38 -0500
-Branch: REL9_6_STABLE [38e825632] 2017-11-06 10:29:39 -0500
-Branch: REL9_5_STABLE [d5fe5fb23] 2017-11-06 10:29:40 -0500
-Branch: REL9_4_STABLE [70846ee05] 2017-11-06 10:29:41 -0500
-Branch: REL9_3_STABLE [c0c8807de] 2017-11-06 10:29:42 -0500
--->
- <para>
- Fix crash due to rowtype mismatch
- in <function>json{b}_populate_recordset()</function>
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- These functions used the result rowtype specified in the <literal>FROM
- ... AS</literal> clause without checking that it matched the actual
- rowtype of the supplied tuple value. If it didn't, that would usually
- result in a crash, though disclosure of server memory contents seems
- possible as well.
- (CVE-2017-15098)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [dfc015dcf] 2017-11-06 07:11:10 -0800
-Branch: REL_10_STABLE [6b0b983f7] 2017-11-06 07:11:13 -0800
-Branch: REL9_6_STABLE [b7d6f7507] 2017-11-06 07:11:13 -0800
-Branch: REL9_5_STABLE [ed546dd06] 2017-11-06 07:11:13 -0800
-Branch: REL9_4_STABLE [29d067051] 2017-11-06 07:11:13 -0800
-Branch: REL9_3_STABLE [b50029768] 2017-11-06 07:11:13 -0800
-Branch: REL9_2_STABLE [eda780281] 2017-11-06 07:11:13 -0800
--->
- <para>
- Fix sample server-start scripts to become <literal>$PGUSER</literal>
- before opening <literal>$PGLOG</literal> (Noah Misch)
- </para>
-
- <para>
- Previously, the postmaster log file was opened while still running as
- root. The database owner could therefore mount an attack against
- another system user by making <literal>$PGLOG</literal> be a symbolic
- link to some other file, which would then become corrupted by appending
- log messages.
- </para>
-
- <para>
- By default, these scripts are not installed anywhere. Users who have
- made use of them will need to manually recopy them, or apply the same
- changes to their modified versions. If the
- existing <literal>$PGLOG</literal> file is root-owned, it will need to
- be removed or renamed out of the way before restarting the server with
- the corrected script.
- (CVE-2017-12172)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [ec42a1dcb] 2017-11-03 17:23:13 +0100
-Branch: REL_10_STABLE [37a856567] 2017-11-03 17:23:13 +0100
-Branch: REL9_6_STABLE [bd8e2b3cf] 2017-11-03 17:23:13 +0100
-Branch: REL9_5_STABLE [cf0612aa2] 2017-11-03 17:23:13 +0100
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [1b890562b] 2017-11-03 20:45:36 +0100
-Branch: REL_10_STABLE [b17870d75] 2017-11-03 20:47:44 +0100
--->
- <para>
- Fix BRIN index summarization to handle concurrent table extension
- correctly (Álvaro Herrera)
- </para>
-
- <para>
- Previously, a race condition allowed some table rows to be omitted from
- the index. It may be necessary to reindex existing BRIN indexes to
- recover from past occurrences of this problem.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [62a16572d] 2017-11-02 12:54:55 -0400
-Branch: REL_10_STABLE [97ba7b8c8] 2017-11-02 12:54:22 -0400
-Branch: REL9_6_STABLE [a43cd427e] 2017-11-02 12:54:23 -0400
-Branch: REL9_5_STABLE [43276abc6] 2017-11-02 12:54:23 -0400
--->
- <para>
- Fix possible failures during concurrent updates of a BRIN index
- (Tom Lane)
- </para>
-
- <para>
- These race conditions could result in errors like <quote>invalid index
- offnum</quote> or <quote>inconsistent range map</quote>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [a9fce6672] 2017-11-03 12:27:59 -0400
-Branch: REL_10_STABLE [a14b52c61] 2017-11-03 12:28:08 -0400
--->
- <para>
- Prevent logical replication from setting non-replicated columns to
- nulls when replicating an <command>UPDATE</command> (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [360fd1a7b] 2017-10-12 10:26:55 -0400
-Branch: REL_10_STABLE [7cde649ab] 2017-10-12 10:26:54 -0400
--->
- <para>
- Fix logical replication to fire <literal>BEFORE ROW DELETE</literal>
- triggers when expected (Masahiko Sawada)
- </para>
-
- <para>
- Previously, that failed to happen unless the table also had
- a <literal>BEFORE ROW UPDATE</literal> trigger.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1518d0784] 2017-10-06 19:18:58 -0400
-Branch: REL_10_STABLE [485d49dbc] 2017-10-06 19:18:58 -0400
-Branch: REL9_6_STABLE [185279da3] 2017-10-06 19:18:58 -0400
-Branch: REL9_5_STABLE [13d2ed921] 2017-10-06 19:18:59 -0400
-Branch: REL9_4_STABLE [bfb69b1e5] 2017-10-06 19:18:59 -0400
--->
- <para>
- Fix crash when logical decoding is invoked from a SPI-using function,
- in particular any function written in a PL language
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [7421f4b89] 2017-10-16 17:56:54 -0400
-Branch: REL_10_STABLE [799037099] 2017-10-16 17:56:43 -0400
--->
- <para>
- Ignore CTEs when looking up the target table for
- <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>,
- and prevent matching schema-qualified target table names to trigger
- transition table names (Thomas Munro)
- </para>
-
- <para>
- This restores the pre-v10 behavior for CTEs attached to DML commands.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c3dfe0fec] 2017-10-16 15:24:36 -0400
-Branch: REL_10_STABLE [72e9cc971] 2017-10-16 15:24:36 -0400
--->
- <para>
- Avoid evaluating an aggregate function's argument expression(s) at rows
- where its <literal>FILTER</literal> test fails (Tom Lane)
- </para>
-
- <para>
- This restores the pre-v10 (and SQL-standard) behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [08f1e1f0a] 2017-10-26 12:17:40 -0400
-Branch: REL_10_STABLE [6a81ba1d4] 2017-10-26 12:17:40 -0400
-Branch: REL9_6_STABLE [37b4e0fe9] 2017-10-26 12:17:40 -0400
--->
- <para>
- Fix incorrect query results when multiple <literal>GROUPING
- SETS</literal> columns contain the same simple variable (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a1c2c430d] 2017-10-06 14:28:42 -0400
-Branch: REL_10_STABLE [0c25e9652] 2017-10-06 14:28:42 -0400
--->
- <para>
- Fix query-lifespan memory leakage while evaluating a set-returning
- function in a <command>SELECT</command>'s target list (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [682ce911f] 2017-10-27 22:22:39 +0200
-Branch: REL_10_STABLE [a87c0c763] 2017-10-29 20:48:51 +0530
--->
- <para>
- Allow parallel execution of prepared statements with generic plans
- (Amit Kapila, Kuntal Ghosh)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [639c1a6bb] 2017-10-27 16:04:01 +0200
-Branch: REL_10_STABLE [965a16fa9] 2017-10-27 16:04:10 +0200
-Branch: REL9_6_STABLE [036b6bd50] 2017-10-27 16:12:16 +0200
--->
- <para>
- Fix incorrect parallelization decisions for nested queries
- (Amit Kapila, Kuntal Ghosh)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [846fcc851] 2017-10-29 12:58:40 +0530
-Branch: REL_10_STABLE [69125c883] 2017-10-29 13:04:37 +0530
-Branch: REL9_6_STABLE [f74f871b8] 2017-10-29 13:14:37 +0530
--->
- <para>
- Fix parallel query handling to not fail when a recently-used role is
- dropped (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [6393613b6] 2017-10-13 15:02:45 -0400
-Branch: REL_10_STABLE [a3b1c2218] 2017-10-13 15:05:14 -0400
--->
- <para>
- Fix crash in parallel execution of a bitmap scan having a BitmapAnd
- plan node below a BitmapOr node (Dilip Kumar)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [f3c6e8a27] 2017-10-25 07:13:11 -0400
-Branch: REL_10_STABLE [fb17082d7] 2017-10-25 07:14:21 -0400
-Branch: REL9_6_STABLE [5c3a1bbb4] 2017-10-25 07:19:59 -0400
-Branch: REL9_5_STABLE [5c8dcd322] 2017-10-25 07:20:37 -0400
-Branch: REL9_4_STABLE [7f89fc418] 2017-10-25 07:20:48 -0400
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [18fc4ecf4] 2017-10-25 07:34:00 -0400
-Branch: REL_10_STABLE [06d5ba0d4] 2017-10-25 07:40:33 -0400
-Branch: REL9_6_STABLE [98efa5ebf] 2017-10-25 07:48:36 -0400
-Branch: REL9_5_STABLE [3cc5f0550] 2017-10-25 07:49:13 -0400
-Branch: REL9_4_STABLE [9cb28e98b] 2017-10-25 07:52:45 -0400
--->
- <para>
- Fix <function>json_build_array()</function>,
- <function>json_build_object()</function>, and their <type>jsonb</type>
- equivalents to handle explicit <literal>VARIADIC</literal> arguments
- correctly (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [be72b9c37] 2017-10-30 15:52:02 +0100
-Branch: REL_10_STABLE [52ca7572c] 2017-10-30 15:52:13 +0100
--->
- <para>
- Fix autovacuum's <quote>work item</quote> logic to prevent possible
- crashes and silent loss of work items (Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d5b760ecb] 2017-10-27 17:28:54 -0400
-Branch: REL_10_STABLE [ddde3b4f3] 2017-10-27 17:10:21 -0400
-Branch: REL9_6_STABLE [7e5e8b36d] 2017-10-27 17:10:21 -0400
-Branch: REL9_5_STABLE [acd3287e4] 2017-10-27 17:10:21 -0400
-Branch: REL9_4_STABLE [66104119e] 2017-10-27 17:10:21 -0400
-Branch: REL9_3_STABLE [9d15b8b36] 2017-10-27 17:10:21 -0400
-Branch: REL9_2_STABLE [80e79718d] 2017-10-27 17:10:21 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d76886c2d] 2017-10-27 18:16:24 -0400
-Branch: REL_10_STABLE [291a31c42] 2017-10-27 18:16:25 -0400
-Branch: REL9_6_STABLE [21daada10] 2017-10-27 18:16:25 -0400
-Branch: REL9_5_STABLE [1f81c2cd5] 2017-10-27 18:16:25 -0400
-Branch: REL9_4_STABLE [d01d97c25] 2017-10-27 18:16:25 -0400
-Branch: REL9_3_STABLE [e06b9e9dc] 2017-10-27 18:16:25 -0400
-Branch: REL9_2_STABLE [a4c11c103] 2017-10-27 18:16:25 -0400
--->
- <para>
- Fix corner-case crashes when columns have been added to the end of a
- view (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3ea3e3e8] 2017-10-23 13:57:45 -0400
-Branch: REL_10_STABLE [df4aa6e4e] 2017-10-23 13:57:45 -0400
-Branch: REL9_6_STABLE [285b850d5] 2017-10-23 13:57:45 -0400
-Branch: REL9_5_STABLE [aa0518301] 2017-10-23 13:57:45 -0400
-Branch: REL9_4_STABLE [d8a3be52f] 2017-10-23 13:57:45 -0400
-Branch: REL9_3_STABLE [dde99de11] 2017-10-23 13:57:46 -0400
-Branch: REL9_2_STABLE [900a9fd64] 2017-10-23 13:57:46 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6784d7a1d] 2017-10-27 12:19:09 -0400
-Branch: REL_10_STABLE [8be102242] 2017-10-27 12:19:11 -0400
-Branch: REL9_6_STABLE [cf0331a54] 2017-10-27 12:18:57 -0400
-Branch: REL9_5_STABLE [37fb01cb0] 2017-10-27 12:18:57 -0400
-Branch: REL9_4_STABLE [376ac922d] 2017-10-27 12:18:57 -0400
-Branch: REL9_3_STABLE [be203c36a] 2017-10-27 12:18:57 -0400
-Branch: REL9_2_STABLE [adcfa7bd1] 2017-10-27 12:18:57 -0400
--->
- <para>
- Record proper dependencies when a view or rule
- contains <structname>FieldSelect</structname>
- or <structname>FieldStore</structname> expression nodes (Tom Lane)
- </para>
-
- <para>
- Lack of these dependencies could allow a column or data
- type <command>DROP</command> to go through when it ought to fail,
- thereby causing later uses of the view or rule to get errors.
- This patch does not do anything to protect existing views/rules,
- only ones created in the future.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [36ea99c84] 2017-10-20 17:12:27 -0400
-Branch: REL_10_STABLE [7a5f8de55] 2017-10-20 17:12:27 -0400
-Branch: REL9_6_STABLE [b1752c3a7] 2017-10-20 17:12:27 -0400
-Branch: REL9_5_STABLE [63fbc51e3] 2017-10-20 17:12:27 -0400
-Branch: REL9_4_STABLE [d1ced6114] 2017-10-20 17:12:27 -0400
-Branch: REL9_3_STABLE [7c70a129e] 2017-10-20 17:12:27 -0400
-Branch: REL9_2_STABLE [0270ad1f7] 2017-10-20 17:12:28 -0400
--->
- <para>
- Correctly detect hashability of range data types (Tom Lane)
- </para>
-
- <para>
- The planner mistakenly assumed that any range type could be hashed
- for use in hash joins or hash aggregation, but actually it must check
- whether the range's subtype has hash support. This does not affect any
- of the built-in range types, since they're all hashable anyway.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [e9ef11ac8] 2017-10-12 17:23:47 +0200
-Branch: REL_10_STABLE [a01a3d931] 2017-10-12 17:32:48 +0200
--->
- <para>
- Correctly ignore <structname>RelabelType</structname> expression nodes
- when examining functional-dependency statistics (David Rowley)
- </para>
-
- <para>
- This allows, e.g., extended statistics on <type>varchar</type> columns
- to be used properly.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [52328727b] 2017-10-11 22:18:10 -0400
-Branch: REL_10_STABLE [604723d29] 2017-10-11 22:18:01 -0400
-Branch: REL9_6_STABLE [96cfc7e19] 2017-10-11 22:18:01 -0400
--->
- <para>
- Prevent sharing transition states between ordered-set aggregates
- (David Rowley)
- </para>
-
- <para>
- This causes a crash with the built-in ordered-set aggregates, and
- probably with user-written ones as well. v11 and later will include
- provisions for dealing with such cases safely, but in released
- branches, just disable the optimization.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [f67661665] 2017-10-11 14:02:41 -0700
-Branch: REL_10_STABLE [61ace8fe7] 2017-10-11 14:02:41 -0700
-Branch: REL9_6_STABLE [0da46d75e] 2017-10-11 14:02:41 -0700
--->
- <para>
- Prevent <varname>idle_in_transaction_session_timeout</varname> from
- being ignored when a <varname>statement_timeout</varname> occurred
- earlier (Lukas Fittl)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [118e99c3d] 2017-10-11 14:28:33 -0400
-Branch: REL_10_STABLE [f4cdf781a] 2017-10-11 14:28:33 -0400
-Branch: REL9_6_STABLE [36c687a22] 2017-10-11 14:28:33 -0400
-Branch: REL9_5_STABLE [69bc245d9] 2017-10-11 14:28:33 -0400
-Branch: REL9_4_STABLE [0e84f7075] 2017-10-11 14:28:33 -0400
-Branch: REL9_3_STABLE [7573d122f] 2017-10-11 14:28:33 -0400
-Branch: REL9_2_STABLE [525b09ada] 2017-10-11 14:28:34 -0400
--->
- <para>
- Fix low-probability loss of <command>NOTIFY</command> messages due to
- XID wraparound (Marko Tiikkaja, Tom Lane)
- </para>
-
- <para>
- If a session executed no queries, but merely listened for
- notifications, for more than 2 billion transactions, it started to miss
- some notifications from concurrently-committing transactions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [643c27e36] 2017-10-08 15:25:26 -0400
-Branch: REL_10_STABLE [c3723317d] 2017-10-08 15:25:26 -0400
-Branch: REL9_6_STABLE [13a8924ec] 2017-10-08 15:25:26 -0400
--->
- <para>
- Reduce the frequency of data flush requests during bulk file copies to
- avoid performance problems on macOS, particularly with its new APFS
- file system (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [bab3a714b] 2017-11-05 09:25:52 -0800
-Branch: REL_10_STABLE [2168f37c4] 2017-11-05 09:25:59 -0800
-Branch: REL9_6_STABLE [1cac62dac] 2017-11-05 09:26:28 -0800
-Branch: REL9_5_STABLE [7932891ab] 2017-11-05 09:26:43 -0800
-Branch: REL9_4_STABLE [2a2e2e85e] 2017-11-05 09:26:47 -0800
--->
- <para>
- Allow <command>COPY</command>'s <literal>FREEZE</literal> option to
- work when the transaction isolation level is <literal>REPEATABLE
- READ</literal> or higher (Noah Misch)
- </para>
-
- <para>
- This case was unintentionally broken by a previous bug fix.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [305cf1fd7] 2017-10-12 15:20:16 -0400
-Branch: REL_10_STABLE [d48bf6a94] 2017-10-12 15:20:04 -0400
-Branch: REL9_6_STABLE [aa1e9b3a4] 2017-10-12 15:20:04 -0400
--->
- <para>
- Fix <function>AggGetAggref()</function> to return the
- correct <structname>Aggref</structname> nodes to aggregate final
- functions whose transition calculations have been merged (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [080351466] 2017-10-31 13:40:23 -0400
-Branch: REL_10_STABLE [9cf2b854a] 2017-10-31 13:40:23 -0400
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [51f4d3ed7] 2017-11-01 19:16:14 -0700
-Branch: REL_10_STABLE [f4e13963c] 2017-11-01 19:16:17 -0700
--->
- <para>
- Fix insufficient schema-qualification in some new queries
- in <application>pg_dump</application>
- and <application>psql</application>
- (Vitaly Burovoy, Tom Lane, Noah Misch)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [471d55859] 2017-10-22 16:45:16 -0400
-Branch: REL_10_STABLE [852e3224e] 2017-10-22 16:45:26 -0400
--->
- <para>
- Avoid use of <literal>@></literal> operator
- in <application>psql</application>'s queries for <command>\d</command>
- (Tom Lane)
- </para>
-
- <para>
- This prevents problems when the <application>parray_gin</application>
- extension is installed, since that defines a conflicting operator.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [067a2259f] 2017-11-01 10:20:05 -0400
-Branch: REL_10_STABLE [dd12b5307] 2017-11-01 21:41:45 -0400
-Branch: REL9_6_STABLE [4ba0ffaae] 2017-11-01 21:44:55 -0400
-Branch: REL9_5_STABLE [3064f0e25] 2017-11-01 21:45:11 -0400
--->
- <para>
- Fix <application>pg_basebackup</application>'s matching of tablespace
- paths to canonicalize both paths before comparing (Michael Paquier)
- </para>
-
- <para>
- This is particularly helpful on Windows.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [db6986f47] 2017-10-25 19:32:24 -0400
-Branch: REL_10_STABLE [51e9fffba] 2017-10-25 19:32:24 -0400
-Branch: REL9_6_STABLE [7dc66a2f6] 2017-10-25 19:32:24 -0400
-Branch: REL9_5_STABLE [ee02c1c89] 2017-10-25 19:32:24 -0400
-Branch: REL9_4_STABLE [9f7afb25b] 2017-10-25 19:32:24 -0400
-Branch: REL9_3_STABLE [6dd7a1207] 2017-10-25 19:32:24 -0400
-Branch: REL9_2_STABLE [caeae886e] 2017-10-25 19:32:25 -0400
--->
- <para>
- Fix <application>libpq</application> to not require user's home
- directory to exist (Tom Lane)
- </para>
-
- <para>
- In v10, failure to find the home directory while trying to
- read <filename>~/.pgpass</filename> was treated as a hard error,
- but it should just cause that file to not be found. Both v10 and
- previous release branches made the same mistake when
- reading <filename>~/.pg_service.conf</filename>, though this was less
- obvious since that file is not sought unless a service name is
- specified.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [0af98a95c] 2017-10-26 10:16:04 +0200
-Branch: REL_10_STABLE [65ba1b5c2] 2017-10-26 10:39:37 +0200
-Branch: REL9_6_STABLE [41753604b] 2017-10-26 10:39:46 +0200
-Branch: REL9_5_STABLE [9b01a21fc] 2017-10-26 10:39:54 +0200
-Branch: REL9_4_STABLE [c6a396888] 2017-10-26 10:40:03 +0200
--->
- <para>
- In ecpglib, correctly handle backslashes in string literals depending
- on whether <varname>standard_conforming_strings</varname> is set
- (Tsunakawa Takayuki)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [63d6b97fd] 2017-11-01 13:32:18 +0100
-Branch: REL_10_STABLE [e4381c039] 2017-11-01 13:40:27 +0100
-Branch: REL9_6_STABLE [e0ec1cbff] 2017-11-01 13:40:50 +0100
-Branch: REL9_5_STABLE [d2e6bd13a] 2017-11-01 13:41:00 +0100
-Branch: REL9_4_STABLE [18647e21d] 2017-11-01 13:41:12 +0100
-Branch: REL9_3_STABLE [d64a4d368] 2017-11-01 13:41:21 +0100
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [6976a4f05] 2017-11-02 20:49:47 +0100
-Branch: REL_10_STABLE [ee46980a7] 2017-11-02 20:51:00 +0100
-Branch: REL9_6_STABLE [049dab009] 2017-11-02 20:51:13 +0100
-Branch: REL9_5_STABLE [b6d95939e] 2017-11-02 20:51:23 +0100
-Branch: REL9_4_STABLE [ad24e7bc2] 2017-11-02 20:51:34 +0100
-Branch: REL9_3_STABLE [7a35507ac] 2017-11-02 20:51:44 +0100
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [7164991ca] 2017-11-03 11:15:14 +0100
-Branch: REL_10_STABLE [c63568b06] 2017-11-03 12:41:39 +0100
-Branch: REL9_6_STABLE [6cf68e223] 2017-11-03 12:41:23 +0100
-Branch: REL9_5_STABLE [90d61bd1d] 2017-11-03 12:41:11 +0100
-Branch: REL9_4_STABLE [946f16518] 2017-11-03 12:40:54 +0100
-Branch: REL9_3_STABLE [deb429b51] 2017-11-03 12:40:42 +0100
--->
- <para>
- Make ecpglib's Informix-compatibility mode ignore fractional digits in
- integer input strings, as expected (Gao Zengqi, Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [c66b438db] 2017-11-05 18:51:08 -0800
-Branch: REL_10_STABLE [937f67800] 2017-11-05 18:51:15 -0800
-Branch: REL9_6_STABLE [971983f42] 2017-11-05 18:52:38 -0800
-Branch: REL9_5_STABLE [014c5cd87] 2017-11-05 18:54:52 -0800
--->
- <para>
- Fix missing temp-install prerequisites
- for <literal>check</literal>-like Make targets (Noah Misch)
- </para>
-
- <para>
- Some non-default test procedures that are meant to work
- like <literal>make check</literal> failed to ensure that the temporary
- installation was up to date.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8df4ce1ea] 2017-10-23 18:15:36 -0400
-Branch: REL_10_STABLE [0cde56247] 2017-10-23 18:15:42 -0400
-Branch: REL9_6_STABLE [fae550e52] 2017-10-23 18:15:47 -0400
-Branch: REL9_5_STABLE [1e57d85cd] 2017-10-23 18:15:51 -0400
-Branch: REL9_4_STABLE [ba67fac85] 2017-10-23 18:15:56 -0400
-Branch: REL9_3_STABLE [da82bb1d8] 2017-10-23 18:16:00 -0400
-Branch: REL9_2_STABLE [7e8d84c36] 2017-10-23 18:16:04 -0400
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
- Sudan, Tonga, and Turks & Caicos Islands, plus historical
- corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland,
- Namibia, and Pago Pago.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [49df45acd] 2017-11-03 14:14:02 -0400
-Branch: REL_10_STABLE [5159626af] 2017-11-03 14:14:16 -0400
--->
- <para>
- In the documentation, restore HTML anchors to being upper-case strings
- (Peter Eisentraut)
- </para>
-
- <para>
- Due to a toolchain change, the 10.0 user manual had lower-case strings
- for intrapage anchors, thus breaking some external links into our
- website documentation. Return to our previous convention of using
- upper-case strings.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10">
- <title>Release 10</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-10-05</para>
- </formalpara>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- Major enhancements in <productname>PostgreSQL</productname> 10 include:
- </para>
-
- <!-- Items in this list summarize one or more items below -->
-
- <itemizedlist>
-
- <listitem><para>Logical replication using publish/subscribe</para></listitem>
- <listitem><para>Declarative table partitioning</para></listitem>
- <listitem><para>Improved query parallelism</para></listitem>
- <listitem><para>Significant general performance improvements</para></listitem>
- <listitem><para>Stronger password authentication based on SCRAM-SHA-256</para></listitem>
- <listitem><para>Improved monitoring and control</para></listitem>
- </itemizedlist>
-
- <para>
- The above items are explained in more detail in the sections below.
- </para>
-
- </sect2>
-
- <sect2>
-
- <title>Migration to Version 10</title>
-
- <para>
- A dump/restore using <xref linkend="app-pg-dumpall"/>, or use of <xref
- linkend="pgupgrade"/>, is required for those wishing to migrate data
- from any previous release.
- </para>
-
- <para>
- Version 10 contains a number of changes that may affect compatibility
- with previous releases. Observe the following incompatibilities:
- </para>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-04-03 [ea69a0dea] Expand hash indexes more gradually.
-2017-05-19 [a95410e2e] pg_upgrade: Handle hash index upgrades more smoothly.
-2017-08-04 [620b49a16] hash: Increase the number of possible overflow bitmaps b
--->
- <para>
- Hash indexes must be rebuilt after <application>pg_upgrade</application>-ing
- from any previous major <productname>PostgreSQL</productname> version (Mithun
- Cy, Robert Haas, Amit Kapila)
- </para>
-
- <para>
- Major hash index improvements necessitated this requirement.
- <application>pg_upgrade</application> will create a script to assist with this.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-20 [f82ec32ac] Rename "pg_xlog" directory to "pg_wal"
-2017-03-17 [88e66d193] Rename "pg_clog" directory to "pg_xact".
--->
- <para>
- Rename write-ahead log directory <filename>pg_xlog</filename>
- to <link linkend="wal"><filename>pg_wal</filename></link>, and rename transaction
- status directory <filename>pg_clog</filename> to <filename>pg_xact</filename>
- (Michael Paquier)
- </para>
-
- <para>
- Users have occasionally thought that these directories contained only
- inessential log files, and proceeded to remove write-ahead log files
- or transaction status files manually, causing irrecoverable data
- loss. These name changes are intended to discourage such errors in
- future.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-09 [806091c96] Remove all references to "xlog" from SQL-callable functi
-2017-02-09 [85c11324c] Rename user-facing tools with "xlog" in the name to say
-2017-02-09 [62e8b3875] Rename command line options for ongoing xlog -> wal conv
-2017-02-15 [0dfa89ba2] Replace reference to "xlog-method" with "wal-method" in
--->
- <para>
- Rename <acronym>SQL</acronym> functions, tools, and options that reference
- <quote>xlog</quote> to <quote>wal</quote> (Robert Haas)
- </para>
-
- <para>
- For example, <function>pg_switch_xlog()</function> becomes
- <function>pg_switch_wal()</function>, <application>pg_receivexlog</application>
- becomes <application>pg_receivewal</application>, and <option>--xlogdir</option>
- becomes <option>--waldir</option>. This is for consistency with the
- change of the <filename>pg_xlog</filename> directory name; in general,
- the <quote>xlog</quote> terminology is no longer used in any user-facing
- places.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-05-11 [d10c626de] Rename WAL-related functions and views to use "lsn" not
--->
- <para>
- Rename <acronym>WAL</acronym>-related functions and views to use <literal>lsn</literal>
- instead of <literal>location</literal> (David Rowley)
- </para>
-
- <para>
- There was previously an inconsistent mixture of the two terminologies.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-16 [d43a619c6] Fix check_srf_call_placement() to handle VALUES cases co
-2017-01-18 [69f4b9c85] Move targetlist SRF handling from expression evaluation
-2017-01-18 [f13a1277a] Doc: improve documentation of new SRF-in-tlist behavior.
-2017-06-13 [0436f6bde] Disallow set-returning functions inside CASE or COALESCE
--->
- <para>
- Change the implementation of set-returning functions appearing in
- a query's <literal>SELECT</literal> list (Andres Freund)
- </para>
-
- <para>
- Set-returning functions are now evaluated before evaluation of scalar
- expressions in the <literal>SELECT</literal> list, much as though they had
- been placed in a <literal>LATERAL FROM</literal>-clause item. This allows
- saner semantics for cases where multiple set-returning functions are
- present. If they return different numbers of rows, the shorter results
- are extended to match the longest result by adding nulls. Previously
- the results were cycled until they all terminated at the same time,
- producing a number of rows equal to the least common multiple of the
- functions' periods. In addition, set-returning functions are now
- disallowed within <literal>CASE</literal> and <literal>COALESCE</literal> constructs.
- For more information
- see <xref linkend="xfunc-sql-functions-returning-set"/>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-22 [906bfcad7] Improve handling of "UPDATE ... SET (column_list) = row_
--->
- <para>
- Use standard row constructor syntax in <literal>UPDATE ... SET
- (<replaceable>column_list</replaceable>) = <replaceable>row_constructor</replaceable></literal>
- (Tom Lane)
- </para>
-
- <para>
- The <replaceable>row_constructor</replaceable> can now begin with the
- keyword <literal>ROW</literal>; previously that had to be omitted.
- If just one column name appears in
- the <replaceable>column_list</replaceable>, then
- the <replaceable>row_constructor</replaceable> now must use
- the <literal>ROW</literal> keyword, since otherwise it is not a valid
- row constructor but just a parenthesized expression.
- Also, an occurrence
- of <literal><replaceable>table_name</replaceable>.*</literal> within
- the <replaceable>row_constructor</replaceable> is now expanded into
- multiple columns, as occurs in other uses
- of <replaceable>row_constructor</replaceable>s.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-04 [c30f1770a] Apply ALTER ... SET NOT NULL recursively in ALTER ... AD
--->
- <para>
- When <command>ALTER TABLE ... ADD PRIMARY KEY</command> marks
- columns <literal>NOT NULL</literal>, that change now propagates to
- inheritance child tables as well (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-09-16 [54d4d0ff6] Fix SQL-spec incompatibilities in new transition table f
-2017-09-17 [5cc234931] Ensure that BEFORE STATEMENT triggers fire the right num
--->
- <para>
- Prevent statement-level triggers from firing more than once per
- statement (Tom Lane)
- </para>
-
- <para>
- Cases involving writable CTEs updating the same table updated by the
- containing statement, or by another writable CTE, fired <literal>BEFORE
- STATEMENT</literal> or <literal>AFTER STATEMENT</literal> triggers more than once.
- Also, if there were statement-level triggers on a table affected by a
- foreign key enforcement action (such as <literal>ON DELETE CASCADE</literal>),
- they could fire more than once per outer SQL statement. This is
- contrary to the SQL standard, so change it.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-20 [1753b1b02] Add pg_sequence system catalog
-2016-11-18 [67dc4ccbb] Add pg_sequences view
-2017-05-15 [f8dc1985f] Fix ALTER SEQUENCE locking
-2017-06-01 [3d79013b9] Make ALTER SEQUENCE, including RESTART, fully transactio
-2017-09-29 [5cc5987ce] psql: Update \d sequence display
--->
- <para>
- Move sequences' metadata fields into a new <link
- linkend="catalog-pg-sequence"><structname>pg_sequence</structname></link>
- system catalog (Peter Eisentraut)
- </para>
-
- <para>
- A sequence relation now stores only the fields that can be modified
- by <function>nextval()</function>, that
- is <structfield>last_value</structfield>, <structfield>log_cnt</structfield>,
- and <structfield>is_called</structfield>. Other sequence properties, such as
- the starting value and increment, are kept in a corresponding row of
- the <structname>pg_sequence</structname> catalog.
- <command>ALTER SEQUENCE</command> updates are now fully transactional,
- implying that the sequence is locked until commit.
- The <function>nextval()</function> and <function>setval()</function> functions
- remain nontransactional.
- </para>
-
- <para>
- The main incompatibility introduced by this change is that selecting
- from a sequence relation now returns only the three fields named
- above. To obtain the sequence's other properties, applications must
- look into <structname>pg_sequence</structname>. The new system
- view <link linkend="view-pg-sequences"><structname>pg_sequences</structname></link>
- can also be used for this purpose; it provides column names that are
- more compatible with existing code.
- </para>
-
- <para>
- Also, sequences created for <literal>SERIAL</literal> columns now generate
- positive 32-bit wide values, whereas previous versions generated 64-bit
- wide values. This has no visible effect if the values are only stored in
- a column.
- </para>
-
- <para>
- The output of <application>psql</application>'s <command>\d</command> command for a
- sequence has been redesigned, too.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-04 [9a4d51077] Make wal streaming the default mode for pg_basebackup
--->
- <para>
- Make <application><xref linkend="app-pgbasebackup"/></application> stream the
- <acronym>WAL</acronym> needed to restore the backup by default (Magnus
- Hagander)
- </para>
-
- <para>
- This changes <application>pg_basebackup</application>'s
- <option>-X</option>/<option>--wal-method</option> default to <literal>stream</literal>.
- An option value <literal>none</literal> has been added to reproduce the old
- behavior. The <application>pg_basebackup</application> option <option>-x</option>
- has been removed (instead, use <literal>-X fetch</literal>).
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-13 [8df9bd0b4] Change logical replication pg_hba.conf use
--->
- <para>
- Change how logical replication
- uses <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
- (Peter Eisentraut)
- </para>
-
- <para>
- In previous releases, a logical replication connection required
- the <literal>replication</literal> keyword in the database column. As
- of this release, logical replication matches a normal entry with a
- database name or keywords such as <literal>all</literal>. Physical
- replication continues to use the <literal>replication</literal> keyword.
- Since built-in logical replication is new in this release, this
- change only affects users of third-party logical replication plugins.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-14 [05cd12ed5] pg_ctl: Change default to wait for all actions
--->
- <para>
- Make all <application><xref linkend="app-pg-ctl"/></application> actions wait
- for completion by default (Peter Eisentraut)
- </para>
-
- <para>
- Previously some <application>pg_ctl</application> actions didn't wait for
- completion, and required the use of <option>-w</option> to do so.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [3371e4d9b] Change default of log_directory to 'log'
--->
- <para>
- Change the default value of the <xref linkend="guc-log-directory"/>
- server parameter from <filename>pg_log</filename> to <filename>log</filename>
- (Andreas Karlsson)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-31 [c0a15e07c] Always use 2048 bit DH parameters for OpenSSL ephemeral
--->
- <para>
- Add configuration option <xref linkend="guc-ssl-dh-params-file"/> to
- specify file name for custom OpenSSL DH parameters (Heikki Linnakangas)
- </para>
-
- <para>
- This replaces the hardcoded, undocumented file
- name <filename>dh1024.pem</filename>. Note that <filename>dh1024.pem</filename> is
- no longer examined by default; you must set this option if you want
- to use custom DH parameters.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-31 [c0a15e07c] Always use 2048 bit DH parameters for OpenSSL ephemeral
--->
- <para>
- Increase the size of the default DH parameters used for OpenSSL
- ephemeral DH ciphers to 2048 bits (Heikki Linnakangas)
- </para>
-
- <para>
- The size of the compiled-in DH parameters has been increased from
- 1024 to 2048 bits, making DH key exchange more resistant to
- brute-force attacks. However, some old SSL implementations, notably
- some revisions of Java Runtime Environment version 6, will not accept
- DH parameters longer than 1024 bits, and hence will not be able to
- connect over SSL. If it's necessary to support such old clients, you
- can use custom 1024-bit DH parameters instead of the compiled-in
- defaults. See <xref linkend="guc-ssl-dh-params-file"/>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-05-08 [eb61136dc] Remove support for password_encryption='off' / 'plain'.
--->
- <para>
- Remove the ability to store unencrypted passwords on the server
- (Heikki Linnakangas)
- </para>
-
- <para>
- The <xref linkend="guc-password-encryption"/> server parameter
- no longer supports <literal>off</literal> or <literal>plain</literal>.
- The <literal>UNENCRYPTED</literal> option is no longer supported in
- <command>CREATE/ALTER USER ... PASSWORD</command>. Similarly, the
- <option>--unencrypted</option> option has been removed
- from <application>createuser</application>. Unencrypted passwords migrated from
- older versions will be stored encrypted in this release. The default
- setting for <varname>password_encryption</varname> is still
- <literal>md5</literal>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-15 [51ee6f316] Replace min_parallel_relation_size with two new GUCs.
--->
- <para>
- Add <xref linkend="guc-min-parallel-table-scan-size"/>
- and <xref linkend="guc-min-parallel-index-scan-size"/> server
- parameters to control parallel queries (Amit Kapila, Robert Haas)
- </para>
-
- <para>
- These replace <varname>min_parallel_relation_size</varname>, which was
- found to be too generic.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-20 [a69dfe5f4] Don't downcase entries within shared_preload_libraries e
--->
- <para>
- Don't downcase unquoted text
- within <xref linkend="guc-shared-preload-libraries"/> and related
- server parameters (QL Zhuo)
- </para>
-
- <para>
- These settings are really lists of file names, but they were
- previously treated as lists of SQL identifiers, which have different
- parsing rules.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-23 [e13486eba] Remove sql_inheritance GUC.
--->
- <para>
- Remove <varname>sql_inheritance</varname> server parameter (Robert Haas)
- </para>
-
- <para>
- Changing this setting from the default value caused queries referencing
- parent tables to not include child tables. The <acronym>SQL</acronym>
- standard requires them to be included, however, and this has been the
- default since <productname>PostgreSQL</productname> 7.1.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-26 [94aceed31] Support multi-dimensional arrays in PL/python.
-2016-10-26 [cfd9c87a5] Only treat Python Lists as array dimensions.
--->
- <para>
- Allow multi-dimensional arrays to be passed into PL/Python functions,
- and returned as nested Python lists (Alexey Grishchenko, Dave Cramer,
- Heikki Linnakangas)
- </para>
-
- <para>
- This feature requires a backwards-incompatible change to the handling
- of arrays of composite types in PL/Python. Previously, you could
- return an array of composite values by writing, e.g., <literal>[[col1,
- col2], [col1, col2]]</literal>; but now that is interpreted as a
- two-dimensional array. Composite types in arrays must now be written
- as Python tuples, not lists, to resolve the ambiguity; that is,
- write <literal>[(col1, col2), (col1, col2)]</literal> instead.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-27 [817f2a586] Remove PL/Tcl's "module" facility.
--->
- <para>
- Remove PL/Tcl's <quote>module</quote> auto-loading facility (Tom Lane)
- </para>
-
- <para>
- This functionality has been replaced by new server
- parameters <xref linkend="guc-pltcl-start-proc"/>
- and <xref linkend="guc-pltclu-start-proc"/>, which are easier to use
- and more similar to features available in other PLs.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-12 [64f3524e2] Remove pg_dump/pg_dumpall support for dumping from pre-8
--->
- <para>
- Remove <application>pg_dump</application>/<application>pg_dumpall</application> support
- for dumping from pre-8.0 servers (Tom Lane)
- </para>
-
- <para>
- Users needing to dump from pre-8.0 servers will need to use dump
- programs from <productname>PostgreSQL</productname> 9.6 or earlier. The
- resulting output should still load successfully into newer servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-23 [b6aa17e0a] De-support floating-point timestamps.
--->
- <para>
- Remove support for floating-point timestamps and intervals (Tom Lane)
- </para>
-
- <para>
- This removes configure's <option>--disable-integer-datetimes</option>
- option. Floating-point timestamps have few advantages and have not
- been the default since <productname>PostgreSQL</productname> 8.3.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-11 [2f1eaf87e] Drop server support for FE/BE protocol version 1.0.
--->
- <para>
- Remove server support for client/server protocol version 1.0 (Tom Lane)
- </para>
-
- <para>
- This protocol hasn't had client support
- since <productname>PostgreSQL</productname> 6.3.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-13 [7ada2d31f] Remove contrib/tsearch2.
--->
- <para>
- Remove <filename>contrib/tsearch2</filename> module (Robert Haas)
- </para>
-
- <para>
- This module provided compatibility with the version of full text
- search that shipped in pre-8.3 <productname>PostgreSQL</productname> releases.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [50c956add] Remove createlang and droplang
--->
- <para>
- Remove <application>createlang</application> and <application>droplang</application>
- command-line applications (Peter Eisentraut)
- </para>
-
- <para>
- These had been deprecated since <productname>PostgreSQL</productname> 9.1.
- Instead, use <command>CREATE EXTENSION</command> and <command>DROP
- EXTENSION</command> directly.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-30 [5ded4bd21] Remove support for version-0 calling conventions.
--->
- <para>
- Remove support for version-0 function calling conventions (Andres
- Freund)
- </para>
-
- <para>
- Extensions providing C-coded functions must now conform to version 1
- calling conventions. Version 0 has been deprecated since 2001.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <para>
- Below you will find a detailed account of the changes between
- <productname>PostgreSQL</productname> 10 and the previous major
- release.
- </para>
-
- <sect3>
- <title>Server</title>
-
- <sect4>
- <title>Parallel Queries</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-02-15 [569174f1b] btree: Support parallel index scans.
-2017-02-15 [5262f7a4f] Add optimizer and executor support for parallel index sc
-2017-02-19 [0414b26ba] Add optimizer and executor support for parallel index-on
--->
- <para>
- Support parallel B-tree index scans (Rahila Syed, Amit Kapila,
- Robert Haas, Rafia Sabih)
- </para>
-
- <para>
- This change allows B-tree index pages to be searched by separate
- parallel workers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-08 [98e6e8904] tidbitmap: Support shared iteration.
-2017-03-08 [f35742ccb] Support parallel bitmap heap scans.
--->
- <para>
- Support parallel bitmap heap scans (Dilip Kumar)
- </para>
-
- <para>
- This allows a single index scan to dispatch parallel workers to
- process different areas of the heap.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [3bc7dafa9] Consider parallel merge joins.
--->
- <para>
- Allow merge joins to be performed in parallel (Dilip Kumar)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-14 [5e6d8d2bb] Allow parallel workers to execute subplans.
--->
- <para>
- Allow non-correlated subqueries to be run in parallel (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-09 [355d3993c] Add a Gather Merge executor node.
--->
- <para>
- Improve ability of parallel workers to return pre-sorted data
- (Rushabh Lathia)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-24 [61c2e1a95] Improve access to parallel query from procedural languag
--->
- <para>
- Increase parallel query usage in procedural language functions
- (Robert Haas, Rafia Sabih)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-02 [b460f5d66] Add max_parallel_workers GUC.
-2016-12-05 [2b959d495] Reduce the default for max_worker_processes back to 8.
--->
- <para>
- Add <xref linkend="guc-max-parallel-workers"/> server parameter
- to limit the number of worker processes that can be used for
- query parallelism (Julien Rouhaud)
- </para>
-
- <para>
- This parameter can be set lower than <xref
- linkend="guc-max-worker-processes"/> to reserve worker processes
- for purposes other than parallel queries.
- </para>
- </listitem>
-
- <listitem>
-<!--
-This was disabled in the PG 9.6 branch so there is no commit here.
--->
- <para>
- Enable parallelism by default by changing the default setting
- of <xref linkend="guc-max-parallel-workers-per-gather"/> to
- <literal>2</literal>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Indexes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-02-27 [30df93f69] hash: Refactor overflow page allocation.
-2017-03-14 [c11453ce0] hash: Add write-ahead logging support.
-2017-02-27 [b0f18cb77] hash: Refactor bucket squeeze code.
--->
- <para>
- Add write-ahead logging support to hash indexes (Amit Kapila)
- </para>
-
- <para>
- This makes hash indexes crash-safe and replicatable.
- The former warning message about their use is removed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-30 [6d46f4783] Improve hash index bucket split behavior.
-2017-02-07 [293e24e50] Cache hash index's metapage in rel->rd_amcache.
-2017-03-15 [6977b8b7f] Port single-page btree vacuum logic to hash indexes.
-2017-04-03 [ea69a0dea] Expand hash indexes more gradually.
-2017-08-04 [620b49a16] hash: Increase the number of possible overflow bitmaps b
--->
- <para>
- Improve hash index performance (Amit Kapila, Mithun Cy, Ashutosh
- Sharma)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-23 [77e290682] Create an SP-GiST opclass for inet/cidr.
--->
- <para>
- Add <acronym>SP-GiST</acronym> index support for <type>INET</type> and
- <type>CIDR</type> data types (Emre Hasegeli)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-01 [7526e1022] BRIN auto-summarization
--->
- <para>
- Add option to allow <acronym>BRIN</acronym> index summarization to happen
- more aggressively (Álvaro Herrera)
- </para>
-
- <para>
- A new <link linkend="sql-createindex"><command>CREATE
- INDEX</command></link> option enables auto-summarization of the
- previous <acronym>BRIN</acronym> page range when a new page
- range is created.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-01 [c655899ba] BRIN de-summarization
--->
- <para>
- Add functions to remove and re-add <acronym>BRIN</acronym>
- summarization for <acronym>BRIN</acronym> index ranges (Álvaro
- Herrera)
- </para>
-
- <para>
- The new <acronym>SQL</acronym> function <link
- linkend="functions-admin-index-table"><function>brin_summarize_range()</function></link>
- updates <acronym>BRIN</acronym> index summarization for a specified
- range and <function>brin_desummarize_range()</function> removes it.
- This is helpful to update summarization of a range that is now
- smaller due to <command>UPDATE</command>s and <command>DELETE</command>s.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [7e534adcd] Fix BRIN cost estimation
--->
- <para>
- Improve accuracy in determining if a <acronym>BRIN</acronym> index scan
- is beneficial (David Rowley, Emre Hasegeli)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-09 [b1328d78f] Invent PageIndexTupleOverwrite, and teach BRIN and GiST
--->
- <para>
- Allow faster <acronym>GiST</acronym> inserts and updates by reusing
- index space more efficiently (Andrey Borodin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [218f51584] Reduce page locking in GIN vacuum
--->
- <para>
- Reduce page locking during vacuuming of <acronym>GIN</acronym> indexes
- (Andrey Borodin)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
-
- <title>Locking</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-06 [21d4e2e20] Reduce lock levels for table storage params related to p
-2017-04-05 [68ea2b7f9] Reduce lock level for CREATE STATISTICS
--->
- <para>
- Reduce locking required to change table parameters (Simon Riggs,
- Fabrízio Mello)
- </para>
-
- <para>
- For example, changing a table's <xref
- linkend="guc-effective-io-concurrency"/> setting can now be done
- with a more lightweight lock.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-07 [c63172d60] Add GUCs for predicate lock promotion thresholds.
--->
- <para>
- Allow tuning of predicate lock promotion thresholds (Dagfinn
- Ilmari Mannsåker)
- </para>
-
- <para>
- Lock promotion can now be controlled through two new server
- parameters, <xref
- linkend="guc-max-pred-locks-per-relation"/> and
- <xref linkend="guc-max-pred-locks-per-page"/>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Optimizer</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-24 [7b504eb28] Implement multivariate n-distinct coefficients
-2017-04-05 [2686ee1b7] Collect and use multi-column dependency stats
-2017-05-12 [bc085205c] Change CREATE STATISTICS syntax
--->
- <para>
- Add multi-column optimizer statistics to compute the correlation
- ratio and number of distinct values (Tomas Vondra, David Rowley,
- Álvaro Herrera)
- </para>
-
- <para>
- New commands are <link
- linkend="sql-createstatistics"><command>CREATE STATISTICS</command></link>,
- <link linkend="sql-alterstatistics"><command>ALTER STATISTICS</command></link>, and
- <link linkend="sql-dropstatistics"><command>DROP STATISTICS</command></link>.
- This feature is helpful in estimating query memory usage and when
- combining the statistics from individual columns.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-18 [215b43cdc] Improve RLS planning by marking individual quals with se
--->
- <para>
- Improve performance of queries affected by row-level security
- restrictions (Tom Lane)
- </para>
-
- <para>
- The optimizer now has more knowledge about where it can place RLS
- filter conditions, allowing better plans to be generated while still
- enforcing the RLS conditions safely.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>General Performance</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-02 [9cca11c91] Speed up SUM calculation in numeric aggregates.
--->
- <para>
- Speed up aggregate functions that calculate a running sum
- using <type>numeric</type>-type arithmetic, including some variants
- of <function>SUM()</function>, <function>AVG()</function>,
- and <function>STDDEV()</function> (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-13 [aeed17d00] Use radix tree for character encoding conversions.
--->
- <para>
- Improve performance of character encoding conversions by
- using radix trees (Kyotaro Horiguchi, Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-25 [b8d7f053c] Faster expression evaluation and targetlist projection.
-2017-07-30 [cc9f08b6b] Move ExecProcNode from dispatch to function pointer base
--->
- <para>
- Reduce expression evaluation overhead during query execution,
- as well as plan node calling overhead (Andres Freund)
- </para>
-
- <para>
- This is particularly helpful for queries that process many rows.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [b5635948a] Support hashed aggregation with grouping sets.
--->
- <para>
- Allow hashed aggregation to be used with grouping sets (Andrew
- Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-07 [9c7f5229a] Optimize joins when the inner relation can be proven uni
-2017-06-03 [23886581b] Fix old corner-case logic error in final_cost_nestloop()
--->
- <para>
- Use uniqueness guarantees to optimize certain join types (David
- Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-29 [f90d23d0c] Implement SortSupport for macaddr data type
--->
- <para>
- Improve sort performance of the <type>macaddr</type> data type (Brandur Leach)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [090010f2e] Improve performance of find_tabstat_entry()/get_tabstat_
--->
- <para>
- Reduce statistics tracking overhead in sessions that reference
- many thousands of relations (Aleksander Alekseev)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Monitoring</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-08 [f9b1a0dd4] Expose explain's SUMMARY option
--->
- <para>
- Allow explicit control
- over <link linkend="sql-explain"><command>EXPLAIN</command></link>'s display
- of planning and execution time (Ashutosh Bapat)
- </para>
-
- <para>
- By default planning and execution time are displayed by
- <command>EXPLAIN ANALYZE</command> and are not displayed in other cases.
- The new <command>EXPLAIN</command> option <literal>SUMMARY</literal> allows
- explicit control of this.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-30 [25fff4079] Default monitoring roles
--->
- <para>
- Add default monitoring roles (Dave Page)
- </para>
-
- <para>
- New roles <literal>pg_monitor</literal>, <literal>pg_read_all_settings</literal>,
- <literal>pg_read_all_stats</literal>, and <literal>pg_stat_scan_tables</literal>
- allow simplified permission configuration.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-18 [17f8ffa1e] Fix REFRESH MATERIALIZED VIEW to report activity to the
--->
- <para>
- Properly update the statistics collector during <link
- linkend="sql-refreshmaterializedview"><command>REFRESH MATERIALIZED
- VIEW</command></link> (Jim Mlodgenski)
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect5>
- <title>Logging</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-10-17 [7d3235ba4] By default, set log_line_prefix = '%m [%p] '.
--->
- <para>
- Change the default value of <xref linkend="guc-log-line-prefix"/>
- to include current timestamp (with milliseconds) and the process ID
- in each line of postmaster log output (Christoph Berg)
- </para>
-
- <para>
- The previous default was an empty prefix.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-16 [befd73c50] Add pg_ls_logdir() and pg_ls_waldir() functions.
--->
- <para>
- Add functions to return the log and <acronym>WAL</acronym> directory
- contents (Dave Page)
- </para>
-
- <para>
- The new functions
- are <link linkend="functions-admin-genfile-table"><function>pg_ls_logdir()</function></link>
- and <link linkend="functions-admin-genfile-table"><function>pg_ls_waldir()</function></link>
- and can be executed by non-superusers with the proper
- permissions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-03 [19dc233c3] Add pg_current_logfile() function.
--->
- <para>
- Add function <link
- linkend="functions-info-session-table"><function>pg_current_logfile()</function></link>
- to read logging collector's current stderr and csvlog output file names
- (Gilles Darold)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-10 [f9dfa5c97] Improve postmaster's logging of listen socket creation.
-2017-03-14 [2b32ac2a5] Include port number when logging successful binding to a
--->
- <para>
- Report the address and port number of each listening socket
- in the server log during postmaster startup (Tom Lane)
- </para>
-
- <para>
- Also, when logging failure to bind a listening socket, include
- the specific address we attempted to bind to.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-10 [6ec4c8584] Reduce log verbosity of startup/shutdown for launcher su
--->
- <para>
- Reduce log chatter about the starting and stopping of launcher
- subprocesses (Tom Lane)
- </para>
-
- <para>
- These are now <literal>DEBUG1</literal>-level messages.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-17 [a43f1939d] Remove or reduce verbosity of some debug messages.
--->
- <para>
- Reduce message verbosity of lower-numbered debug levels
- controlled by
- <xref linkend="guc-log-min-messages"/> (Robert Haas)
- </para>
-
- <para>
- This also changes the verbosity of <xref
- linkend="guc-client-min-messages"/> debug levels.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
-
- <sect5>
- <title><link linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname></link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-10-04 [6f3bd98eb] Extend framework from commit 53be0b1ad to report latch w
-2017-03-18 [249cf070e] Create and use wait events for read, write, and fsync op
--->
- <para>
- Add <structname>pg_stat_activity</structname> reporting of low-level wait
- states (Michael Paquier, Robert Haas, Rushabh Lathia)
- </para>
-
- <para>
- This change enables reporting of numerous low-level wait conditions,
- including latch waits, file reads/writes/fsyncs, client reads/writes,
- and synchronous replication.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-12 [fc3d4a44e] Identify walsenders in pg_stat_activity
-2017-03-26 [fc70a4b0d] Show more processes in pg_stat_activity.
--->
- <para>
- Show auxiliary processes, background workers, and walsender
- processes in <structname>pg_stat_activity</structname> (Kuntal Ghosh,
- Michael Paquier)
- </para>
-
- <para>
- This simplifies monitoring. A new
- column <structfield>backend_type</structfield> identifies the process type.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-22 [4c728f382] Pass the source text for a parallel query to the workers
--->
- <para>
- Allow <structname>pg_stat_activity</structname> to show the SQL query
- being executed by parallel workers (Rafia Sabih)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-16 [3761fe3c2] Simplify LWLock tranche machinery by removing array_base
--->
- <para>
- Rename
- <structname>pg_stat_activity</structname>.<structfield>wait_event_type</structfield>
- values <literal>LWLockTranche</literal> and
- <literal>LWLockNamed</literal> to <literal>LWLock</literal> (Robert Haas)
- </para>
-
- <para>
- This makes the output more consistent.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
- </sect4>
-
- <sect4>
- <title><acronym>Authentication</acronym></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-07 [818fd4a67] Support SCRAM-SHA-256 authentication (RFC 5802 and 7677)
-2017-03-24 [7ac955b34] Allow SCRAM authentication, when pg_hba.conf says 'md5'.
-2017-04-07 [60f11b87a] Use SASLprep to normalize passwords for SCRAM authentica
-2017-04-18 [c727f120f] Rename "scram" to "scram-sha-256" in pg_hba.conf and pas
--->
- <para>
- Add <link linkend="auth-password">SCRAM-SHA-256</link>
- support for password negotiation and storage (Michael Paquier,
- Heikki Linnakangas)
- </para>
-
- <para>
- This provides better security than the existing <literal>md5</literal>
- negotiation and storage method.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-28 [babe05bc2] Turn password_encryption GUC into an enum.
--->
- <para>
- Change the <xref linkend="guc-password-encryption"/> server parameter
- from <type>boolean</type> to <type>enum</type> (Michael Paquier)
- </para>
-
- <para>
- This was necessary to support additional password hashing options.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-30 [de16ab723] Invent pg_hba_file_rules view to show the content of pg_
--->
- <para>
- Add view <link
- linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</structname></link>
- to display the contents of <filename>pg_hba.conf</filename> (Haribabu
- Kommi)
- </para>
-
- <para>
- This shows the file contents, not the currently active settings.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [6b76f1bb5] Support multiple RADIUS servers
--->
- <para>
- Support multiple <acronym>RADIUS</acronym> servers (Magnus Hagander)
- </para>
-
- <para>
- All the <acronym>RADIUS</acronym> related parameters are now plural and
- support a comma-separated list of servers.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Server Configuration</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-01-02 [de41869b6] Allow SSL configuration to be updated at SIGHUP.
-2017-01-03 [1e942c747] Disable prompting for passphrase while (re)loading SSL c
-2017-01-04 [6667d9a6d] Re-allow SSL passphrase prompt at server start, but not
--->
- <para>
- Allow <acronym>SSL</acronym> configuration to be updated during
- configuration reload (Andreas Karlsson, Tom Lane)
- </para>
-
- <para>
- This allows <acronym>SSL</acronym> to be reconfigured without a server
- restart, by using <command>pg_ctl reload</command>, <command>SELECT
- pg_reload_conf()</command>, or sending a <literal>SIGHUP</literal> signal.
- However, reloading the <acronym>SSL</acronym> configuration does not work
- if the server's <acronym>SSL</acronym> key requires a passphrase, as there
- is no way to re-prompt for the passphrase. The original
- configuration will apply for the life of the postmaster in that
- case.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-02 [14ca9abfb] Increase upper bound for bgwriter_lru_maxpages.
--->
- <para>
- Make the maximum value of <xref
- linkend="guc-bgwriter-lru-maxpages"/> effectively unlimited
- (Jim Nasby)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Reliability</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-27 [1b02be21f] Fsync directory after creating or unlinking file.
--->
- <para>
- After creating or unlinking files, perform an fsync on their parent
- directory (Michael Paquier)
- </para>
-
- <para>
- This reduces the risk of data loss after a power failure.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect5>
- <title><link linkend="wal">Write-Ahead Log</link> (<acronym>WAL</acronym>)</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-12-22 [6ef2eba3f] Skip checkpoints, archiving on idle systems.
--->
- <para>
- Prevent unnecessary checkpoints and <acronym>WAL</acronym> archiving on
- otherwise-idle systems (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-08 [a507b8690] Add WAL consistency checking facility.
-2017-03-14 [bb4a39637] hash: Support WAL consistency checking.
--->
- <para>
- Add <xref linkend="guc-wal-consistency-checking"/> server parameter
- to add details to <acronym>WAL</acronym> that can be sanity-checked on
- the standby (Kuntal Ghosh, Robert Haas)
- </para>
-
- <para>
- Any sanity-check failure generates a fatal error on the standby.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-05 [00b6b6feb] Allow -\-with-wal-segsize=n up to n=1024MB
--->
- <para>
- Increase the maximum configurable <acronym>WAL</acronym> segment size
- to one gigabyte (Beena Emerson)
- </para>
-
- <para>
- A larger <acronym>WAL</acronym> segment size allows for fewer
- <xref linkend="guc-archive-command"/> invocations and fewer
- <acronym>WAL</acronym> files to manage.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Replication and Recovery</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-01-20 [665d1fad9] Logical replication
-2017-03-23 [7c4f52409] Logical replication support for initial data copy
-2017-04-12 [ff7bce174] Add max_sync_workers_per_subscription to postgresql.conf
--->
- <para>
- Add the ability to <link linkend="logical-replication">logically
- replicate</link> tables to standby servers (Petr Jelinek)
- </para>
-
- <para>
- Logical replication allows more flexibility than physical
- replication does, including replication between different major
- versions of <productname>PostgreSQL</productname> and selective
- replication.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-19 [3901fd70c] Support quorum-based synchronous replication.
--->
- <para>
- Allow waiting for commit acknowledgment from standby
- servers irrespective of the order they appear in <xref
- linkend="guc-synchronous-standby-names"/> (Masahiko Sawada)
- </para>
-
- <para>
- Previously the server always waited for the active standbys that
- appeared first in <varname>synchronous_standby_names</varname>. The new
- <varname>synchronous_standby_names</varname> keyword <literal>ANY</literal> allows
- waiting for any number of standbys irrespective of their ordering.
- This is known as quorum commit.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-14 [f6d6d2920] Change default values for backup and replication paramet
-2017-05-02 [34fc61673] Change hot_standby default value to 'on'
--->
- <para>
- Reduce configuration changes necessary to perform streaming backup
- and replication (Magnus Hagander, Dang Minh Huong)
- </para>
-
- <para>
- Specifically, the defaults were changed for <xref
- linkend="guc-wal-level"/>, <xref linkend="guc-max-wal-senders"/>,
- <xref linkend="guc-max-replication-slots"/>, and <xref
- linkend="guc-hot-standby"/> to make them suitable for these usages
- out-of-the-box.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-09 [be37c2120] Enable replication connections by default in pg_hba.conf
--->
- <para>
- Enable replication from localhost connections by default in
- <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
- (Michael Paquier)
- </para>
-
- <para>
- Previously <filename>pg_hba.conf</filename>'s replication connection
- lines were commented out by default. This is particularly useful for
- <application><xref linkend="app-pgbasebackup"/></application>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [6912acc04] Replication lag tracking for walsenders
--->
- <para>
- Add columns to <link
- linkend="pg-stat-replication-view"><structname>pg_stat_replication</structname></link>
- to report replication delay times (Thomas Munro)
- </para>
-
- <para>
- The new columns are <structfield>write_lag</structfield>,
- <structfield>flush_lag</structfield>, and <structfield>replay_lag</structfield>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-03 [35250b6ad] New recovery target recovery_target_lsn
--->
- <para>
- Allow specification of the recovery stopping point by Log Sequence
- Number (<acronym>LSN</acronym>) in
- <filename>recovery.conf</filename>
- (Michael Paquier)
- </para>
-
- <para>
- Previously the stopping point could only be selected by timestamp or
- XID.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [017e4f258] Expose waitforarchive option through pg_stop_backup()
-2017-08-05 [52f8a59dd] Make pg_stop_backup's wait_for_archive flag work on stan
--->
- <para>
- Allow users to disable <link
- linkend="functions-admin"><function>pg_stop_backup()</function></link>'s
- waiting for all <acronym>WAL</acronym> to be archived (David Steele)
- </para>
-
- <para>
- An optional second argument to <function>pg_stop_backup()</function>
- controls that behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-12 [a924c327e] Add support for temporary replication slots
--->
- <para>
- Allow creation of <link
- linkend="functions-replication-table">temporary replication slots</link>
- (Petr Jelinek)
- </para>
-
- <para>
- Temporary slots are automatically removed on session exit or error.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [9b013dc23] Improve performance of replay of AccessExclusiveLocks
--->
- <para>
- Improve performance of hot standby replay with better tracking of
- Access Exclusive locks (Simon Riggs, David Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-04 [728bd991c] Speedup 2PC recovery by skipping two phase state files i
--->
- <para>
- Speed up two-phase commit recovery performance (Stas Kelvich,
- Nikhil Sontakke, Michael Paquier)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Queries</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-08 [fcec6caaf] Support XMLTABLE query expression
--->
- <para>
- Add <link
- linkend="functions-xml-processing-xmltable"><function>XMLTABLE</function></link>
- function that converts <type>XML</type>-formatted data into a row set
- (Pavel Stehule, Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-05 [c54159d44] Make locale-dependent regex character classes work for l
--->
- <para>
- Fix regular expressions' character class handling for large character
- codes, particularly Unicode characters above <literal>U+7FF</literal>
- (Tom Lane)
- </para>
-
- <para>
- Previously, such characters were never recognized as belonging to
- locale-dependent character classes such as <literal>[[:alpha:]]</literal>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Utility Commands</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-12-07 [f0e44751d] Implement table partitioning.
--->
- <para>
- Add table <link linkend="sql-createtable-partition">partitioning
- syntax</link> that automatically creates partition constraints and
- handles routing of tuple insertions and updates (Amit Langote)
- </para>
-
- <para>
- The syntax supports range and list partitioning.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-04 [8c48375e5] Implement syntax for transition tables in AFTER triggers
-2017-04-04 [5ebeb579b] Follow-on cleanup for the transition table patch.
-2017-03-31 [597027163] Add transition table support to plpgsql.
--->
- <para>
- Add <link linkend="sql-createtrigger"><literal>AFTER</literal> trigger</link>
- transition tables to record changed rows (Kevin Grittner, Thomas
- Munro)
- </para>
-
- <para>
- Transition tables are accessible from triggers written in
- server-side languages.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-05 [093129c9d] Add support for restrictive RLS policies
--->
- <para>
- Allow <link linkend="sql-createpolicy">restrictive row-level
- security policies</link> (Stephen Frost)
- </para>
-
- <para>
- Previously all security policies were permissive, meaning that any
- matching policy allowed access. A restrictive policy must
- match for access to be granted. These policy types can be combined.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-31 [64d4da511] For foreign keys, check REFERENCES privilege only on the
--->
- <para>
- When creating a foreign-key constraint, check
- for <literal>REFERENCES</literal> permission on only the referenced table
- (Tom Lane)
- </para>
-
- <para>
- Previously <literal>REFERENCES</literal> permission on the referencing
- table was also required. This appears to have stemmed from a
- misreading of the SQL standard. Since creating a foreign key (or
- any other type of) constraint requires ownership privilege on the
- constrained table, additionally requiring <literal>REFERENCES</literal>
- permission seems rather pointless.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-28 [ab89e465c] Altering default privileges on schemas
--->
- <para>
- Allow <link linkend="sql-alterdefaultprivileges">default
- permissions</link> on schemas (Matheus Oliveira)
- </para>
-
- <para>
- This is done using the <literal>ALTER DEFAULT PRIVILEGES</literal> command.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-10 [2ea5b06c7] Add CREATE SEQUENCE AS <data type> clause
--->
- <para>
- Add <link linkend="sql-createsequence"><command>CREATE SEQUENCE
- AS</command></link> command to create a sequence matching an integer data type
- (Peter Eisentraut)
- </para>
-
- <para>
- This simplifies the creation of sequences matching the range of
- base columns.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-10 [279c439c7] Support "COPY view FROM" for views with INSTEAD OF INSER
--->
- <para>
- Allow <literal>COPY <replaceable>view</replaceable>
- FROM <replaceable>source</replaceable></literal> on views with <literal>INSTEAD
- INSERT</literal> triggers (Haribabu Kommi)
- </para>
-
- <para>
- The triggers are fed the data rows read by <command>COPY</command>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-14 [aefeb6874] Allow referring to functions without arguments when uniq
--->
- <para>
- Allow the specification of a function name without arguments in
- <acronym>DDL</acronym> commands, if it is unique (Peter Eisentraut)
- </para>
-
- <para>
- For example, allow <link linkend="sql-dropfunction"><command>DROP
- FUNCTION</command></link> on a function name without arguments if there
- is only one function with that name. This behavior is required by the
- <acronym>SQL</acronym> standard.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-06 [583f6c414] Allow dropping multiple functions at once
--->
- <para>
- Allow multiple functions, operators, and aggregates to be dropped
- with a single <command>DROP</command> command (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-15 [6d16ecc64] Add CREATE COLLATION IF NOT EXISTS clause
-2017-03-20 [b6fb534f1] Add IF NOT EXISTS for CREATE SERVER and CREATE USER MAPP
--->
- <para>
- Support <literal>IF NOT EXISTS</literal>
- in <link linkend="sql-createserver"><command>CREATE SERVER</command></link>,
- <link linkend="sql-createusermapping"><command>CREATE USER MAPPING</command></link>,
- and <link linkend="sql-createcollation"><command>CREATE COLLATION</command></link>
- (Anastasia Lubennikova, Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-25 [70adf2fbe] Make VACUUM VERBOSE report the number of skipped frozen
-2017-03-03 [9eb344faf] Allow vacuums to report oldestxmin
--->
- <para>
- Make <link linkend="sql-vacuum"><command>VACUUM VERBOSE</command></link> report
- the number of skipped frozen pages and oldest xmin (Masahiko
- Sawada, Simon Riggs)
- </para>
-
- <para>
- This information is also included in <xref
- linkend="guc-log-autovacuum-min-duration"/> output.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-23 [7e26e02ee] Prefetch blocks during lazy vacuum's truncation scan
--->
- <para>
- Improve speed of <command>VACUUM</command>'s removal of trailing empty
- heap pages (Claudio Freire, Álvaro Herrera)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Data Types</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-31 [e306df7f9] Full Text Search support for JSON and JSONB
--->
- <para>
- Add full text search support for <type>JSON</type> and <type>JSONB</type>
- (Dmitry Dolgov)
- </para>
-
- <para>
- The functions <function>ts_headline()</function> and
- <function>to_tsvector()</function> can now be used on these data types.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-15 [c7a9fa399] Add support for EUI-64 MAC addresses as macaddr8
--->
- <para>
- Add support for <acronym>EUI-64</acronym> <acronym>MAC</acronym> addresses, as a
- new data type <link linkend="datatype-macaddr8"><type>macaddr8</type></link>
- (Haribabu Kommi)
- </para>
-
- <para>
- This complements the existing support
- for <acronym>EUI-48</acronym> <acronym>MAC</acronym> addresses
- (type <type>macaddr</type>).
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [321732705] Identity columns
--->
- <para>
- Add <link linkend="sql-createtable">identity columns</link> for
- assigning a numeric value to columns on insert (Peter Eisentraut)
- </para>
-
- <para>
- These are similar to <type>SERIAL</type> columns, but are
- <acronym>SQL</acronym> standard compliant.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-07 [0ab9c56d0] Support renaming an existing value of an enum type.
--->
- <para>
- Allow <link linkend="datatype-enum"><type>ENUM</type></link> values to be
- renamed (Dagfinn Ilmari Mannsåker)
- </para>
-
- <para>
- This uses the syntax <link linkend="sql-altertype"><command>ALTER
- TYPE ... RENAME VALUE</command></link>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-22 [502a3832c] Correctly handle array pseudotypes in to_json and to_jso
--->
- <para>
- Properly treat array pseudotypes
- (<type>anyarray</type>) as arrays in <link
- linkend="functions-json-creation-table"><function>to_json()</function></link>
- and <function>to_jsonb()</function> (Andrew Dunstan)
- </para>
-
- <para>
- Previously columns declared as <type>anyarray</type> (particularly those
- in the <structname>pg_stats</structname> view) were converted to <type>JSON</type>
- strings rather than arrays.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-17 [323b96aa3] Register missing money operators in system catalogs
--->
- <para>
- Add operators for multiplication and division
- of <link linkend="datatype-money"><type>money</type></link> values
- with <type>int8</type> values (Peter Eisentraut)
- </para>
-
- <para>
- Previously such cases would result in converting the <type>int8</type>
- values to <type>float8</type> and then using
- the <type>money</type>-and-<type>float8</type> operators. The new behavior
- avoids possible precision loss. But note that division
- of <type>money</type> by <type>int8</type> now truncates the quotient, like
- other integer-division cases, while the previous behavior would have
- rounded.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-14 [656df624c] Add overflow checks to money type input function
--->
- <para>
- Check for overflow in the <type>money</type> type's input function
- (Peter Eisentraut)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Functions</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-08-17 [cf9b0fea5] Implement regexp_match(), a simplified alternative to re
--->
- <para>
- Add simplified <link
- linkend="functions-posix-regexp"><function>regexp_match()</function></link>
- function (Emre Hasegeli)
- </para>
-
- <para>
- This is similar to <function>regexp_matches()</function>, but it only
- returns results from the first match so it does not need to return a
- set, making it easier to use for simple cases.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-18 [d00ca333c] Implement array version of jsonb_delete and operator
--->
- <para>
- Add a version of <type>jsonb</type>'s <link
- linkend="functions-jsonb-op-table">delete operator</link> that takes
- an array of keys to delete (Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [cf35346e8] Make json_populate_record and friends operate recursivel
--->
- <para>
- Make <link linkend="functions-json-processing-table"><function>json_populate_record()</function></link>
- and related functions process JSON arrays and objects recursively
- (Nikita Glukhov)
- </para>
-
- <para>
- With this change, array-type fields in the destination SQL type are
- properly converted from JSON arrays, and composite-type fields are
- properly converted from JSON objects. Previously, such cases would
- fail because the text representation of the JSON value would be fed
- to <function>array_in()</function> or <function>record_in()</function>, and its
- syntax would not match what those input functions expect.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-23 [86f31695f] Add txid_current_ifassigned().
--->
- <para>
- Add function <link
- linkend="functions-txid-snapshot"><function>txid_current_if_assigned()</function></link>
- to return the current transaction ID or <literal>NULL</literal> if no
- transaction ID has been assigned (Craig Ringer)
- </para>
-
- <para>
- This is different from <link
- linkend="functions-txid-snapshot"><function>txid_current()</function></link>,
- which always returns a transaction ID, assigning one if necessary.
- Unlike that function, this function can be run on standby servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-24 [857ee8e39] Add a txid_status function.
--->
- <para>
- Add function <link
- linkend="functions-txid-snapshot"><function>txid_status()</function></link>
- to check if a transaction was committed (Craig Ringer)
- </para>
-
- <para>
- This is useful for checking after an abrupt disconnection whether
- your previous transaction committed and you just didn't receive
- the acknowledgment.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-19 [30bcebbdc] Allow negative years in make_date to represent BC years
--->
- <para>
- Allow <link
- linkend="functions-datetime-table"><function>make_date()</function></link>
- to interpret negative years as <acronym>BC</acronym> years (Álvaro
- Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-28 [d3cd36a13] Make to_timestamp() and to_date() range-check fields of
--->
- <para>
- Make <link
- linkend="functions-formatting-table"><function>to_timestamp()</function></link>
- and <function>to_date()</function> reject
- out-of-range input fields (Artur Zakirov)
- </para>
-
- <para>
- For example,
- previously <literal>to_date('2009-06-40','YYYY-MM-DD')</literal> was
- accepted and returned <literal>2009-07-10</literal>. It will now generate
- an error.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Server-Side Languages</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-27 [70ec3f1f8] PL/Python: Add cursor and execute methods to plan object
--->
- <para>
- Allow PL/Python's <function>cursor()</function> and <function>execute()</function>
- functions to be called as methods of their plan-object arguments
- (Peter Eisentraut)
- </para>
-
- <para>
- This allows a more object-oriented programming style.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-13 [55caaaeba] Improve handling of array elements as getdiag_targets an
--->
- <para>
- Allow PL/pgSQL's <command>GET DIAGNOSTICS</command> statement to retrieve
- values into array elements (Tom Lane)
- </para>
-
- <para>
- Previously, a syntactic restriction prevented the target variable
- from being an array element.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="pltcl">PL/Tcl</link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-11-06 [26abb50c4] Support PL/Tcl functions that return composite types and
--->
- <para>
- Allow PL/Tcl functions to return composite types and sets
- (Karl Lehenbauer)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-11 [b58fd4a9c] Add a "subtransaction" command to PL/Tcl.
--->
- <para>
- Add a subtransaction command to PL/Tcl (Victor Wagner)
- </para>
-
- <para>
- This allows PL/Tcl queries to fail without aborting the entire
- function.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [0d2b1f305] Invent start_proc parameters for PL/Tcl.
--->
- <para>
- Add server parameters <xref linkend="guc-pltcl-start-proc"/>
- and <xref linkend="guc-pltclu-start-proc"/>, to allow initialization
- functions to be called on PL/Tcl startup (Tom Lane)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
- </sect3>
-
- <sect3>
- <title>Client Interfaces</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-11-03 [274bb2b38] libpq: Allow connection strings and URIs to specify mult
-2017-05-19 [5f374fe7a] libpq: Try next host if one of them times out.
-2017-07-10 [7b02ba62e] Allow multiple hostaddrs to go with multiple hostnames.
--->
- <para>
- Allow specification of <link linkend="libpq-connect-host">multiple
- host names or addresses</link> in libpq connection strings and URIs
- (Robert Haas, Heikki Linnakangas)
- </para>
-
- <para>
- libpq will connect to the first responsive server in the list.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-29 [721f7bd3c] libpq: Add target_session_attrs parameter.
--->
- <para>
- Allow libpq connection strings and URIs to request a <link
- linkend="libpq-connect-target-session-attrs">read/write host</link>,
- that is a master server rather than a standby server
- (Victor Wagner, Mithun Cy)
- </para>
-
- <para>
- This is useful when multiple host names are
- specified. It is controlled by libpq connection parameter
- <option>target_session_attrs</option>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-24 [ba005f193] Allow password file name to be specified as a libpq conn
--->
- <para>
- Allow the <link linkend="libpq-connect-passfile">password file name</link>
- to be specified as a libpq connection parameter (Julian Markwort)
- </para>
-
- <para>
- Previously this could only be specified via an environment variable.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-05-03 [8f8b9be51] Add PQencryptPasswordConn function to libpq, use it in p
--->
- <para>
- Add function <link
- linkend="libpq-pqencryptpasswordconn"><function>PQencryptPasswordConn()</function></link>
- to allow creation of more types of encrypted passwords on the
- client side (Michael Paquier, Heikki Linnakangas)
- </para>
-
- <para>
- Previously only <literal>MD5</literal>-encrypted passwords could be created
- using <link
- linkend="libpq-pqencryptpassword"><function>PQencryptPassword()</function></link>.
- This new function can also create <link
- linkend="auth-pg-hba-conf"><literal>SCRAM-SHA-256</literal></link>-encrypted
- passwords.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-16 [a7b5573d6] Remove separate version numbering for ecpg preprocessor.
--->
- <para>
- Change <application>ecpg</application> preprocessor version from 4.12 to 10
- (Tom Lane)
- </para>
-
- <para>
- Henceforth the <application>ecpg</application> version will match
- the <productname>PostgreSQL</productname> distribution version number.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Client Applications</title>
-
- <sect4>
- <title><xref linkend="app-psql"/></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-30 [e984ef586] Support \if ... \elif ... \else ... \endif in psql scrip
-2017-04-02 [5dbc5da11] Fix behavior of psql's \p to agree with \g, \w, etc.
-2017-04-02 [68dba97a4] Document psql's behavior of recalling the previously exe
--->
- <para>
- Add conditional branch support to <application>psql</application> (Corey
- Huinker)
- </para>
-
- <para>
- This feature adds <application>psql</application>
- meta-commands <command>\if</command>, <command>\elif</command>, <command>\else</command>,
- and <command>\endif</command>. This is primarily helpful for scripting.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [b2678efd4] psql: Add \gx command
--->
- <para>
- Add <application>psql</application> <command>\gx</command> meta-command to execute
- (<command>\g</command>) a query in expanded mode (<command>\x</command>)
- (Christoph Berg)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-01 [f833c847b] Allow psql variable substitution to occur in backtick co
--->
- <para>
- Expand <application>psql</application> variable references in
- backtick-executed strings (Tom Lane)
- </para>
-
- <para>
- This is particularly useful in the new <application>psql</application>
- conditional branch commands.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-30 [511ae628f] Make psql reject attempts to set special variables to in
-2017-02-01 [86322dc7e] Improve psql's behavior for \set and \unset of its contr
-2017-02-02 [fd6cd6980] Clean up psql's behavior for a few more control variable
--->
- <para>
- Prevent <application>psql</application>'s special variables from being set to
- invalid values (Daniel Vérité, Tom Lane)
- </para>
-
- <para>
- Previously, setting one of <application>psql</application>'s special variables
- to an invalid value silently resulted in the default behavior.
- <command>\set</command> on a special variable now fails if the proposed
- new value is invalid. As a special exception, <command>\set</command>
- with an empty or omitted new value, on a boolean-valued special
- variable, still has the effect of setting the variable
- to <literal>on</literal>; but now it actually acquires that value rather
- than an empty string. <command>\unset</command> on a special variable now
- explicitly sets the variable to its default value, which is also
- the value it acquires at startup. In sum, a control variable now
- always has a displayable value that reflects
- what <application>psql</application> is actually doing.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-09-06 [a6c678f01] Add psql variables showing server version and psql versi
--->
- <para>
- Add variables showing server version and <application>psql</application> version
- (Fabien Coelho)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-03 [a0f357e57] psql: Split up "Modifiers" column in \d and \dD
--->
- <para>
- Improve <application>psql</application>'s <command>\d</command> (display relation)
- and <command>\dD</command> (display domain) commands to show collation,
- nullable, and default properties in separate columns (Peter
- Eisentraut)
- </para>
-
- <para>
- Previously they were shown in a single <quote>Modifiers</quote> column.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-27 [77cb4a1d6] Standardize describe.c's behavior for no-matching-object
--->
- <para>
- Make the various <command>\d</command> commands handle no-matching-object
- cases more consistently (Daniel Gustafsson)
- </para>
-
- <para>
- They now all print the message about that to stderr, not stdout,
- and the message wording is more consistent.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-18 [49917dbd7] Improve psql's tab completion for ALTER EXTENSION foo UP
-2016-08-18 [8019b5a89] Improve psql's tab completion for \l.
-2016-09-01 [76f9dd4fa] Improve tab completion for BEGIN & START|SET TRANSACTION
-2016-09-11 [52803098a] psql tab completion for CREATE DATABASE ... TEMPLATE ...
-2016-09-12 [63c1a8719] Fix recent commit for tab-completion of database templat
-2016-11-03 [1d15d0db5] psql: Tab-complete LOCK [TABLE] ... IN {ACCESS|ROW|SHARE
-2016-11-04 [927d7bb6b] Improve tab completion for CREATE TRIGGER.
-2016-11-08 [577f0bdd2] psql: Tab completion for renaming enum values.
-2017-03-01 [b5a388392] psql: Add tab completion for DEALLOCATE
-2017-03-16 [d7d77f382] psql: Add completion for \help DROP|ALTER
--->
- <para>
- Improve <application>psql</application>'s tab completion (Jeff Janes,
- Ian Barwick, Andreas Karlsson, Sehrope Sarkuni, Thomas Munro,
- Kevin Grittner, Dagfinn Ilmari Mannsåker)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><xref linkend="pgbench"/></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-11-09 [41124a91e] pgbench: Allow the transaction log file prefix to be cha
--->
- <para>
- Add <application>pgbench</application> option <option>--log-prefix</option> to
- control the log file prefix (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-20 [cdc2a7047] Allow backslash line continuations in pgbench's meta com
--->
- <para>
- Allow <application>pgbench</application>'s meta-commands to span multiple
- lines (Fabien Coelho)
- </para>
-
- <para>
- A meta-command can now be continued onto the next line by writing
- backslash-return.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-11 [796818442] Remove pgbench's restriction on placement of -M switch.
--->
- <para>
- Remove restriction on placement of <option>-M</option> option relative to
- other command line options (Tom Lane)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Server Applications</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-01-17 [cada1af31] Add compression support to pg_receivexlog
--->
- <para>
- Add <link
- linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
- option <option>-Z</option>/<option>--compress</option> to specify compression
- (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-04 [7c030783a] Add pg_recvlogical -\-endpos=LSN
--->
- <para>
- Add <link
- linkend="app-pgrecvlogical"><application>pg_recvlogical</application></link> option
- <option>--endpos</option> to specify the ending position (Craig Ringer)
- </para>
-
- <para>
- This complements the existing <option>--startpos</option> option.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-19 [5d58c07a4] initdb pg_basebackup: Rename -\-noxxx options to -\-no-x
--->
- <para>
- Rename <link linkend="app-initdb"><application>initdb</application></link>
- options <option>--noclean</option> and <option>--nosync</option> to be spelled
- <option>--no-clean</option> and <option>--no-sync</option> (Vik Fearing,
- Peter Eisentraut)
- </para>
-
- <para>
- The old spellings are still supported.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="app-pgdump"><application>pg_dump</application></link>,
- <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
- <link linkend="app-pgrestore"><application>pg_restore</application></link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-20 [46b55e7f8] pg_restore: Add -N option to exclude schemas
--->
- <para>
- Allow <application>pg_restore</application> to exclude schemas (Michael Banck)
- </para>
-
- <para>
- This adds a new <option>-N</option>/<option>--exclude-schema</option> option.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-29 [4fafa579b] Add -\-no-blobs option to pg_dump
--->
- <para>
- Add <option>--no-blobs</option> option to
- <application>pg_dump</application> (Guillaume Lelarge)
- </para>
-
- <para>
- This suppresses dumping of large objects.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [9a83d56b3] Allow pg_dumpall to dump roles w/o user passwords
--->
- <para>
- Add <application>pg_dumpall</application> option
- <option>--no-role-passwords</option> to omit role passwords
- (Robins Tharakan, Simon Riggs)
- </para>
-
- <para>
- This allows use of <application>pg_dumpall</application> by non-superusers;
- without this option, it fails due to inability to read passwords.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-16 [e4892c681] pg_dump: Support using synchronized snapshots on standby
--->
- <para>
- Support using synchronized snapshots when dumping from a standby
- server (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [96a7128b7] Sync pg_dump and pg_dumpall output
--->
- <para>
- Issue <function>fsync()</function> on the output files generated by
- <application>pg_dump</application> and
- <application>pg_dumpall</application> (Michael Paquier)
- </para>
-
- <para>
- This provides more security that the output is safely stored on
- disk before the program exits. This can be disabled with
- the new <option>--no-sync</option> option.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
-
- <title><xref linkend="app-pgbasebackup"/></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-10-23 [56c7d8d45] Allow pg_basebackup to stream transaction log in tar mod
-2016-12-21 [ecbdc4c55] Forbid invalid combination of options in pg_basebackup.
--->
- <para>
- Allow <application>pg_basebackup</application> to stream write-ahead log in
- tar mode (Magnus Hagander)
- </para>
-
- <para>
- The <acronym>WAL</acronym> will be stored in a separate tar file from
- the base backup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-16 [e7b020f78] Make pg_basebackup use temporary replication slots
--->
- <para>
- Make <application>pg_basebackup</application> use temporary replication slots
- (Magnus Hagander)
- </para>
-
- <para>
- Temporary replication slots will be used by default when
- <application>pg_basebackup</application> uses WAL streaming with default
- options.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [bc34223bc] pg_basebackup pg_receivexlog: Issue fsync more carefully
--->
- <para>
- Be more careful about fsync'ing in all required places
- in <application>pg_basebackup</application> and
- <application>pg_receivewal</application> (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [6ed2d8584] pg_basebackup: Add -\-nosync option
-2016-10-19 [5d58c07a4] initdb pg_basebackup: Rename -\-noxxx options to -\-no-x
--->
- <para>
- Add <application>pg_basebackup</application> option <option>--no-sync</option> to
- disable fsync (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-28 [6ad8ac602] Exclude additional directories in pg_basebackup
--->
- <para>
- Improve <application>pg_basebackup</application>'s handling of which
- directories to skip (David Steele)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><application><xref linkend="app-pg-ctl"/></application></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-21 [e7010ce47] pg_ctl: Add wait option to promote action
--->
- <para>
- Add wait option for <application><xref linkend="app-pg-ctl"/></application>'s
- promote operation (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-19 [0be22457d] pg_ctl: Add long options for -w and -W
--->
- <para>
- Add long options for <application>pg_ctl</application> wait (<option>--wait</option>)
- and no-wait (<option>--no-wait</option>) (Vik Fearing)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-19 [caf936b09] pg_ctl: Add long option for -o
--->
- <para>
- Add long option for <application>pg_ctl</application> server options
- (<option>--options</option>) (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-28 [f13ea95f9] Change pg_ctl to detect server-ready by watching status
--->
- <para>
- Make <literal>pg_ctl start --wait</literal> detect server-ready by
- watching <filename>postmaster.pid</filename>, not by attempting connections
- (Tom Lane)
- </para>
-
- <para>
- The postmaster has been changed to report its ready-for-connections
- status in <filename>postmaster.pid</filename>, and <application>pg_ctl</application>
- now examines that file to detect whether startup is complete.
- This is more efficient and reliable than the old method, and it
- eliminates postmaster log entries about rejected connection
- attempts during startup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-26 [c61559ec3] Reduce pg_ctl's reaction time when waiting for postmaste
--->
- <para>
- Reduce <application>pg_ctl</application>'s reaction time when waiting for
- postmaster start/stop (Tom Lane)
- </para>
-
- <para>
- <application>pg_ctl</application> now probes ten times per second when waiting
- for a postmaster state change, rather than once per second.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-05 [1bac5f552] pg_ctl: Make failure to complete operation a nonzero exi
--->
- <para>
- Ensure that <application>pg_ctl</application> exits with nonzero status if an
- operation being waited for does not complete within the timeout
- (Peter Eisentraut)
- </para>
-
- <para>
- The <literal>start</literal> and <literal>promote</literal> operations now return
- exit status 1, not 0, in such cases. The <literal>stop</literal> operation
- has always done that.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
- </sect3>
-
- <sect3>
- <title>Source Code</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-08-15 [ca9112a42] Stamp HEAD as 10devel.
--->
- <para>
- Change to two-part release version numbering (Peter Eisentraut, Tom
- Lane)
- </para>
-
- <para>
- Release numbers will now have two parts (e.g., <literal>10.1</literal>)
- rather than three (e.g., <literal>9.6.3</literal>).
- Major versions will now increase just the first number, and minor
- releases will increase just the second number.
- Release branches will be referred to by single numbers
- (e.g., <literal>10</literal> rather than <literal>9.6</literal>).
- This change is intended to reduce user confusion about what is a
- major or minor release of <productname>PostgreSQL</productname>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-16 [cea258b63] Teach pgindent to skip files generated by bison or flex
-2017-06-21 [8ff6d4ec7] Adjust pgindent script to use pg_bsd_indent 2.0.
-2017-06-21 [e3860ffa4] Initial pgindent run with pg_bsd_indent version 2.0.
-2017-06-21 [c7b8998eb] Phase 2 of pgindent updates.
-2017-06-21 [382ceffdf] Phase 3 of pgindent updates.
-2017-06-21 [81f056c72] Remove entab and associated detritus.
--->
- <para>
- Improve behavior of <application>pgindent</application>
- (Piotr Stefaniak, Tom Lane)
- </para>
-
- <para>
- We have switched to a new version of <application>pg_bsd_indent</application>
- based on recent improvements made by the FreeBSD project. This
- fixes numerous small bugs that led to odd C code formatting
- decisions. Most notably, lines within parentheses (such as in a
- multi-line function call) are now uniformly indented to match the
- opening paren, even if that would result in code extending past the
- right margin.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [eccfef81e] ICU support
--->
- <para>
- Allow the <link linkend="configure"><acronym>ICU</acronym></link> library to
- optionally be used for collation support (Peter Eisentraut)
- </para>
-
- <para>
- The <acronym>ICU</acronym> library has versioning that allows detection
- of collation changes between versions. It is enabled via configure
- option <option>--with-icu</option>. The default still uses the operating
- system's native collation library.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-04 [c8ead2a39] Provide DLLEXPORT markers for C functions via PG_FUNCTIO
--->
- <para>
- Automatically mark all <link
- linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</function></link> functions
- as <literal>DLLEXPORT</literal>-ed on
- <systemitem class="osname">Windows</systemitem> (Laurenz Albe)
- </para>
-
- <para>
- If third-party code is using <literal>extern</literal> function
- declarations, they should also add <literal>DLLEXPORT</literal> markers
- to those declarations.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-08 [1833f1a1c] Simplify code by getting rid of SPI_push, SPI_pop, SPI_r
--->
- <para>
- Remove <acronym>SPI</acronym> functions <function>SPI_push()</function>,
- <function>SPI_pop()</function>, <function>SPI_push_conditional()</function>,
- <function>SPI_pop_conditional()</function>,
- and <function>SPI_restore_connection()</function> as unnecessary (Tom Lane)
- </para>
-
- <para>
- Their functionality now happens automatically. There are now no-op
- macros by these names so that external modules don't need to be
- updated immediately, but eventually such calls should be removed.
- </para>
-
- <para>
- A side effect of this change is that <function>SPI_palloc()</function> and
- allied functions now require an active SPI connection; they do not
- degenerate to simple <function>palloc()</function> if there is none. That
- previous behavior was not very useful and posed risks of unexpected
- memory leaks.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-02 [13e14a78e] Management of free memory pages.
-2016-12-02 [13df76a53] Introduce dynamic shared memory areas.
-2016-12-19 [e13029a5c] Provide a DSA area for all parallel queries.
--->
- <para>
- Allow shared memory to be dynamically allocated (Thomas Munro,
- Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-27 [58b25e981] Add "Slab" MemoryContext implementation for efficient eq
--->
- <para>
- Add slab-like memory allocator for efficient fixed-size allocations
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-09 [ecb0d20a9] Use unnamed POSIX semaphores, if available, on Linux and
--->
- <para>
- Use <acronym>POSIX</acronym> semaphores rather than SysV semaphores
- on <systemitem class="osname">Linux</systemitem> and <systemitem
- class="osname">FreeBSD</systemitem> (Tom Lane)
- </para>
-
- <para>
- This avoids platform-specific limits on SysV semaphore usage.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-07 [e8fdbd58f] Improve 64bit atomics support.
--->
- <para>
- Improve support for 64-bit atomics (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-10 [f8f1430ae] Enable 64 bit atomics on ARM64.
--->
- <para>
- Enable 64-bit atomic operations on <acronym>ARM64</acronym> (Roman
- Shaposhnik)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-02 [1d63f7d2d] Use clock_gettime(), if available, in instr_time measure
--->
- <para>
- Switch to using <function>clock_gettime()</function>, if available, for
- duration measurements (Tom Lane)
- </para>
-
- <para>
- <function>gettimeofday()</function> is still used
- if <function>clock_gettime()</function> is not available.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-05 [fe0a0b599] Replace PostmasterRandom() with a stronger source, secon
-2017-07-03 [bf723a274] Forbid gen_random_uuid() with -\-disable-strong-random
--->
- <para>
- Add more robust random number generators to be used for
- cryptographically secure uses (Magnus Hagander, Michael Paquier,
- Heikki Linnakangas)
- </para>
-
- <para>
- If no strong random number generator can be
- found, <link linkend="configure">configure</link> will fail unless
- the <option>--disable-strong-random</option> option is used. However, with
- this option, <link linkend="pgcrypto"><application>pgcrypto</application></link>
- functions requiring a strong random number generator will be disabled.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-15 [d7ab908fb] Distinguish wait-for-connection from wait-for-write-read
--->
- <para>
- Allow <function>WaitLatchOrSocket()</function> to wait for socket
- connection on Windows (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [3f902354b] Clean up after insufficiently-researched optimization of
--->
- <para>
- <filename>tupconvert.c</filename> functions no longer convert tuples just to
- embed a different composite-type OID in them (Ashutosh Bapat, Tom Lane)
- </para>
-
- <para>
- The majority of callers don't care about the composite-type OID;
- but if the result tuple is to be used as a composite Datum, steps
- should be taken to make sure the correct OID is inserted in it.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-11 [2b860f52e] Remove "sco" and "unixware" ports.
--->
- <para>
- Remove <systemitem class="osname">SCO</systemitem> and <systemitem
- class="osname">Unixware</systemitem> ports (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-18 [e8306745e] doc: Speed up XSLT builds
-2016-08-24 [0e4cc1fc5] doc: Fix XSLT speedup with older upstream stylesheet ver
--->
- <para>
- Overhaul documentation <link linkend="docguide-toolsets">build
- process</link> (Alexander Lakhin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [510074f9f] Remove use of Jade and DSSSL
--->
- <para>
- Use <acronym>XSLT</acronym> to build the <productname>PostgreSQL</productname>
- documentation (Peter Eisentraut)
- </para>
-
- <para>
- Previously <application>Jade</application>, <acronym>DSSSL</acronym>, and
- <application>JadeTex</application> were used.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-15 [e36ddab11] Build HTML documentation using XSLT stylesheets by defau
--->
- <para>
- Build <acronym>HTML</acronym> documentation using <acronym>XSLT</acronym>
- stylesheets by default (Peter Eisentraut)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Additional Modules</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-29 [8e91e12bc] Allow contrib/file_fdw to read from a program, like COPY
--->
- <para>
- Allow <link linkend="file-fdw"><application>file_fdw</application></link> to read
- from program output as well as files (Corey Huinker, Adam Gomaa)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-21 [7012b132d] postgres_fdw: Push down aggregates to remote servers.
--->
- <para>
- In <link linkend="postgres-fdw"><application>postgres_fdw</application></link>,
- push aggregate functions to the remote server, when possible
- (Jeevan Chalke, Ashutosh Bapat)
- </para>
-
- <para>
- This reduces the amount of data that must be passed from the remote
- server, and offloads aggregate computation from the requesting server.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-16 [b30fb56b0] postgres_fdw: Push down FULL JOINs with restriction clau
-2017-04-24 [332bec1e6] postgres_fdw: Fix join push down with extensions
--->
- <para>
- In <application>postgres_fdw</application>, push joins to the remote server in
- more cases (David Rowley, Ashutosh Bapat, Etsuro Fujita)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-26 [ae025a159] Support OID system column in postgres_fdw.
--->
- <para>
- Properly support <type>OID</type> columns in
- <application>postgres_fdw</application> tables (Etsuro Fujita)
- </para>
-
- <para>
- Previously <type>OID</type> columns always returned zeros.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-21 [f7946a92b] Add btree_gist support for enum types.
--->
- <para>
- Allow <link linkend="btree-gist"><application>btree_gist</application></link>
- and <link linkend="btree-gin"><application>btree_gin</application></link> to
- index enum types (Andrew Dunstan)
- </para>
-
- <para>
- This allows enums to be used in exclusion constraints.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-29 [11da83a0e] Add uuid to the set of types supported by contrib/btree_
--->
- <para>
- Add indexing support to <application>btree_gist</application> for the
- <type>UUID</type> data type (Paul Jungwirth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-09 [3717dc149] Add amcheck extension to contrib.
--->
- <para>
- Add <link linkend="amcheck"><application>amcheck</application></link> which can
- check the validity of B-tree indexes (Peter Geoghegan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [a6f22e835] Show ignored constants as "$N" rather than "?" in pg_sta
--->
- <para>
- Show ignored constants as <literal>$N</literal> rather than <literal>?</literal>
- in
- <link
- linkend="pgstatstatements"><application>pg_stat_statements</application></link>
- (Lukas Fittl)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-27 [f31a931fa] Improve contrib/cube's handling of zero-D cubes, infinit
--->
- <para>
- Improve <link linkend="cube"><application>cube</application></link>'s handling
- of zero-dimensional cubes (Tom Lane)
- </para>
-
- <para>
- This also improves handling of <literal>infinite</literal> and
- <literal>NaN</literal> values.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [6e654546f] Don't bother to lock bufmgr partitions in pg_buffercache
--->
- <para>
- Allow <link
- linkend="pgbuffercache"><application>pg_buffercache</application></link> to run
- with fewer locks (Ivan Kartyshov)
- </para>
-
- <para>
- This makes it less disruptive when run on production systems.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-03 [e759854a0] pgstattuple: Add pgstathashindex.
--->
- <para>
- Add <link linkend="pgstattuple"><application>pgstattuple</application></link>
- function <function>pgstathashindex()</function> to view hash index
- statistics (Ashutosh Sharma)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [fd321a1df] Remove superuser checks in pgstattuple
--->
- <para>
- Use <command>GRANT</command> permissions to
- control <application>pgstattuple</application> function usage (Stephen Frost)
- </para>
-
- <para>
- This allows DBAs to allow non-superusers to run these functions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-28 [d4b5d4cad] pgstattuple: Don't take heavyweight locks when examining
--->
- <para>
- Reduce locking when <application>pgstattuple</application> examines hash
- indexes (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-17 [fef2bcdcb] pageinspect: Add page_checksum function
--->
- <para>
- Add <link linkend="pageinspect"><application>pageinspect</application></link>
- function <function>page_checksum()</function> to show a page's checksum
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-04 [193f5f9e9] pageinspect: Add bt_page_items function with bytea argum
--->
- <para>
- Add <application>pageinspect</application>
- function <function>bt_page_items()</function> to print page items from a
- page image (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-02 [08bf6e529] pageinspect: Support hash indexes.
--->
- <para>
- Add hash index support to <application>pageinspect</application> (Jesper
- Pedersen, Ashutosh Sharma)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- </sect2>
-
- <sect2 id="release-10-acknowledgements">
- <title>Acknowledgments</title>
-
- <para>
- The following individuals (in alphabetical order) have contributed to this
- release as patch authors, committers, reviewers, testers, or reporters of
- issues.
- </para>
-
- <simplelist>
- <member>Adam Brightwell</member>
- <member>Adam Brusselback</member>
- <member>Adam Gomaa</member>
- <member>Adam Sah</member>
- <member>Adrian Klaver</member>
- <member>Aidan Van Dyk</member>
- <member>Aleksander Alekseev</member>
- <member>Alexander Korotkov</member>
- <member>Alexander Lakhin</member>
- <member>Alexander Sosna</member>
- <member>Alexey Bashtanov</member>
- <member>Alexey Grishchenko</member>
- <member>Alexey Isayko</member>
- <member>Álvaro Hernández Tortosa</member>
- <member>Álvaro Herrera</member>
- <member>Amit Kapila</member>
- <member>Amit Khandekar</member>
- <member>Amit Langote</member>
- <member>Amul Sul</member>
- <member>Anastasia Lubennikova</member>
- <member>Andreas Joseph Krogh</member>
- <member>Andreas Karlsson</member>
- <member>Andreas Scherbaum</member>
- <member>Andreas Seltenreich</member>
- <member>Andres Freund</member>
- <member>Andrew Dunstan</member>
- <member>Andrew Gierth</member>
- <member>Andrew Wheelwright</member>
- <member>Andrey Borodin</member>
- <member>Andrey Lizenko</member>
- <member>Andy Abelisto</member>
- <member>Antonin Houska</member>
- <member>Ants Aasma</member>
- <member>Arjen Nienhuis</member>
- <member>Arseny Sher</member>
- <member>Artur Zakirov</member>
- <member>Ashutosh Bapat</member>
- <member>Ashutosh Sharma</member>
- <member>Ashwin Agrawal</member>
- <member>Atsushi Torikoshi</member>
- <member>Ayumi Ishii</member>
- <member>Basil Bourque</member>
- <member>Beena Emerson</member>
- <member>Ben de Graaff</member>
- <member>Benedikt Grundmann</member>
- <member>Bernd Helmle</member>
- <member>Brad DeJong</member>
- <member>Brandur Leach</member>
- <member>Breen Hagan</member>
- <member>Bruce Momjian</member>
- <member>Bruno Wolff III</member>
- <member>Catalin Iacob</member>
- <member>Chapman Flack</member>
- <member>Chen Huajun</member>
- <member>Choi Doo-Won</member>
- <member>Chris Bandy</member>
- <member>Chris Richards</member>
- <member>Chris Ruprecht</member>
- <member>Christian Ullrich</member>
- <member>Christoph Berg</member>
- <member>Chuanting Wang</member>
- <member>Claudio Freire</member>
- <member>Clinton Adams</member>
- <member>Const Zhang</member>
- <member>Constantin Pan</member>
- <member>Corey Huinker</member>
- <member>Craig Ringer</member>
- <member>Cynthia Shang</member>
- <member>Dagfinn Ilmari Mannsåker</member>
- <member>Daisuke Higuchi</member>
- <member>Damian Quiroga</member>
- <member>Dan Wood</member>
- <member>Dang Minh Huong</member>
- <member>Daniel Gustafsson</member>
- <member>Daniel Vérité</member>
- <member>Daniel Westermann</member>
- <member>Daniele Varrazzo</member>
- <member>Danylo Hlynskyi</member>
- <member>Darko Prelec</member>
- <member>Dave Cramer</member>
- <member>Dave Page</member>
- <member>David Christensen</member>
- <member>David Fetter</member>
- <member>David Johnston</member>
- <member>David Rader</member>
- <member>David Rowley</member>
- <member>David Steele</member>
- <member>Dean Rasheed</member>
- <member>Denis Smirnov</member>
- <member>Denish Patel</member>
- <member>Dennis Björklund</member>
- <member>Devrim Gündüz</member>
- <member>Dilip Kumar</member>
- <member>Dilyan Palauzov</member>
- <member>Dima Pavlov</member>
- <member>Dimitry Ivanov</member>
- <member>Dmitriy Sarafannikov</member>
- <member>Dmitry Dolgov</member>
- <member>Dmitry Fedin</member>
- <member>Don Morrison</member>
- <member>Egor Rogov</member>
- <member>Eiji Seki</member>
- <member>Emil Iggland</member>
- <member>Emre Hasegeli</member>
- <member>Enrique Meneses</member>
- <member>Erik Nordström</member>
- <member>Erik Rijkers</member>
- <member>Erwin Brandstetter</member>
- <member>Etsuro Fujita</member>
- <member>Eugen Konkov</member>
- <member>Eugene Kazakov</member>
- <member>Euler Taveira</member>
- <member>Fabien Coelho</member>
- <member>Fabrízio de Royes Mello</member>
- <member>Feike Steenbergen</member>
- <member>Felix Gerzaguet</member>
- <member>Filip Jirsák</member>
- <member>Fujii Masao</member>
- <member>Gabriele Bartolini</member>
- <member>Gabrielle Roth</member>
- <member>Gao Zengqi</member>
- <member>Gerdan Santos</member>
- <member>Gianni Ciolli</member>
- <member>Gilles Darold</member>
- <member>Giuseppe Broccolo</member>
- <member>Graham Dutton</member>
- <member>Greg Atkins</member>
- <member>Greg Burek</member>
- <member>Grigory Smolkin</member>
- <member>Guillaume Lelarge</member>
- <member>Hans Buschmann</member>
- <member>Haribabu Kommi</member>
- <member>Heikki Linnakangas</member>
- <member>Henry Boehlert</member>
- <member>Huan Ruan</member>
- <member>Ian Barwick</member>
- <member>Igor Korot</member>
- <member>Ildus Kurbangaliev</member>
- <member>Ivan Kartyshov</member>
- <member>Jaime Casanova</member>
- <member>Jakob Egger</member>
- <member>James Parks</member>
- <member>Jarred Ward</member>
- <member>Jason Li</member>
- <member>Jason O'Donnell</member>
- <member>Jason Petersen</member>
- <member>Jeevan Chalke</member>
- <member>Jeevan Ladhe</member>
- <member>Jeff Dafoe</member>
- <member>Jeff Davis</member>
- <member>Jeff Janes</member>
- <member>Jelte Fennema</member>
- <member>Jeremy Finzel</member>
- <member>Jeremy Schneider</member>
- <member>Jeroen van der Ham</member>
- <member>Jesper Pedersen</member>
- <member>Jim Mlodgenski</member>
- <member>Jim Nasby</member>
- <member>Jinyu Zhang</member>
- <member>Joe Conway</member>
- <member>Joel Jacobson</member>
- <member>John Harvey</member>
- <member>Jon Nelson</member>
- <member>Jordan Gigov</member>
- <member>Josh Berkus</member>
- <member>Josh Soref</member>
- <member>Julian Markwort</member>
- <member>Julien Rouhaud</member>
- <member>Junseok Yang</member>
- <member>Justin Muise</member>
- <member>Justin Pryzby</member>
- <member>Kacper Zuk</member>
- <member>KaiGai Kohei</member>
- <member>Karen Huddleston</member>
- <member>Karl Lehenbauer</member>
- <member>Karl O. Pinc</member>
- <member>Keith Fiske</member>
- <member>Kevin Grittner</member>
- <member>Kim Rose Carlsen</member>
- <member>Konstantin Evteev</member>
- <member>Konstantin Knizhnik</member>
- <member>Kuntal Ghosh</member>
- <member>Kurt Kartaltepe</member>
- <member>Kyle Conroy</member>
- <member>Kyotaro Horiguchi</member>
- <member>Laurenz Albe</member>
- <member>Leonardo Cecchi</member>
- <member>Ludovic Vaugeois-Pepin</member>
- <member>Lukas Fittl</member>
- <member>Magnus Hagander</member>
- <member>Maksim Milyutin</member>
- <member>Maksym Sobolyev</member>
- <member>Marc Rassbach</member>
- <member>Marc-Olaf Jaschke</member>
- <member>Marcos Castedo</member>
- <member>Marek Cvoren</member>
- <member>Mark Dilger</member>
- <member>Mark Kirkwood</member>
- <member>Mark Pether</member>
- <member>Marko Tiikkaja</member>
- <member>Markus Winand</member>
- <member>Marllius Ribeiro</member>
- <member>Marti Raudsepp</member>
- <member>Martín Marqués</member>
- <member>Masahiko Sawada</member>
- <member>Matheus Oliveira</member>
- <member>Mathieu Fenniak</member>
- <member>Merlin Moncure</member>
- <member>Michael Banck</member>
- <member>Michael Day</member>
- <member>Michael Meskes</member>
- <member>Michael Overmeyer</member>
- &