<!-- doc/src/sgml/release-11.sgml -->
<!-- See header comment in release.sgml about typical markup -->

 <sect1 id="release-11-4">
  <title>Release 11.4</title>

  <formalpara>
  <title>Release date:</title>
  <para>2019-06-20</para>
  </formalpara>

  <para>
   This release contains a variety of fixes from 11.3.
   For information about new features in major release 11, see
   <xref linkend="release-11"/>.
  </para>

  <sect2>
   <title>Migration to Version 11.4</title>

   <para>
    A dump/restore is not required for those running 11.X.
   </para>

   <para>
    However, if you are upgrading from a version earlier than 11.1,
    see <xref linkend="release-11-1"/>.
   </para>
  </sect2>

  <sect2>
   <title>Changes</title>

   <itemizedlist>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [09ec55b93] 2019-06-17 21:48:17 +0900
Branch: REL_11_STABLE [4c779ce32] 2019-06-17 21:48:25 +0900
Branch: REL_10_STABLE [90adc16ea] 2019-06-17 21:48:34 +0900
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [b67421178] 2019-06-17 22:13:57 +0900
Branch: REL_11_STABLE [27c464e42] 2019-06-17 22:14:04 +0900
Branch: REL_10_STABLE [d72a7e4da] 2019-06-17 22:14:09 +0900
-->
     <para>
      Fix buffer-overflow hazards in SCRAM verifier parsing
      (Jonathan Katz, Heikki Linnakangas, Michael Paquier)
     </para>

     <para>
      Any authenticated user could cause a stack-based buffer overflow by
      changing their own password to a purpose-crafted value.  In addition
      to the ability to crash the <productname>PostgreSQL</productname>
      server, this could suffice for executing arbitrary code as
      the <productname>PostgreSQL</productname> operating system account.
     </para>

     <para>
      A similar overflow hazard existed
      in <application>libpq</application>, which could allow a rogue
      server to crash a client or perhaps execute arbitrary code as the
      client's operating system account.
     </para>

     <para>
      The <productname>PostgreSQL</productname> Project thanks Alexander
      Lakhin for reporting this problem.  (CVE-2019-10164)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [6630ccad7] 2019-05-17 19:44:34 -0400
Branch: REL_11_STABLE [592d5d75b] 2019-05-17 19:44:19 -0400
Branch: master [3922f1064] 2019-05-16 16:25:43 -0400
Branch: REL_11_STABLE [51948c4e1] 2019-05-16 16:25:43 -0400
Branch: master [4b1fcb43d] 2019-05-16 11:58:21 -0400
Branch: REL_11_STABLE [10c5cc4b4] 2019-05-16 11:58:22 -0400
-->
     <para>
      Fix assorted errors in run-time partition pruning logic
      (Tom Lane, Amit Langote, David Rowley)
     </para>

     <para>
      These mistakes could lead to wrong answers in queries on partitioned
      tables, if the comparison value used for pruning is dynamically
      determined, or if multiple range-partitioned columns are involved in
      pruning decisions, or if stable (not immutable) comparison operators
      are involved.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [eaf0292c3] 2019-06-03 16:59:26 -0400
Branch: REL_11_STABLE [601084eb1] 2019-06-03 16:59:16 -0400
-->
     <para>
      Fix possible crash while trying to copy trigger definitions to a new
      partition (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [e76de8861] 2019-06-12 12:29:39 -0400
Branch: REL_11_STABLE [0b6edb9fb] 2019-06-12 12:29:41 -0400
Branch: REL_10_STABLE [2981e5a61] 2019-06-12 12:29:42 -0400
Branch: REL9_6_STABLE [77d45b790] 2019-06-12 12:29:43 -0400
Branch: REL9_5_STABLE [f7e99de95] 2019-06-12 12:29:45 -0400
Branch: REL9_4_STABLE [9695ecf36] 2019-06-12 12:29:25 -0400
-->
     <para>
      Fix failure of <command>ALTER TABLE ... ALTER COLUMN TYPE</command>
      when the table has a partial exclusion constraint (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [ceac4505d] 2019-06-12 11:30:11 +0900
Branch: REL_11_STABLE [fa5f3a4bc] 2019-06-12 11:30:41 +0900
Branch: REL_10_STABLE [56a932533] 2019-06-12 11:31:00 +0900
Branch: REL9_6_STABLE [ff1a25601] 2019-06-12 11:31:14 +0900
Branch: REL9_5_STABLE [13f4b462d] 2019-06-12 11:31:20 +0900
-->
     <para>
      Fix failure of <command>COMMENT</command> command for comments on
      domain constraints (Daniel Gustafsson, Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
Branch: master [44e95b572] 2019-05-23 15:26:01 +0100
Branch: REL_11_STABLE [f7da492dc] 2019-05-23 15:38:33 +0100
Branch: REL_10_STABLE [99efd8d72] 2019-05-23 15:39:17 +0100
-->
     <para>
      Prevent possible memory clobber when there are duplicate columns in a
      hash aggregate's hash key list (Andrew Gierth)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [265728325] 2019-05-19 18:01:06 -0700
Branch: REL_11_STABLE [9fea0b0e2] 2019-05-19 18:16:41 -0700
-->
     <para>
      Fix incorrect argument null-ness checking during partial aggregation
      of aggregates with zero or multiple arguments (David Rowley, Kyotaro
      Horiguchi, Andres Freund)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [24c19e9f6] 2019-05-09 16:53:05 -0400
Branch: REL_11_STABLE [e7eed0baa] 2019-05-09 16:52:49 -0400
Branch: REL_10_STABLE [946cdf9ff] 2019-05-09 16:52:49 -0400
Branch: REL9_6_STABLE [3203714c3] 2019-05-09 16:52:49 -0400
-->
     <para>
      Fix faulty generation of merge-append plans (Tom Lane)
     </para>

     <para>
      This mistake could lead to <quote>could not find pathkey item to
      sort</quote> errors.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [3d99a8139] 2019-06-12 19:43:08 -0400
Branch: REL_11_STABLE [f95d8f810] 2019-06-12 19:43:09 -0400
Branch: REL_10_STABLE [30d3df0a7] 2019-06-12 19:43:10 -0400
Branch: REL9_6_STABLE [ad3e61b28] 2019-06-12 19:42:39 -0400
Branch: REL9_5_STABLE [bf612fd3a] 2019-06-12 19:42:39 -0400
Branch: REL9_4_STABLE [8ace51a6b] 2019-06-12 19:42:39 -0400
-->
     <para>
      Fix incorrect printing of queries with duplicate join names
      (Philip Dub&eacute;)
     </para>

     <para>
      This oversight caused a dump/restore failure for views containing
      such queries.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [6f34fcbbd] 2019-06-11 13:33:22 -0400
Branch: REL_11_STABLE [1c9034579] 2019-06-11 13:33:08 -0400
Branch: REL_10_STABLE [b6f5689aa] 2019-06-11 13:33:08 -0400
-->
     <para>
      Fix conversion of JSON string literals to JSON-type output columns
      in <function>json_to_record()</function>
      and <function>json_populate_record()</function> (Tom Lane)
     </para>

     <para>
      Such cases should produce the literal as a standalone JSON value, but
      the code misbehaved if the literal contained any characters requiring
      escaping.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [8a29ed053] 2019-05-12 18:53:38 -0400
Branch: REL_11_STABLE [72ce7acaf] 2019-05-12 18:53:40 -0400
Branch: REL_10_STABLE [940f64792] 2019-05-12 18:53:41 -0400
Branch: REL9_6_STABLE [2a3dbc151] 2019-05-12 18:53:42 -0400
Branch: REL9_5_STABLE [d6de52636] 2019-05-12 18:53:43 -0400
Branch: REL9_4_STABLE [b1ca28e57] 2019-05-12 18:53:45 -0400
-->
     <para>
      Fix misoptimization of <literal>{1,1}</literal> quantifiers in
      regular expressions (Tom Lane)
     </para>

     <para>
      Such quantifiers were treated as no-ops and optimized away;
      but the documentation specifies that they impose greediness, or
      non-greediness in the case of the non-greedy
      variant <literal>{1,1}?</literal>, on the subexpression they're
      attached to, and this did not happen.  The misbehavior occurred
      only if the subexpression contained capturing parentheses or a
      back-reference.
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Geoghegan <pg@bowt.ie>
Branch: master [9b42e7137] 2019-05-13 10:27:59 -0700
Branch: REL_11_STABLE [bf78f50ba] 2019-05-13 10:27:57 -0700
-->
     <para>
      Avoid writing an invalid empty btree index page in the unlikely case
      that a failure occurs while processing INCLUDEd columns during a page
      split (Peter Geoghegan)
     </para>

     <para>
      The invalid page would not affect normal index operations, but it
      might cause failures in subsequent VACUUMs. If that has happened to
      one of your indexes, recover by reindexing the index.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [85ccb6899] 2019-05-11 21:27:29 -0400
Branch: REL_11_STABLE [eb97242c2] 2019-05-11 21:27:13 -0400
Branch: REL_10_STABLE [c3d113136] 2019-05-11 21:27:13 -0400
Branch: REL9_6_STABLE [27d3394b0] 2019-05-11 21:27:13 -0400
Branch: REL9_5_STABLE [899f943ca] 2019-05-11 21:27:13 -0400
-->
     <para>
      Avoid possible failures while initializing a new
      process's <structname>pg_stat_activity</structname> data (Tom Lane)
     </para>

     <para>
      Certain operations that could fail, such as converting strings
      extracted from an SSL certificate into the database encoding, were
      being performed inside a critical section.  Failure there would
      result in database-wide lockup due to violating the access protocol
      for shared <structname>pg_stat_activity</structname> data.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [610747d86] 2019-05-10 14:56:41 -0400
Branch: REL_11_STABLE [803f90ab7] 2019-05-10 14:56:41 -0400
Branch: REL_10_STABLE [3dcf45af5] 2019-05-10 14:56:41 -0400
Branch: REL9_6_STABLE [a73c8caea] 2019-05-10 14:56:41 -0400
Branch: REL9_5_STABLE [91a05390c] 2019-05-10 14:56:41 -0400
Branch: REL9_4_STABLE [b1cde67a4] 2019-05-10 14:56:41 -0400
-->
     <para>
      Fix race condition in check to see whether a pre-existing shared
      memory segment is still in use by a conflicting postmaster (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [a1a789eb5] 2019-04-29 12:26:07 -0400
Branch: REL_11_STABLE [9346d396f] 2019-06-12 17:29:48 -0400
Branch: REL_10_STABLE [ac8f2e1ef] 2019-06-12 17:29:48 -0400
-->
     <para>
      Fix unsafe coding in walreceiver's signal handler (Tom Lane)
     </para>

     <para>
      This avoids rare problems in which the walreceiver process would
      crash or deadlock when commanded to shut down.
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [fff2a7d7b] 2019-06-10 23:34:50 -0700
Branch: REL_11_STABLE [c01556017] 2019-06-10 23:35:38 -0700
Branch: REL_10_STABLE [52ad5fc0a] 2019-06-10 23:36:48 -0700
Branch: REL9_6_STABLE [b8607e15e] 2019-06-10 23:36:55 -0700
Branch: REL9_5_STABLE [483b2d7ae] 2019-06-10 23:36:59 -0700
Branch: REL9_4_STABLE [69f32206d] 2019-06-10 23:37:02 -0700
-->
     <para>
      Avoid attempting to do database accesses for parameter checking in
      processes that are not connected to a specific database (Vignesh C,
      Andres Freund)
     </para>

     <para>
      This error could result in failures like <quote>cannot read pg_class
      without having selected a database</quote>.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ddf927fb1] 2019-05-13 10:53:19 -0400
Branch: REL_11_STABLE [6b0e9411f] 2019-05-13 10:53:19 -0400
Branch: REL_10_STABLE [e3bf3c0f8] 2019-05-13 10:53:19 -0400
Branch: REL9_6_STABLE [8eaba0b93] 2019-05-13 10:53:19 -0400
Branch: REL9_5_STABLE [0ec3d2ab2] 2019-05-13 10:53:19 -0400
-->
     <para>
      Avoid possible hang in <application>libpq</application> if using SSL
      and OpenSSL's pending-data buffer contains an exact multiple of 256
      bytes (David Binderman)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [23bd3cec6] 2018-09-13 12:36:21 -0400
Branch: REL_11_STABLE [995b4fe0b] 2019-06-14 11:25:13 -0400
Branch: REL_10_STABLE [8de574aa8] 2019-06-14 11:25:13 -0400
Branch: REL9_6_STABLE [75b0f21e1] 2019-06-14 11:25:13 -0400
Branch: REL9_5_STABLE [77dc741a1] 2019-06-14 11:25:13 -0400
Branch: REL9_4_STABLE [37011bcb3] 2019-06-14 11:25:13 -0400
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
Branch: master [e3846a00c] 2019-06-15 18:15:23 +0100
Branch: REL_11_STABLE [7f28fc8e9] 2019-06-15 18:16:43 +0100
Branch: REL_10_STABLE [2913a892e] 2019-06-15 18:18:03 +0100
Branch: REL9_6_STABLE [5f5b6667e] 2019-06-15 18:19:30 +0100
Branch: REL9_5_STABLE [6335f8a99] 2019-06-15 18:21:41 +0100
Branch: REL9_4_STABLE [6c66865f3] 2019-06-15 18:23:16 +0100
-->
     <para>
      Improve <application>initdb</application>'s handling of multiple
      equivalent names for the system time zone (Tom Lane, Andrew Gierth)
     </para>

     <para>
      Make <application>initdb</application> examine
      the <filename>/etc/localtime</filename> symbolic link, if that
      exists, to break ties between equivalent names for the system time
      zone.  This makes <application>initdb</application> more likely to
      select the time zone name that the user would expect when multiple
      identical time zones exist.  It will not change the behavior
      if <filename>/etc/localtime</filename> is not a symlink to a zone
      data file, nor if the time zone is determined from
      the <envar>TZ</envar> environment variable.
     </para>

     <para>
      Separately, prefer <literal>UTC</literal> over other spellings of
      that time zone, when neither <envar>TZ</envar>
      nor <filename>/etc/localtime</filename> provide a hint.  This fixes
      an annoyance introduced by <application>tzdata</application> 2019a's
      change to make the <literal>UCT</literal> and <literal>UTC</literal>
      zone names equivalent: <application>initdb</application> was then
      preferring <literal>UCT</literal>, which almost nobody wants.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [b8c6014a6] 2019-05-22 14:48:00 +0900
Branch: REL_11_STABLE [8357a413f] 2019-05-22 14:48:14 +0900
Branch: REL_10_STABLE [0c2a5a862] 2019-05-22 14:48:30 +0900
Branch: REL9_6_STABLE [a21fb12e7] 2019-05-22 14:48:39 +0900
Branch: master [156c0c2df] 2019-05-23 10:48:17 +0900
Branch: REL_11_STABLE [a7b2fca15] 2019-05-23 10:48:24 +0900
Branch: REL_10_STABLE [2ccebcd23] 2019-05-23 10:48:29 +0900
Branch: REL9_6_STABLE [c82e8ba00] 2019-05-23 10:48:35 +0900
-->
     <para>
      Fix ordering of <command>GRANT</command> commands emitted
      by <application>pg_dump</application>
      and <application>pg_dumpall</application> for databases and
      tablespaces (Nathan Bossart, Michael Paquier)
     </para>

     <para>
      If cascading grants had been issued, restore might fail due to
      the <command>GRANT</command> commands being given in an order that
      didn't respect their interdependencies.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [33a53130a] 2019-06-10 18:56:23 -0400
Branch: REL_11_STABLE [6a781c4f5] 2019-06-10 18:56:23 -0400
Branch: REL_10_STABLE [1eb8a5ea4] 2019-06-10 18:56:23 -0400
-->
     <para>
      Make <application>pg_dump</application> recreate table partitions
      using <command>CREATE TABLE</command> then <command>ATTACH
      PARTITION</command>, rather than including <literal>PARTITION
      OF</literal> in the creation command (&Aacute;lvaro Herrera, David
      Rowley)
     </para>

     <para>
      This avoids problems with the partition's column order possibly being
      changed to match the parent's.  Also, a partition is now restorable
      from the dump (as a standalone table) even if its parent table isn't
      restored; the <command>ATTACH</command> will fail, but that can just
      be ignored.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [e51bad8fb] 2019-05-11 13:00:54 +0900
Branch: REL_11_STABLE [e16ab408f] 2019-05-11 13:01:07 +0900
Branch: REL_10_STABLE [c6354e943] 2019-05-11 13:01:12 +0900
Branch: REL9_6_STABLE [0c132d458] 2019-05-11 13:01:19 +0900
Branch: REL9_5_STABLE [e17fba8d8] 2019-05-11 13:01:24 +0900
Branch: REL9_4_STABLE [82ed20e15] 2019-05-11 13:01:29 +0900
-->
     <para>
      Fix misleading error reports
      from <application>reindexdb</application> (Julien Rouhaud)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [3ae3c18b3] 2019-05-09 10:29:10 +0900
Branch: REL_11_STABLE [25f12acd5] 2019-05-09 10:29:29 +0900
Branch: REL_10_STABLE [db8802a99] 2019-05-09 10:29:40 +0900
Branch: REL9_6_STABLE [a9a886c6f] 2019-05-09 10:29:52 +0900
Branch: REL9_5_STABLE [a475b1e77] 2019-05-09 10:30:08 +0900
-->
     <para>
      Ensure that <application>vacuumdb</application> returns correct
      status if an error occurs while using parallel jobs
      (Julien Rouhaud)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [2cd4e8357] 2019-06-03 18:06:04 -0400
Branch: REL_11_STABLE [57e85fa2c] 2019-06-03 18:06:04 -0400
Branch: REL_10_STABLE [ba38967d7] 2019-06-03 18:06:04 -0400
Branch: REL9_6_STABLE [efa121ae6] 2019-06-03 18:06:04 -0400
-->
     <para>
      Fix <filename>contrib/auto_explain</filename> to not cause problems
      in parallel queries (Tom Lane)
     </para>

     <para>
      Previously, a parallel worker might try to log its query even if the
      parent query were not being logged
      by <filename>auto_explain</filename>.  This would work sometimes, but
      it's confusing, and in some cases it resulted in failures
      like <quote>could not find key N in shm TOC</quote>.
     </para>

     <para>
      Also, fix an off-by-one error that resulted in not necessarily
      logging every query even when the sampling rate is set to 1.0.
     </para>
    </listitem>

    <listitem>
<!--
Author: Etsuro Fujita <efujita@postgresql.org>
Branch: master [8b6da83d1] 2019-06-13 17:59:09 +0900
Branch: REL_11_STABLE [214460182] 2019-06-13 17:59:11 +0900
Branch: REL_10_STABLE [0f2b23426] 2019-06-13 17:59:12 +0900
Branch: REL9_6_STABLE [1ade21e7f] 2019-06-13 17:59:13 +0900
Branch: REL9_5_STABLE [eddb79705] 2019-06-13 17:59:15 +0900
Branch: REL9_4_STABLE [1a3d9f62c] 2019-06-13 17:59:17 +0900
-->
     <para>
      In <filename>contrib/postgres_fdw</filename>, account for possible
      data modifications by local <literal>BEFORE ROW UPDATE</literal>
      triggers (Shohei Mochizuki)
     </para>

     <para>
      If a trigger modified a column that was otherwise not changed by the
      <command>UPDATE</command>, the new value was not transmitted to the
      remote server.
     </para>
    </listitem>

    <listitem>
<!--
Author: Noah Misch <noah@leadboat.com>
Branch: master [d02768ddd] 2019-05-12 10:33:05 -0700
Branch: REL_11_STABLE [4ec14e5aa] 2019-05-12 10:33:08 -0700
Branch: REL_10_STABLE [409f5303c] 2019-05-12 10:33:08 -0700
Branch: REL9_6_STABLE [ff7555c4f] 2019-05-12 10:33:36 -0700
Branch: REL9_5_STABLE [9dc65bcf9] 2019-05-12 10:34:22 -0700
Branch: REL9_4_STABLE [08e3fd96f] 2019-05-12 10:34:26 -0700
-->
     <para>
      On Windows, avoid failure when the database encoding is set to
      SQL_ASCII and we attempt to log a non-ASCII string (Noah Misch)
     </para>

     <para>
      The code had been assuming that such strings must be in UTF-8, and
      would throw an error if they didn't appear to be validly encoded.
      Now, just transmit the untranslated bytes to the log.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [3f61b3205] 2019-05-31 12:34:54 -0400
Branch: REL_11_STABLE [312017fcc] 2019-05-31 12:34:54 -0400
Branch: REL_10_STABLE [683c17b30] 2019-05-31 12:34:54 -0400
Branch: REL9_6_STABLE [c332c94ad] 2019-05-31 12:34:55 -0400
Branch: REL9_5_STABLE [da53e4f93] 2019-05-31 12:34:55 -0400
Branch: REL9_4_STABLE [db5d99916] 2019-05-31 12:34:55 -0400
-->
     <para>
      Make <application>PL/pgSQL</application>'s header files C++-safe
      (George Tarasov)
     </para>
    </listitem>

   </itemizedlist>

  </sect2>
 </sect1>

 <sect1 id="release-11-3">
  <title>Release 11.3</title>

  <formalpara>
  <title>Release date:</title>
  <para>2019-05-09</para>
  </formalpara>

  <para>
   This release contains a variety of fixes from 11.2.
   For information about new features in major release 11, see
   <xref linkend="release-11"/>.
  </para>

  <sect2>
   <title>Migration to Version 11.3</title>

   <para>
    A dump/restore is not required for those running 11.X.
   </para>

   <para>
    However, if you are upgrading from a version earlier than 11.1,
    see <xref linkend="release-11-1"/>.
   </para>
  </sect2>

  <sect2>
   <title>Changes</title>

   <itemizedlist>

    <listitem>
<!--
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Branch: master [1aebfbea8] 2019-05-06 11:38:43 +0100
Branch: REL_11_STABLE [0027ee3c5] 2019-05-06 11:41:22 +0100
Branch: REL_10_STABLE [940802830] 2019-05-06 11:43:09 +0100
Branch: REL9_6_STABLE [085d64d9d] 2019-05-06 11:45:01 +0100
Branch: REL9_5_STABLE [93c36145a] 2019-05-06 11:46:33 +0100
-->
     <para>
      Prevent row-level security policies from being bypassed via
      selectivity estimators (Dean Rasheed)
     </para>

     <para>
      Some of the planner's selectivity estimators apply user-defined
      operators to values found in <structname>pg_statistic</structname>
      (e.g., most-common values).  A leaky operator therefore can disclose
      some of the entries in a data column, even if the calling user lacks
      permission to read that column.  In CVE-2017-7484 we added
      restrictions to forestall that, but we failed to consider the
      effects of row-level security.  A user who has SQL permission to
      read a column, but who is forbidden to see certain rows due to RLS
      policy, might still learn something about those rows' contents via a
      leaky operator.  This patch further tightens the rules, allowing
      leaky operators to be applied to statistics data only when there is
      no relevant RLS policy.  (CVE-2019-10130)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [91248608a] 2019-05-06 21:44:24 +0900
Branch: REL_11_STABLE [52635c276] 2019-05-06 21:44:39 +0900
-->
     <para>
      Avoid access to already-freed memory during partition routing error
      reports (Michael Paquier)
     </para>

     <para>
      This mistake could lead to a crash, and in principle it might be
      possible to use it to disclose server memory contents.
      (CVE-2019-10129)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [c01eb619a] 2019-04-26 17:18:07 -0400
Branch: REL_11_STABLE [02c359eed] 2019-04-26 17:18:07 -0400
-->
     <para>
      Avoid catalog corruption when an <command>ALTER TABLE</command> on a
      partitioned table finds that a partitioned index is reusable (Amit
      Langote, Tom Lane)
     </para>

     <para>
      This occurs, for example, when <command>ALTER COLUMN TYPE</command>
      finds that no physical table rewrite is required.
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
Branch: master [cd3e27464] 2019-04-29 08:49:03 +0200
Branch: REL_11_STABLE [474982fc3] 2019-04-29 08:49:14 +0200
Branch: REL_10_STABLE [10b2675d6] 2019-04-29 08:49:22 +0200
-->
     <para>
      Avoid catalog corruption when a temporary table with <literal>ON
      COMMIT DROP</literal> and an identity column is created in a
      single-statement transaction (Peter Eisentraut)
     </para>

     <para>
      This hazard was overlooked because the case is not actually useful,
      since the temporary table would be dropped immediately after
      creation.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [126d63122] 2019-03-26 20:19:28 -0300
Branch: REL_11_STABLE [7009f1a2d] 2019-03-26 20:19:39 -0300
-->
     <para>
      Fix failure in <command>ALTER INDEX ... ATTACH PARTITION</command>
      if the partitioned table contains more dropped columns than its
      partition does (&Aacute;lvaro Herrera)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [05b38c7e6] 2019-04-25 11:22:29 -0400
Branch: REL_11_STABLE [b1f570b57] 2019-04-25 11:37:08 -0400
-->
     <para>
      Fix failure to attach a partition's existing index to a newly-created
      partitioned index in some cases (Amit Langote, &Aacute;lvaro Herrera)
     </para>

     <para>
      This would lead to errors such as <quote>index ... not found in
      partition</quote> in subsequent DDL that uses the partitioned index.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [a8cb8f124] 2019-04-08 12:20:22 -0400
Branch: REL_11_STABLE [b291488da] 2019-04-08 12:20:22 -0400
Branch: REL_10_STABLE [1b5bbe4bc] 2019-04-08 12:20:23 -0400
-->
     <para>
      Avoid crash when an EPQ recheck is performed for a partitioned query
      result relation (Amit Langote)
     </para>

     <para>
      This occurs when using <literal>READ COMMITTED</literal> isolation
      level and another session has concurrently updated some of the
      target row(s).
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [964bae4d8] 2019-04-08 13:44:55 +0900
Branch: REL_11_STABLE [6b0208ebc] 2019-04-08 13:45:14 +0900
-->
     <para>
      Fix tuple routing in multi-level partitioned tables that have dropped
      attributes (Amit Langote, Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [46e3442c9] 2019-04-06 15:09:09 -0400
Branch: REL_11_STABLE [c2a5fb33d] 2019-04-06 15:09:10 -0400
-->
     <para>
      Fix failure when the slow path of foreign key constraint initial
      validation is applied to partitioned tables (Hadi Moshayedi, Tom
      Lane, Andres Freund)
     </para>

     <para>
      This didn't manifest except in the uncommon cases where the fast
      path can't be used (such as permissions problems).
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ab5fcf2b0] 2019-02-22 12:23:19 -0500
Branch: REL_11_STABLE [07fba9ad9] 2019-02-22 12:23:20 -0500
Branch: REL_10_STABLE [58947fbd5] 2019-02-22 12:23:21 -0500
Branch: REL9_6_STABLE [714344ae6] 2019-02-22 12:23:00 -0500
Branch: REL9_5_STABLE [0fe3f6dd4] 2019-02-22 12:23:00 -0500
Branch: REL9_4_STABLE [99a1554a2] 2019-02-22 12:23:00 -0500
Branch: master [159970bca] 2019-04-07 12:54:22 -0400
Branch: REL_11_STABLE [10e3991fa] 2019-04-07 12:54:26 -0400
Branch: REL_10_STABLE [67999b354] 2019-04-07 12:54:26 -0400
-->
     <para>
      Fix behavior for an <command>UPDATE</command>
      or <command>DELETE</command> on an inheritance tree or partitioned
      table in which every table can be excluded (Amit Langote, Tom Lane)
     </para>

     <para>
      In such cases, the query did not report the correct set of output
      columns when a <literal>RETURNING</literal> clause was present, and
      if there were any statement-level triggers that should be fired, it
      didn't fire them.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [e03ff7396] 2019-04-30 15:03:50 -0400
Branch: REL_11_STABLE [11ea45ffe] 2019-04-30 15:03:35 -0400
-->
     <para>
      When accessing a partition directly,
      and <varname>constraint_exclusion</varname> is set
      to <literal>on</literal>, use the partition's partition constraint
      as well as any <literal>CHECK</literal> constraints for exclusion
      checking (Amit Langote, Tom Lane)
     </para>

     <para>
      This change restores the behavior to what it was in v10.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [4d5840cea] 2019-04-19 11:20:37 -0400
Branch: REL_11_STABLE [0998f32ca] 2019-04-19 11:20:37 -0400
-->
     <para>
      Avoid server crash when an error occurs while trying to persist
      a cursor query across a transaction commit (Tom Lane)
     </para>

     <para>
      If a procedure attempts to commit while it has an open explicit or
      implicit cursor (for example, a PL/pgSQL <command>FOR</command>-loop
      query), the cursor must be executed to completion and its results
      saved before the transaction commit can be performed.  An error
      occurring during such execution led to a crash.
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
Branch: master [bb385c4fb] 2019-04-18 08:55:55 +0200
Branch: REL_11_STABLE [f993bacde] 2019-04-18 08:56:32 +0200
Branch: REL_10_STABLE [05d151e13] 2019-04-18 09:58:21 +0200
-->
     <para>
      Avoid throwing incorrect errors for updates of temporary tables and
      unlogged tables when a <literal>FOR ALL TABLES</literal> publication
      exists (Peter Eisentraut)
     </para>

     <para>
      Such tables should be ignored for publication purposes, but some
      parts of the code failed to do so.
     </para>
    </listitem>

    <listitem>
<!--
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Branch: master [41531e42d] 2019-02-20 08:30:21 +0000
Branch: REL_11_STABLE [fbec6fa38] 2019-02-20 08:28:42 +0000
Branch: REL_10_STABLE [2b1971c03] 2019-02-20 08:27:24 +0000
Branch: REL9_6_STABLE [d31e421d7] 2019-02-20 08:25:24 +0000
Branch: REL9_5_STABLE [90f91bfbd] 2019-02-20 08:22:52 +0000
Branch: REL9_4_STABLE [5a73edf05] 2019-02-20 08:19:55 +0000
Branch: master [ed4653db8] 2019-03-03 10:51:13 +0000
Branch: REL_11_STABLE [6ccb97337] 2019-03-03 10:52:54 +0000
Branch: REL_10_STABLE [0a0844630] 2019-03-03 10:54:55 +0000
Branch: REL9_6_STABLE [133923aeb] 2019-03-03 10:56:05 +0000
Branch: REL9_5_STABLE [556fdd49c] 2019-03-03 10:57:37 +0000
Branch: REL9_4_STABLE [431471e1f] 2019-03-03 10:58:45 +0000
-->
     <para>
      Fix handling of explicit <literal>DEFAULT</literal> items in
      an <command>INSERT ... VALUES</command> command with
      multiple <literal>VALUES</literal> rows, if the target relation is
      an updatable view (Amit Langote, Dean Rasheed)
     </para>

     <para>
      When the updatable view has no default for the column but its
      underlying table has one, a single-row <command>INSERT
      ... VALUES</command> will use the underlying table's default.
      In the multi-row case, however, NULL was always used.  Correct it to
      act like the single-row case.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [a32ca7883] 2019-02-17 12:37:31 -0500
Branch: REL_11_STABLE [4eca1905d] 2019-02-17 12:37:31 -0500
Branch: REL_10_STABLE [b355be443] 2019-02-17 12:37:32 -0500
Branch: REL9_6_STABLE [1f29a1d22] 2019-02-17 12:37:32 -0500
Branch: REL9_5_STABLE [0b476cf62] 2019-02-17 12:37:32 -0500
Branch: REL9_4_STABLE [9fdc49d08] 2019-02-17 12:37:32 -0500
-->
     <para>
      Fix <command>CREATE VIEW</command> to allow zero-column views
      (Ashutosh Sharma)
     </para>

     <para>
      We should allow this for consistency with allowing zero-column
      tables.  Since a table can be converted to a view, zero-column views
      could be created even with the restriction in place, leading to
      dump/reload failures.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [331a613e9] 2019-02-15 17:12:24 +0900
Branch: REL_11_STABLE [75aba11ec] 2019-02-15 17:12:31 +0900
Branch: REL_10_STABLE [3a2923a9b] 2019-02-15 17:12:36 +0900
Branch: REL9_6_STABLE [d08fae377] 2019-02-15 17:12:46 +0900
Branch: REL9_5_STABLE [06cdab9df] 2019-02-15 17:12:51 +0900
-->
     <para>
      Add missing support for <command>CREATE TABLE IF NOT EXISTS ... AS
      EXECUTE ...</command> (Andreas Karlsson)
     </para>

     <para>
      The combination of <literal>IF NOT EXISTS</literal>
      and <literal>EXECUTE</literal> should work, but the grammar omitted
      it.
     </para>
    </listitem>

    <listitem>
<!--
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Branch: master [e2d28c0f4] 2019-04-02 08:13:59 +0100
Branch: REL_11_STABLE [157dcf534] 2019-04-02 08:17:04 +0100
Branch: REL_10_STABLE [db4bc9994] 2019-04-02 08:19:09 +0100
Branch: REL9_6_STABLE [1b9a2f458] 2019-04-02 08:20:55 +0100
Branch: REL9_5_STABLE [2e606d0ad] 2019-04-02 08:22:48 +0100
-->
     <para>
      Ensure that sub-<command>SELECT</command>s appearing in
      row-level-security policy expressions are executed with the correct
      user's permissions (Dean Rasheed)
     </para>

     <para>
      Previously, if the table having the RLS policy was accessed via a
      view, such checks might be executed as the user calling the view,
      not as the view owner as they should be.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [8d1dadb25] 2019-03-23 16:51:37 -0400
Branch: REL_11_STABLE [849f87a1c] 2019-03-23 16:24:30 -0400
Branch: REL_10_STABLE [754ffcd42] 2019-03-23 16:24:30 -0400
Branch: REL9_6_STABLE [d7cfd5ee4] 2019-03-23 16:24:30 -0400
Branch: REL9_5_STABLE [da45927ce] 2019-03-23 16:24:30 -0400
Branch: REL9_4_STABLE [78f84fe0f] 2019-03-23 16:24:30 -0400
Branch: REL_10_STABLE [d88d71e31] 2019-03-23 17:35:04 -0400
Branch: REL9_6_STABLE [c4c2958c6] 2019-03-23 17:35:04 -0400
Branch: REL9_5_STABLE [809cccc35] 2019-03-23 17:35:05 -0400
Branch: REL9_4_STABLE [d5e9e2330] 2019-03-23 17:35:05 -0400
Branch: master [f778e537a] 2019-03-23 17:40:19 -0400
Branch: REL_11_STABLE [e319f03d1] 2019-03-23 17:40:19 -0400
Branch: REL_10_STABLE [581b890c2] 2019-03-23 17:40:19 -0400
Branch: REL9_6_STABLE [87a44b6cf] 2019-03-23 17:40:19 -0400
Branch: REL9_5_STABLE [06c320c8a] 2019-03-23 17:40:19 -0400
Branch: REL9_4_STABLE [432356a9d] 2019-03-23 17:40:19 -0400
Branch: master [4870dce37] 2019-03-23 16:51:37 -0400
Branch: REL_11_STABLE [7c89f350f] 2019-03-23 16:51:25 -0400
Branch: REL_10_STABLE [de922529f] 2019-03-23 16:51:25 -0400
Branch: REL9_6_STABLE [687acb598] 2019-03-23 16:51:25 -0400
Branch: REL9_5_STABLE [08d8cfe3c] 2019-03-23 16:51:26 -0400
Branch: REL9_4_STABLE [8ba485422] 2019-03-23 16:51:26 -0400
-->
     <para>
      Accept XML documents as valid values of type <type>xml</type>
      when <varname>xmloption</varname> is set
      to <literal>content</literal>, as required by SQL:2006 and later
      (Chapman Flack)
     </para>

     <para>
      Previously <productname>PostgreSQL</productname> followed the
      SQL:2003 definition, which doesn't allow this.  But that creates a
      serious problem for dump/restore: there is no setting
      of <varname>xmloption</varname> that will accept all valid XML data.
      Hence, switch to the 2006 definition.
     </para>

     <para>
      <application>pg_dump</application> is also modified to emit
      <literal>SET xmloption = content</literal> while restoring data,
      ensuring that dump/restore works even if the prevailing
      setting is <literal>document</literal>.
     </para>
    </listitem>

    <listitem>
<!--
Author: Noah Misch <noah@leadboat.com>
Branch: master [c09850992] 2019-04-12 22:36:38 -0700
Branch: REL_11_STABLE [7ef2b313e] 2019-04-12 22:36:42 -0700
Branch: REL_10_STABLE [6d81e3c65] 2019-04-12 22:36:42 -0700
Branch: REL9_6_STABLE [808e1e75f] 2019-04-12 22:39:52 -0700
Branch: REL9_5_STABLE [c565de643] 2019-04-12 22:41:42 -0700
Branch: REL9_4_STABLE [3ef5e16c6] 2019-04-12 22:41:45 -0700
Branch: master [4ab02e815] 2019-04-14 20:02:19 -0700
Branch: REL_11_STABLE [0bdf6d635] 2019-04-14 20:02:22 -0700
Branch: REL_10_STABLE [4543ef36f] 2019-04-14 20:03:48 -0700
Branch: REL9_6_STABLE [9f65081cf] 2019-04-14 20:04:03 -0700
-->
     <para>
      Improve server's startup-time checks for whether a pre-existing
      shared memory segment is still in use (Noah Misch)
     </para>

     <para>
      The postmaster is now more likely to detect that there are still
      active processes from a previous postmaster incarnation, even if
      the <filename>postmaster.pid</filename> file has been removed.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: master [1e8719818] 2019-04-15 20:20:43 +0300
Branch: REL_11_STABLE [0d68ad3fc] 2019-04-15 21:52:32 +0300
-->
     <para>
      Avoid possible division-by-zero in btree index vacuum logic
      (Piotr Stefaniak, Alexander Korotkov)
     </para>

     <para>
      This could lead to incorrect decisions about whether index cleanup is
      needed.
     </para>
    </listitem>

    <listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
Branch: master [bdf35744b] 2019-04-10 08:24:15 +0530
Branch: REL_11_STABLE [036f7d378] 2019-04-10 08:36:42 +0530
Branch: REL_10_STABLE [7657072e0] 2019-04-10 08:47:39 +0530
Branch: REL9_6_STABLE [09630a1e9] 2019-04-10 09:00:09 +0530
-->
     <para>
      Avoid counting parallel workers' transactions as separate
      transactions (Haribabu Kommi)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: REL_11_STABLE [89f39736f] 2019-03-24 15:26:45 +0300
Branch: REL_10_STABLE [e23d44016] 2019-03-24 15:41:32 +0300
Branch: REL9_6_STABLE [f8a69a68a] 2019-03-24 15:44:31 +0300
Branch: REL9_5_STABLE [cda5f6575] 2019-03-24 15:44:56 +0300
Branch: REL9_4_STABLE [d1166af19] 2019-03-24 16:31:23 +0300
-->
     <para>
      Fix incompatibility of GIN-index WAL records (Alexander Korotkov)
     </para>

     <para>
      A fix applied in February's minor releases was not sufficiently
      careful about backwards compatibility, leading to problems if a
      standby server of that vintage reads GIN page-deletion WAL records
      generated by a primary server of a previous minor release.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [c34677fda] 2019-04-15 12:34:32 +0900
Branch: REL_11_STABLE [512902643] 2019-04-15 12:34:51 +0900
Branch: REL_10_STABLE [ab359624b] 2019-04-15 12:35:02 +0900
-->
     <para>
      Fix possible crash while executing a <command>SHOW</command> command
      in a replication connection (Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [f2004f19e] 2019-03-18 17:54:41 -0400
Branch: REL_11_STABLE [adf27de8e] 2019-03-18 17:54:43 -0400
-->
     <para>
      Avoid server memory leak when fetching rows from a portal one at a
      time (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [5f1433ac5] 2019-04-13 13:22:26 -0400
Branch: REL_11_STABLE [089e4d405] 2019-04-13 13:22:26 -0400
Branch: REL_10_STABLE [d4c50b4b1] 2019-04-13 13:22:26 -0400
-->
     <para>
      Avoid memory leak when a partition's relation cache entry is rebuilt
      (Amit Langote, Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [483520eca] 2019-02-24 22:37:20 +1300
Branch: REL_11_STABLE [30dcb6270] 2019-02-24 22:43:54 +1300
Branch: REL_10_STABLE [387483e89] 2019-02-24 22:44:18 +1300
Branch: REL9_6_STABLE [64b8c51bc] 2019-02-24 22:44:57 +1300
Branch: master [f16735d80] 2019-02-24 23:50:20 +1300
Branch: REL_11_STABLE [4d67357db] 2019-02-24 23:51:54 +1300
Branch: REL_10_STABLE [bcf627834] 2019-02-24 23:52:20 +1300
Branch: REL9_6_STABLE [ad714c607] 2019-02-24 23:59:26 +1300
Branch: REL9_5_STABLE [0ec89a0f6] 2019-02-25 00:02:15 +1300
Branch: REL9_4_STABLE [ede6b1962] 2019-02-25 00:02:56 +1300
-->
     <para>
      Tolerate <literal>EINVAL</literal> and <literal>ENOSYS</literal>
      error results, where appropriate, for <function>fsync</function>
      and <function>sync_file_range</function> calls
      (Thomas Munro, James Sewell)
     </para>

     <para>
      The previous change to panic on file synchronization failures turns
      out to have been excessively paranoid for certain cases where a
      failure is predictable and essentially means <quote>operation not
      supported</quote>.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [98098faaf] 2019-02-22 13:00:16 -0300
Branch: REL_11_STABLE [630de1131] 2019-02-22 13:00:15 -0300
Branch: REL_10_STABLE [398cc6fb9] 2019-02-22 13:00:15 -0300
-->
     <para>
      Report correct relation name in
      autovacuum's <structname>pg_stat_activity</structname> display
      during BRIN summarize operations (&Aacute;lvaro Herrera)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [7ad6498fd] 2019-03-30 12:48:32 -0400
Branch: REL_11_STABLE [d70c147fa] 2019-03-30 12:48:19 -0400
-->
     <para>
      Avoid crash when trying to plan a partition-wise join when GEQO
      is active (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [45f8eaa8e] 2019-04-08 16:09:26 -0400
Branch: REL_11_STABLE [68e745ed0] 2019-04-08 16:09:27 -0400
Branch: REL_10_STABLE [051c71c67] 2019-04-08 16:09:29 -0400
Branch: REL9_6_STABLE [23791c415] 2019-04-08 16:09:07 -0400
Branch: REL9_5_STABLE [2f78974e2] 2019-04-08 16:09:07 -0400
Branch: REL9_4_STABLE [c6df3a28f] 2019-04-08 16:09:07 -0400
-->
     <para>
      Fix <quote>failed to build any <replaceable>N</replaceable>-way
      joins</quote> planner failures with lateral references leading out
      of <literal>FULL</literal> outer joins (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [1d3385840] 2019-03-07 14:22:13 -0500
Branch: REL_11_STABLE [925f46ffb] 2019-03-07 14:21:52 -0500
Branch: REL_10_STABLE [19ff710aa] 2019-03-07 14:21:52 -0500
-->
     <para>
      Fix misplanning of queries in which a set-returning function is
      applied to a relation that is provably empty (Tom Lane, Julien
      Rouhaud)
     </para>

     <para>
      In v10, this oversight only led to slightly inefficient plans, but
      in v11 it could cause <quote>set-valued function called in context
      that cannot accept a set</quote> errors.
     </para>
    </listitem>

    <listitem>
<!--
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Branch: master [a0905056f] 2019-05-06 11:54:32 +0100
Branch: REL_11_STABLE [98dad4cd4] 2019-05-06 11:56:37 +0100
Branch: REL_10_STABLE [ca74e3e0f] 2019-05-06 11:58:32 +0100
Branch: REL9_6_STABLE [71185228c] 2019-05-06 12:00:00 +0100
Branch: REL9_5_STABLE [01256815a] 2019-05-06 12:01:44 +0100
Branch: REL9_4_STABLE [3c0999909] 2019-05-06 12:05:05 +0100
-->
     <para>
      Check the appropriate user's permissions when enforcing rules about
      letting a leaky operator see <structname>pg_statistic</structname>
      data (Dean Rasheed)
     </para>

     <para>
      When an underlying table is being accessed via a view, consider the
      privileges of the view owner while deciding whether leaky operators
      may be applied to the table's statistics data, rather than the
      privileges of the user making the query.  This makes the planner's
      rules about what data is visible match up with the executor's,
      avoiding unnecessarily-poor plans.
     </para>
    </listitem>

    <listitem>
<!--
Author: Etsuro Fujita <efujita@postgresql.org>
Branch: master [b5afdde6a] 2019-03-12 16:21:57 +0900
Branch: REL_11_STABLE [fd1eaf920] 2019-03-12 16:32:27 +0900
-->
     <para>
      Fix planner's parallel-safety assessment for grouped queries
      (Etsuro Fujita)
     </para>

     <para>
      Previously, target-list evaluation work that could have been
      parallelized might not be.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [75c46149f] 2019-02-12 18:38:32 -0500
Branch: REL_11_STABLE [364857f73] 2019-02-12 18:38:33 -0500
-->
     <para>
      Fix mishandling of <quote>included</quote> index columns in
      planner's unique-index logic (Tom Lane)
     </para>

     <para>
      This could result in failing to recognize that a unique index with
      included columns proves uniqueness of a query result, leading to a
      poor plan.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [1571bc0f0] 2019-02-20 13:36:55 -0500
Branch: REL_11_STABLE [93ec0c90c] 2019-02-20 13:36:55 -0500
-->
     <para>
      Fix incorrect strictness check for array coercion expressions
      (Tom Lane)
     </para>

     <para>
      This might allow, for example, incorrect inlining of a strict SQL
      function, leading to non-enforcement of the strictness condition.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [fa86238f1] 2019-02-20 20:53:17 -0500
Branch: REL_11_STABLE [e22bfe94e] 2019-02-20 20:53:08 -0500
Branch: REL_10_STABLE [affee8b14] 2019-02-20 20:53:08 -0500
Branch: REL9_6_STABLE [09c9dd39e] 2019-02-20 20:53:08 -0500
-->
     <para>
      Speed up planning when there are many equality conditions and many
      potentially-relevant foreign key constraints (David Rowley)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
Branch: master [6ca015f9f] 2019-03-27 02:39:39 +0100
Branch: REL_11_STABLE [fb0b5b0b8] 2019-03-27 03:18:54 +0100
Branch: REL_10_STABLE [5601f9fb9] 2019-03-27 03:19:33 +0100
Branch: REL9_6_STABLE [0a5dcb87a] 2019-03-27 03:20:10 +0100
Branch: REL9_5_STABLE [261aa218c] 2019-03-27 03:20:57 +0100
Branch: REL9_4_STABLE [31737eb43] 2019-03-27 03:24:35 +0100
-->
     <para>
      Avoid O(N^2) performance issue when rolling back a transaction that
      created many tables (Tomas Vondra)
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [7215efdc0] 2019-02-13 13:24:11 +1300
Branch: REL_11_STABLE [b8386b036] 2019-02-13 13:25:27 +1300
Branch: REL_10_STABLE [2cfdf24e7] 2019-02-13 13:32:05 +1300
Branch: master [29ddb548f] 2019-02-25 11:11:40 +1300
Branch: REL_11_STABLE [50ae61903] 2019-02-25 11:12:57 +1300
Branch: REL_10_STABLE [406e937d1] 2019-02-25 11:13:50 +1300
-->
     <para>
      Fix corner-case server crashes in dynamic shared memory
      allocation (Thomas Munro, Robert Haas)
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [0b55aaace] 2019-02-18 09:58:29 +1300
Branch: REL_11_STABLE [1d93d1804] 2019-02-18 09:59:27 +1300
Branch: REL_10_STABLE [7718a9920] 2019-02-18 10:02:37 +1300
Branch: master [6c0fb9418] 2019-02-15 14:05:09 +1300
Branch: REL_11_STABLE [faf132449] 2019-02-15 13:34:51 +1300
Branch: REL_10_STABLE [cb3d674e1] 2019-02-15 13:41:02 +1300
Branch: REL9_6_STABLE [cb0680573] 2019-02-15 13:44:50 +1300
Branch: REL9_5_STABLE [b7c8766d3] 2019-02-15 13:48:08 +1300
Branch: REL9_4_STABLE [bd195071f] 2019-02-15 13:54:27 +1300
-->
     <para>
      Fix race conditions in management of dynamic shared memory
      (Thomas Munro)
     </para>
     <para>
      These could lead to <quote>dsa_area could not attach to
      segment</quote> or <quote>cannot unpin a segment that is not
      pinned</quote> errors.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [0fae84623] 2019-04-24 14:15:44 -0400
Branch: REL_11_STABLE [f8642fb17] 2019-04-24 14:15:44 -0400
Branch: REL_10_STABLE [a0bbd012d] 2019-04-24 14:15:44 -0400
Branch: REL9_6_STABLE [ec537c1e8] 2019-04-24 14:15:45 -0400
Branch: REL9_5_STABLE [c7e38be4d] 2019-04-24 14:15:45 -0400
Branch: REL9_4_STABLE [f0c82454d] 2019-04-24 14:15:45 -0400
-->
     <para>
      Fix race condition in which a hot-standby postmaster could fail to
      shut down after receiving a smart-shutdown request (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [5721b9b3c] 2019-02-20 11:26:08 -0300
Branch: REL_11_STABLE [728ac262d] 2019-02-20 11:22:48 -0300
Branch: REL_10_STABLE [ddad002de] 2019-02-20 11:22:13 -0300
Branch: REL9_6_STABLE [e4542ca96] 2019-02-20 09:12:02 -0300
Branch: REL9_5_STABLE [545928bbb] 2019-02-20 09:16:00 -0300
-->
     <para>
      Fix possible crash
      when <function>pg_identify_object_as_address()</function> is given
      invalid input (&Aacute;lvaro Herrera)
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [d2fd7f74e] 2019-03-27 21:30:04 +1300
Branch: REL_11_STABLE [26d4fda37] 2019-03-27 21:30:49 +1300
Branch: REL_10_STABLE [339927797] 2019-03-27 21:31:29 +1300
-->
     <para>
      Fix possible <quote>could not access status of transaction</quote>
      failures in <function>txid_status()</function> (Thomas Munro)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [87c346a35] 2019-02-28 09:40:28 +0900
Branch: REL_11_STABLE [d9bba27c8] 2019-02-28 09:40:39 +0900
-->
     <para>
      Fix authentication failure when attempting to use SCRAM
      authentication with mixed OpenSSL library versions (Michael Paquier,
      Peter Eisentraut)
     </para>

     <para>
      If <application>libpq</application> is using OpenSSL 1.0.1 or older
      while the server is using OpenSSL 1.0.2 or newer, the negotiation of
      which SASL mechanism to use went wrong, leading to a
      confusing <quote>channel binding not supported by this build</quote>
      error message.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [ccae190b9] 2019-04-23 15:43:21 +0900
Branch: REL_11_STABLE [7f56d4366] 2019-04-23 15:43:32 +0900
Branch: REL_10_STABLE [15fe91e70] 2019-04-23 15:43:38 +0900
Branch: REL9_6_STABLE [af298f00a] 2019-04-24 09:05:25 +0900
Branch: REL9_5_STABLE [20dbc84bd] 2019-04-24 09:05:30 +0900
Branch: REL9_4_STABLE [a82c06f40] 2019-04-24 09:05:37 +0900
-->
     <para>
      Tighten validation of encoded SCRAM-SHA-256 and MD5 passwords
      (Jonathan Katz)
     </para>

     <para>
      A password string that had the right initial characters could be
      mistaken for one that is correctly hashed into SCRAM-SHA-256 or MD5
      format.  The password would be accepted but would be unusable later.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [7ad1cd31b] 2019-04-23 18:51:30 -0400
Branch: REL_11_STABLE [e899df6a2] 2019-04-23 18:51:31 -0400
Branch: REL_10_STABLE [7c02c3f75] 2019-04-23 18:51:31 -0400
Branch: REL9_6_STABLE [1e5de9662] 2019-04-23 18:51:31 -0400
Branch: REL9_5_STABLE [74589026f] 2019-04-23 18:51:31 -0400
Branch: REL9_4_STABLE [c0bafc5e5] 2019-04-23 18:51:31 -0400
-->
     <para>
      Fix handling of <varname>lc_time</varname> settings that imply an
      encoding different from the database's encoding (Juan Jos&eacute;
      Santamar&iacute;a Flecha, Tom Lane)
     </para>

     <para>
      Localized month or day names that include non-ASCII characters
      previously caused unexpected errors or wrong output in such locales.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [276d2e6c2] 2019-03-24 21:00:35 +0900
Branch: REL_11_STABLE [7d7435c5c] 2019-03-24 21:01:10 +0900
-->
     <para>
      Create the <filename>current_logfiles</filename> file with the same
      permissions as other files in the server's data directory
      (Haribabu Kommi)
     </para>

     <para>
      Previously it used the permissions specified
      by <varname>log_file_mode</varname>, but that can cause problems for
      backup utilities.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [4cae471d1] 2019-04-10 19:02:21 -0400
Branch: REL_11_STABLE [930930c47] 2019-04-10 19:02:32 -0400
Branch: REL_10_STABLE [99bbff5c1] 2019-04-10 19:02:58 -0400
Branch: REL9_6_STABLE [62d495395] 2019-04-10 19:03:14 -0400
Branch: REL9_5_STABLE [b9b7fe8ca] 2019-04-10 19:03:29 -0400
-->
     <para>
      Fix incorrect <varname>operator_precedence_warning</varname> checks
      involving unary minus operators (Rikard Falkeborn)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ac75959cd] 2019-03-10 12:59:16 -0400
Branch: REL_11_STABLE [bc2232f2f] 2019-03-10 12:58:52 -0400
Branch: REL_10_STABLE [f9ec64df8] 2019-03-10 12:58:52 -0400
Branch: REL9_6_STABLE [5aafedc2f] 2019-03-10 12:58:52 -0400
Branch: REL9_5_STABLE [d8f8183c0] 2019-03-10 12:58:52 -0400
Branch: REL9_4_STABLE [e04bb2616] 2019-03-10 12:58:52 -0400
-->
     <para>
      Disallow <literal>NaN</literal> as a value for floating-point server
      parameters (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [3dbb317d3] 2019-04-29 19:42:08 -0700
Branch: REL_11_STABLE [14323493d] 2019-04-29 19:42:09 -0700
Branch: REL_10_STABLE [f495b65a5] 2019-04-29 19:42:09 -0700
Branch: REL9_6_STABLE [17126e089] 2019-04-29 19:42:58 -0700
Branch: REL9_5_STABLE [670a492c5] 2019-04-29 19:43:32 -0700
Branch: REL9_4_STABLE [e7418f89f] 2019-04-29 19:48:58 -0700
Branch: master [4b40d40b3] 2019-04-30 17:45:32 -0700
Branch: REL_11_STABLE [d264bb51c] 2019-04-30 17:45:32 -0700
Branch: REL_10_STABLE [d8d5e1ae5] 2019-04-30 17:45:32 -0700
Branch: REL9_6_STABLE [d18f5ff90] 2019-04-30 17:45:32 -0700
Branch: REL9_5_STABLE [5409e359f] 2019-04-30 17:45:32 -0700
Branch: REL9_4_STABLE [40230f0e2] 2019-04-30 17:45:32 -0700
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [f912d7dec] 2019-05-02 19:11:28 -0400
Branch: REL_11_STABLE [727c155cf] 2019-05-02 19:11:28 -0400
Branch: REL_10_STABLE [18138066f] 2019-05-02 19:11:28 -0400
Branch: REL9_6_STABLE [2bb1adfac] 2019-05-02 19:11:28 -0400
Branch: REL9_5_STABLE [d18ef6905] 2019-05-02 19:11:28 -0400
Branch: REL9_4_STABLE [5f8e84ff4] 2019-05-02 19:11:29 -0400
-->
     <para>
      Rearrange <command>REINDEX</command> processing to avoid assertion
      failures when reindexing individual indexes
      of <structname>pg_class</structname> (Andres Freund, Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [0a9d7e1f6] 2019-03-14 12:16:36 -0400
Branch: REL_11_STABLE [5b866005c] 2019-03-14 12:16:09 -0400
Branch: REL_10_STABLE [d4b754c87] 2019-03-14 12:16:09 -0400
Branch: REL9_6_STABLE [0255329a7] 2019-03-14 12:16:09 -0400
Branch: REL9_5_STABLE [71288846e] 2019-03-14 12:16:10 -0400
Branch: REL9_4_STABLE [98f8ffa18] 2019-03-14 12:16:10 -0400
-->
     <para>
      Fix planner assertion failure for parameterized dummy paths (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [56fadbedb] 2019-02-20 12:31:07 +0900
Branch: REL_11_STABLE [7ed9285c6] 2019-02-20 12:31:27 +0900
Branch: REL_10_STABLE [a80f5c279] 2019-02-20 12:31:32 +0900
Branch: REL9_6_STABLE [f13188951] 2019-02-20 12:31:45 +0900
Branch: REL9_5_STABLE [03cd99a8e] 2019-02-20 12:32:15 +0900
Branch: REL9_4_STABLE [2ad57e9e9] 2019-02-20 12:32:23 +0900
-->
     <para>
      Insert correct test function in the result
      of <function>SnapBuildInitialSnapshot()</function> (Antonin Houska)
     </para>

     <para>
      No core code cares about this, but some extensions do.
     </para>
    </listitem>

    <listitem>
<!--
Author: Noah Misch <noah@leadboat.com>
Branch: master [617dc6d29] 2019-04-08 21:39:00 -0700
Branch: REL_11_STABLE [e45a8ff87] 2019-04-08 21:39:03 -0700
Branch: REL_10_STABLE [f5989b379] 2019-04-08 21:39:04 -0700
Branch: REL9_6_STABLE [57ebbbb8f] 2019-04-08 21:39:04 -0700
Branch: REL9_5_STABLE [7a5677818] 2019-04-08 21:39:04 -0700
Branch: REL9_4_STABLE [203886d3a] 2019-04-08 21:39:05 -0700
Branch: master [ba3fb5d4f] 2019-04-09 08:25:39 -0700
Branch: REL_11_STABLE [47b6362b5] 2019-04-09 08:25:42 -0700
Branch: REL_10_STABLE [4c9e54572] 2019-04-09 08:25:42 -0700
Branch: REL9_6_STABLE [3318c4555] 2019-04-09 08:25:42 -0700
Branch: REL9_5_STABLE [292e2000e] 2019-04-09 08:25:43 -0700
Branch: REL9_4_STABLE [3105844e2] 2019-04-09 08:25:43 -0700
-->
     <para>
      Fix intermittent <quote>could not reattach to shared memory</quote>
      session startup failures on Windows (Noah Misch)
     </para>

     <para>
      A previously unrecognized source of these failures is creation of
      thread stacks for a process's default thread pool.  Arrange for such
      stacks to be allocated in a different memory region.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [754b90f65] 2019-03-04 09:49:06 +0900
Branch: REL_11_STABLE [8722c4dac] 2019-03-04 09:50:02 +0900
Branch: REL_10_STABLE [9aa59e64b] 2019-03-04 09:50:06 +0900
Branch: REL9_6_STABLE [d95133163] 2019-03-04 09:50:14 +0900
Branch: REL9_5_STABLE [977f83377] 2019-03-04 09:50:19 +0900
Branch: REL9_4_STABLE [81f5b3283] 2019-03-04 09:50:24 +0900
-->
     <para>
      Fix error detection in directory scanning on Windows (Konstantin
      Knizhnik)
     </para>

     <para>
      Errors, such as lack of permissions to read the directory, were not
      detected or reported correctly; instead the code silently acted as
      though the directory were empty.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [9e138a401] 2019-02-24 12:51:50 -0500
Branch: REL_11_STABLE [de94ed89d] 2019-02-24 12:51:50 -0500
Branch: REL_10_STABLE [8ec638e69] 2019-02-24 12:51:50 -0500
Branch: REL9_6_STABLE [904fce2a7] 2019-02-24 12:51:50 -0500
Branch: REL9_5_STABLE [3a682a21b] 2019-02-24 12:51:51 -0500
Branch: REL9_4_STABLE [53c2bb78d] 2019-02-24 12:51:51 -0500
-->
     <para>
      Fix grammar problems in <application>ecpg</application> (Tom Lane)
     </para>

     <para>
      A missing semicolon led to mistranslation
      of <literal>SET <replaceable>variable</replaceable> =
      DEFAULT</literal> (but
      not <literal>SET <replaceable>variable</replaceable> TO
      DEFAULT</literal>) in <application>ecpg</application> programs,
      producing syntactically invalid output that the server would reject.
      Additionally, in a <command>DROP TYPE</command> or <command>DROP
      DOMAIN</command> command that listed multiple type names, only the
      first type name was actually processed.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Meskes <meskes@postgresql.org>
Branch: master [e81f0e311] 2019-02-18 11:57:34 +0100
Branch: REL_11_STABLE [3530c508c] 2019-02-18 12:01:34 +0100
Branch: REL_10_STABLE [f647a5fb0] 2019-02-18 12:05:14 +0100
Branch: REL9_6_STABLE [10b3299b6] 2019-02-18 12:08:18 +0100
Branch: REL9_5_STABLE [180606b68] 2019-02-18 12:16:45 +0100
-->
     <para>
      Sync <application>ecpg</application>'s syntax for <command>CREATE
      TABLE AS</command> with the server's (Daisuke Higuchi)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Meskes <meskes@postgresql.org>
Branch: master [08cecfaf6] 2019-03-11 16:11:16 +0100
Branch: REL_11_STABLE [e7adda86b] 2019-03-11 16:14:03 +0100
Branch: REL_10_STABLE [5469a1e78] 2019-03-11 16:15:09 +0100
Branch: REL9_6_STABLE [8cdce0a45] 2019-03-11 16:26:59 +0100
Branch: REL9_5_STABLE [72f725ab2] 2019-03-11 16:17:17 +0100
Branch: REL9_4_STABLE [e7e78f159] 2019-03-11 16:18:17 +0100
Branch: master [ed16ba324] 2019-04-11 20:56:17 +0200
Branch: REL_11_STABLE [0ba09cc02] 2019-04-11 21:04:37 +0200
Branch: REL_10_STABLE [e7e71b9e1] 2019-04-11 21:05:39 +0200
Branch: REL9_6_STABLE [773006848] 2019-04-11 21:05:59 +0200
Branch: REL9_5_STABLE [67f6e645e] 2019-04-11 21:06:10 +0200
Branch: REL9_4_STABLE [12c42a543] 2019-04-11 21:06:21 +0200
-->
     <para>
      Fix possible buffer overruns in <application>ecpg</application>'s
      processing of include filenames (Liu Huailing, Fei Wu)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [a7eadaaaa] 2019-03-18 10:34:45 +0900
Branch: REL_11_STABLE [dcf2a0db8] 2019-03-18 10:35:01 +0900
-->
     <para>
      Fix <application>pg_rewind</application> failures due to failure to
      remove some transient files in the target data directory (Michael
      Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [c9ae7f704] 2019-03-13 09:51:02 +0900
Branch: REL_11_STABLE [501f58359] 2019-03-13 09:51:25 +0900
-->
     <para>
      Make <application>pg_verify_checksums</application> verify that the
      data directory it's pointed at is of the
      right <productname>PostgreSQL</productname> version (Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [8cad5adb9] 2019-04-27 13:15:54 -0400
Branch: REL_11_STABLE [1bf52d688] 2019-04-27 13:15:54 -0400
Branch: REL_10_STABLE [c25e638b1] 2019-04-27 13:15:55 -0400
-->
     <para>
      Avoid crash in <filename>contrib/postgres_fdw</filename> when a
      query using remote grouping or aggregation has
      a <literal>SELECT</literal>-list item that is an uncorrelated
      sub-select, outer reference, or parameter symbol (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Etsuro Fujita <efujita@postgresql.org>
Branch: master [5c4704918] 2019-04-24 18:31:50 +0900
Branch: REL_11_STABLE [7a3d05534] 2019-04-24 18:31:51 +0900
-->
     <para>
      Change <filename>contrib/postgres_fdw</filename> to report an error
      when a remote partition chosen to insert a routed row into is
      also an <command>UPDATE</command> subplan target that will be
      updated later in the same command (Amit Langote, Etsuro Fujita)
     </para>

     <para>
      Previously, such situations led to server crashes or incorrect
      results of the <command>UPDATE</command>.  Allowing such cases to
      work correctly is a matter for future work.
     </para>
    </listitem>

    <listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
Branch: master [1459e84cb] 2019-03-18 15:22:42 -0400
Branch: REL_11_STABLE [fc8b39a46] 2019-03-18 15:30:32 -0400
-->
     <para>
      In <filename>contrib/pg_prewarm</filename>, avoid indefinitely
      respawning background worker processes if prewarming fails for some
      reason (Mithun Cy)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [bd9396a0b] 2019-03-24 15:13:20 -0400
Branch: REL_11_STABLE [b7ffa0ee8] 2019-03-24 15:13:21 -0400
Branch: REL_10_STABLE [e484f0701] 2019-03-24 15:13:21 -0400
Branch: REL9_6_STABLE [926488822] 2019-03-24 15:13:21 -0400
Branch: REL9_5_STABLE [171baf183] 2019-03-24 15:13:21 -0400
Branch: REL9_4_STABLE [99e414cac] 2019-03-24 15:13:21 -0400
-->
     <para>
      Avoid crash in <filename>contrib/vacuumlo</filename> if
      an <function>lo_unlink()</function> call failed (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [acb897b80] 2019-04-26 19:46:26 -0400
Branch: REL_11_STABLE [7898d01da] 2019-04-26 19:46:37 -0400
Branch: REL_10_STABLE [fd7474151] 2019-04-26 19:46:45 -0400
Branch: REL9_6_STABLE [28aa0ee4f] 2019-04-26 19:46:55 -0400
Branch: REL9_5_STABLE [22ba95536] 2019-04-26 19:47:00 -0400
Branch: REL9_4_STABLE [7f36286c2] 2019-04-26 19:47:05 -0400
Branch: master [48f8fa9ce] 2019-04-26 21:20:55 -0400
Branch: REL_11_STABLE [a97cfd9b8] 2019-04-26 21:20:21 -0400
Branch: REL_10_STABLE [7c22e1388] 2019-04-26 21:20:27 -0400
Branch: REL9_6_STABLE [578cb33df] 2019-04-26 21:20:33 -0400
Branch: REL9_5_STABLE [b3904abb4] 2019-04-26 21:20:39 -0400
Branch: REL9_4_STABLE [1c61ec7bb] 2019-04-26 21:20:44 -0400
-->
     <para>
      Sync our copy of the timezone library with IANA tzcode release 2019a
      (Tom Lane)
     </para>

     <para>
      This corrects a small bug in <application>zic</application> that
      caused it to output an incorrect year-2440 transition in
      the <literal>Africa/Casablanca</literal> zone, and adds support
      for <application>zic</application>'s new <option>-r</option> option.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [d312de3fc] 2019-04-26 17:56:26 -0400
Branch: REL_11_STABLE [f6307baca] 2019-04-26 17:56:38 -0400
Branch: REL_10_STABLE [14c28c3b5] 2019-04-26 17:56:45 -0400
Branch: REL9_6_STABLE [b25a81c71] 2019-04-26 17:56:52 -0400
Branch: REL9_5_STABLE [c1c76431c] 2019-04-26 17:56:57 -0400
Branch: REL9_4_STABLE [baeb12010] 2019-04-26 17:57:03 -0400
-->
     <para>
      Update time zone data files to <application>tzdata</application>
      release 2019a for DST law changes in Palestine and Metlakatla,
      plus historical corrections for Israel.
     </para>

     <para>
      <literal>Etc/UCT</literal> is now a backward-compatibility link
      to <literal>Etc/UTC</literal>, instead of being a separate zone that
      generates the abbreviation <literal>UCT</literal>, which nowadays is
      typically a typo.  <productname>PostgreSQL</productname> will still
      accept <literal>UCT</literal> as an input zone abbreviation, but it
      won't output it.
     </para>
    </listitem>

   </itemizedlist>

  </sect2>
 </sect1>

 <sect1 id="release-11-2">
  <title>Release 11.2</title>

  <formalpara>
  <title>Release date:</title>
  <para>2019-02-14</para>
  </formalpara>

  <para>
   This release contains a variety of fixes from 11.1.
   For information about new features in major release 11, see
   <xref linkend="release-11"/>.
  </para>

  <sect2>
   <title>Migration to Version 11.2</title>

   <para>
    A dump/restore is not required for those running 11.X.
   </para>

   <para>
    However, if you are upgrading from a version earlier than 11.1,
    see <xref linkend="release-11-1"/>.
   </para>
  </sect2>

  <sect2>
   <title>Changes</title>

   <itemizedlist>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [9ccdd7f66] 2018-11-19 17:41:26 +1300
Branch: REL_11_STABLE [6534d544c] 2018-11-19 13:37:59 +1300
Branch: REL_10_STABLE [afbe03f65] 2018-11-19 13:40:57 +1300
Branch: REL9_6_STABLE [b9cce9ddf] 2018-11-19 13:54:00 +1300
Branch: REL9_5_STABLE [312435232] 2018-11-19 14:13:22 +1300
Branch: REL9_4_STABLE [f1ff5f51d] 2018-11-19 14:26:28 +1300
-->
     <para>
      By default, panic instead of retrying
      after <function>fsync()</function> failure, to avoid possible data
      corruption (Craig Ringer, Thomas Munro)
     </para>

     <para>
      Some popular operating systems discard kernel data buffers when
      unable to write them out, reporting this
      as <function>fsync()</function> failure.  If we reissue
      the <function>fsync()</function> request it will succeed, but in
      fact the data has been lost, so continuing risks database
      corruption.  By raising a panic condition instead, we can replay
      from WAL, which may contain the only remaining copy of the data in
      such a situation.  While this is surely ugly and inefficient, there
      are few alternatives, and fortunately the case happens very rarely.
     </para>

     <para>
      A new server parameter <xref linkend="guc-data-sync-retry"/>
      has been added to control this; if you are certain that your
      kernel does not discard dirty data buffers in such scenarios,
      you can set <varname>data_sync_retry</varname>
      to <literal>on</literal> to restore the old behavior.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [527b5ed1a] 2019-02-04 19:18:49 -0500
Branch: REL_11_STABLE [0d13dd371] 2019-02-04 19:18:50 -0500
Branch: REL_10_STABLE [2b2427115] 2019-02-04 19:18:50 -0500
Branch: REL9_6_STABLE [60b1d6c2a] 2019-02-04 19:18:50 -0500
Branch: REL9_5_STABLE [ed64db588] 2019-02-04 19:18:50 -0500
Branch: REL9_4_STABLE [bb428cb11] 2019-02-04 19:18:50 -0500
-->
     <para>
      Include each major release branch's release notes in the
      documentation for only that branch, rather than that branch and all
      later ones (Tom Lane)
     </para>

     <para>
      The duplication induced by the previous policy was getting out of
      hand.  Our plan is to provide a full archive of release notes on
      the project's web site, but not duplicate it within each release.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [0ad41cf53] 2019-01-14 19:28:10 -0300
Branch: REL_11_STABLE [74aa7e046] 2019-01-14 19:25:19 -0300
-->
     <para>
      Fix handling of unique indexes with <literal>INCLUDE</literal>
      columns on partitioned tables (&Aacute;lvaro Herrera)
     </para>

     <para>
      The uniqueness condition was not checked properly in such cases.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [705d433fd] 2018-11-08 16:22:09 -0300
Branch: REL_11_STABLE [e0c05bf4a] 2018-11-08 16:22:09 -0300
Branch: REL_10_STABLE [21c9e4973] 2018-11-08 16:22:09 -0300
-->
     <para>
      Ensure that <literal>NOT NULL</literal> constraints of a partitioned
      table are honored within its partitions
      (&Aacute;lvaro Herrera, Amit Langote)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [ae366aa57] 2019-01-24 00:01:32 -0300
Branch: REL_11_STABLE [00376eaa2] 2019-01-23 23:57:46 -0300
Branch: master [19184fcc0] 2019-01-24 11:25:29 -0300
Branch: REL_11_STABLE [71eba8399] 2019-01-24 11:18:35 -0300
Branch: master [efd9366dc] 2019-01-24 14:09:56 -0300
Branch: REL_11_STABLE [1ad521099] 2019-01-24 14:09:56 -0300
-->
     <para>
      Update catalog state correctly for partition table constraints when
      detaching their partition (Amit Langote, &Aacute;lvaro Herrera)
     </para>

     <para>
      Previously, the <structname>pg_constraint</structname>.<structfield>conislocal</structfield>
      field for such a constraint might improperly be left
      as <literal>false</literal>, rendering it undroppable.
      A dump/restore or pg_upgrade would cure the problem, but
      if necessary, the catalog field can be adjusted manually.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [0464fdf07] 2019-01-21 20:08:52 -0300
Branch: REL_11_STABLE [123cc697a] 2019-01-21 19:59:07 -0300
Branch: master [cb90de1aa] 2019-02-10 10:00:11 -0300
Branch: REL_11_STABLE [cc126b45e] 2019-02-10 10:00:11 -0300
-->
     <para>
      Create or delete foreign key enforcement triggers correctly when
      attaching or detaching a partition in a partitioned table that
      has a foreign-key constraint (Amit Langote, &Aacute;lvaro Herrera)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [0325d7a59] 2019-01-18 15:00:45 -0300
Branch: REL_11_STABLE [4dff8935f] 2019-01-18 14:57:49 -0300
-->
     <para>
      Avoid useless creation of duplicate foreign key constraints
      in partitioned tables (&Aacute;lvaro Herrera)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [71a05b223] 2018-12-05 13:31:51 -0300
Branch: REL_11_STABLE [37798a8e8] 2018-12-05 13:31:55 -0300
-->
     <para>
      When an index is created on a partitioned table
      using <literal>ONLY</literal>, and there are no partitions yet, mark
      it valid immediately (&Aacute;lvaro Herrera)
     </para>

     <para>
      Otherwise there is no way to make it become valid.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [7b14bcc06] 2018-12-20 16:42:13 -0300
Branch: REL_11_STABLE [053ad56d2] 2018-12-20 16:42:13 -0300
Branch: REL_10_STABLE [1c142612c] 2018-12-20 16:42:13 -0300
Branch: master [0c2377152] 2018-12-20 10:58:22 -0300
Branch: REL_11_STABLE [9bb2ce5ec] 2018-12-20 11:11:13 -0300
-->
     <para>
      Use a safe table lock level when detaching a partition
      (&Aacute;lvaro Herrera)
     </para>

     <para>
      The previous locking level was too weak and might allow
      concurrent DDL on the table, with bad results.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [319a81018] 2018-11-09 10:03:22 +0900
Branch: REL_11_STABLE [84b4a0cf6] 2018-11-09 10:03:31 +0900
Branch: REL_10_STABLE [52ea6a820] 2018-11-09 10:03:39 +0900
-->
     <para>
      Fix problems with applying <literal>ON COMMIT DROP</literal>
      and <literal>ON COMMIT DELETE ROWS</literal> to partitioned tables
      and tables with inheritance children (Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [5c9a5513a] 2018-11-19 11:16:28 -0300
Branch: REL_11_STABLE [a4db7fe0f] 2018-11-19 11:16:28 -0300
Branch: REL_10_STABLE [85efd1a04] 2018-11-19 11:16:28 -0300
-->
     <para>
      Disallow <command>COPY FREEZE</command> on partitioned tables
      (David Rowley)
     </para>

     <para>
      This should eventually be made to work, but it may require a patch
      that's too complicated to risk back-patching.
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [171e0418b] 2019-02-06 01:09:32 -0800
Branch: REL_11_STABLE [297d627e0] 2019-02-06 01:09:42 -0800
Branch: REL_11_STABLE [920311ab1] 2019-02-09 02:44:10 -0800
-->
     <para>
      Fix possible index corruption when the indexed column has
      a <quote>fast default</quote> (that is, it was added
      by <literal>ALTER TABLE ADD COLUMN</literal> with a constant non-NULL
      default value specified, after the table already contained some rows)
      (Andres Freund)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [3b174b1a3] 2019-01-10 15:53:45 -0500
Branch: REL_11_STABLE [076ffbcb5] 2019-01-10 16:24:57 -0500
Branch: master [e33884d41] 2019-01-11 17:12:54 -0500
Branch: REL_11_STABLE [89d52b9a3] 2019-01-11 17:16:43 -0500
-->
     <para>
      Correctly adjust <quote>fast default</quote> values
      during <command>ALTER TABLE ... ALTER COLUMN TYPE</command>
      (Andrew Dunstan)
     </para>
    </listitem>

    <listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
Branch: master [0b8bdb3c3] 2019-02-02 15:47:00 +0530
Branch: REL_11_STABLE [904413637] 2019-02-02 08:38:26 +0530
Branch: REL_10_STABLE [1ca33fc7b] 2019-02-02 08:46:32 +0530
Branch: REL9_6_STABLE [073afae81] 2019-02-02 08:54:33 +0530
Branch: REL9_5_STABLE [6a2c9c633] 2019-02-02 09:16:35 +0530
Branch: REL9_4_STABLE [fba0a8292] 2019-02-02 15:43:58 +0530
-->
     <para>
      Avoid possible deadlock when acquiring multiple buffer locks
      (Nishant Fnu)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: master [fd83c83d0] 2018-12-13 06:55:34 +0300
Branch: REL_11_STABLE [9aa94d853] 2018-12-13 06:15:23 +0300
Branch: REL_10_STABLE [2e3bd064e] 2018-12-13 06:22:39 +0300
-->
     <para>
      Avoid deadlock between GIN vacuuming and concurrent index insertions
      (Alexander Korotkov, Andrey Borodin, Peter Geoghegan)
     </para>

     <para>
      This change partially reverts a performance improvement, introduced
      in version 10.0, that attempted to reduce the number of index pages
      locked during deletion of a GIN posting tree page.  That's now been
      found to lead to deadlocks, so we've removed it pending closer
      analysis.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: master [c6ade7a8c] 2018-12-13 06:55:34 +0300
Branch: REL_11_STABLE [225b5c9c4] 2018-12-13 06:15:23 +0300
Branch: REL_10_STABLE [865870374] 2018-12-13 06:22:41 +0300
Branch: REL9_6_STABLE [80d4d8d71] 2018-12-13 06:18:13 +0300
Branch: REL9_5_STABLE [f6c44e1b5] 2018-12-13 06:31:16 +0300
Branch: REL9_4_STABLE [19cf52e6c] 2018-12-13 06:36:54 +0300
Branch: REL9_4_STABLE [bf0e5a73b] 2018-12-13 22:32:05 +0300
-->
     <para>
      Avoid deadlock between hot-standby queries and replay of GIN index
      page deletion (Alexander Korotkov)
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
Branch: master [dfa774ff9] 2019-01-30 08:49:54 +0100
Branch: REL_11_STABLE [cf25498f7] 2019-01-30 10:06:23 +0100
Branch: REL_10_STABLE [2bac1d8c9] 2019-01-30 10:58:28 +0100
Branch: REL9_6_STABLE [650296f8f] 2019-01-30 11:02:47 +0100
Branch: REL9_5_STABLE [edd8278c5] 2019-01-30 11:16:27 +0100
Branch: REL9_4_STABLE [452253eae] 2019-01-30 11:17:05 +0100
-->
     <para>
      Fix possible crashes in logical replication when index expressions
      or predicates are in use (Peter Eisentraut)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
Branch: master [f69c959df] 2018-11-28 01:43:08 +0100
Branch: REL_11_STABLE [f8397c955] 2018-11-28 01:43:53 +0100
Branch: REL_10_STABLE [4e7395d83] 2018-11-28 01:44:11 +0100
Branch: REL9_6_STABLE [b86d148ae] 2018-11-28 01:44:31 +0100
Branch: REL9_5_STABLE [77d2815e4] 2018-11-28 01:44:43 +0100
Branch: REL9_4_STABLE [c1a5caea8] 2018-11-28 01:53:29 +0100
-->
     <para>
      Avoid useless and expensive logical decoding of TOAST data during a
      table rewrite (Tomas Vondra)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [4c703369a] 2018-11-29 09:12:19 +0900
Branch: REL_11_STABLE [bad41764a] 2018-11-29 09:12:40 +0900
Branch: REL_10_STABLE [04e381a19] 2018-11-29 09:12:45 +0900
Branch: REL9_6_STABLE [8340eba6d] 2018-11-29 09:12:53 +0900
Branch: REL9_5_STABLE [b9bdbf8c1] 2018-11-29 09:12:57 +0900
Branch: REL9_4_STABLE [b81d08d60] 2018-11-29 09:13:04 +0900
-->
     <para>
      Fix logic for stopping a subset of WAL senders when synchronous
      replication is enabled (Paul Guo, Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [eb8c9f0bc] 2019-02-01 10:35:16 +0900
Branch: REL_11_STABLE [47412e075] 2019-02-01 10:35:40 +0900
Branch: REL_10_STABLE [478e0069f] 2019-02-01 10:35:46 +0900
Branch: REL9_6_STABLE [014763e97] 2019-02-01 10:35:52 +0900
Branch: REL9_5_STABLE [90f1ba7ec] 2019-02-01 10:35:58 +0900
Branch: REL9_4_STABLE [05d24cf7c] 2019-02-01 10:36:02 +0900
-->
     <para>
      Avoid possibly writing an incorrect replica identity field in a
      tuple deletion WAL record (Stas Kelvich)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [bf491a907] 2018-12-23 16:42:22 +0900
Branch: REL_11_STABLE [ff9c22266] 2018-12-23 16:43:47 +0900
Branch: REL_10_STABLE [15f69279e] 2018-12-23 16:43:56 +0900
-->
     <para>
      Prevent incorrect use of WAL-skipping optimization
      during <command>COPY</command> to a view or foreign table
      (Amit Langote, Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [b981df4cc] 2018-12-24 20:24:16 +0900
Branch: REL_11_STABLE [a016f59d5] 2018-12-24 20:25:49 +0900
Branch: REL_10_STABLE [085757577] 2018-12-24 20:25:57 +0900
Branch: REL9_6_STABLE [937870124] 2018-12-24 20:26:11 +0900
Branch: REL9_5_STABLE [37126251a] 2018-12-24 20:26:20 +0900
-->
     <para>
      Make the archiver prioritize WAL history files over WAL data files
      while choosing which file to archive next (David Steele)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [0f7ec8d9c] 2018-12-12 13:49:41 -0500
Branch: REL_11_STABLE [302d4eee9] 2018-12-12 13:49:41 -0500
Branch: REL_10_STABLE [f9f63ed1f] 2018-12-12 13:49:41 -0500
Branch: REL9_6_STABLE [10bad8c0f] 2018-12-12 13:49:42 -0500
Branch: REL9_5_STABLE [6548d62a9] 2018-12-12 13:49:42 -0500
-->
     <para>
      Fix possible crash in <command>UPDATE</command> with a
      multiple <literal>SET</literal> clause using a
      sub-<literal>SELECT</literal> as source (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [eba2ce171] 2018-11-22 15:14:01 -0500
Branch: REL_11_STABLE [595220a3a] 2018-11-22 15:14:01 -0500
-->
     <para>
      Fix crash when zero rows are fed
      to <function>json[b]_populate_recordset()</function>
      or <function>json[b]_to_recordset()</function> (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [0edef16d7] 2019-02-08 13:30:42 -0500
Branch: REL_11_STABLE [8e2956734] 2019-02-08 13:30:57 -0500
Branch: REL_10_STABLE [0d7d71b64] 2019-02-08 13:31:04 -0500
Branch: REL9_6_STABLE [ef922faea] 2019-02-08 13:31:09 -0500
Branch: REL9_5_STABLE [7821a4d60] 2019-02-08 13:31:15 -0500
Branch: REL9_4_STABLE [37f3a7751] 2019-02-08 13:31:23 -0500
-->
     <para>
      Avoid crash if <application>libxml2</application> returns a null
      error message (Sergio Conde G&oacute;mez)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [b23852766] 2018-11-27 10:07:03 -0800
Branch: REL_11_STABLE [aee085bc0] 2018-11-27 10:07:43 -0800
-->
     <para>
      Fix incorrect JIT tuple deforming code for tables with
      many columns (more than approximately 800) (Andres Freund)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [5567d12ce] 2019-02-09 01:05:49 -0800
Branch: REL_11_STABLE [9cf37a527] 2019-02-09 01:05:50 -0800
Branch: master [3b632a58e] 2019-02-09 01:05:49 -0800
Branch: REL_11_STABLE [350b0a403] 2019-02-09 01:05:50 -0800
Branch: master [317ffdfea] 2019-02-09 01:05:49 -0800
Branch: REL_11_STABLE [6455c6588] 2019-02-09 01:05:50 -0800
Branch: master [356687bd8] 2019-02-09 01:05:49 -0800
Branch: REL_11_STABLE [35afccaba] 2019-02-09 01:05:50 -0800
-->
     <para>
      Fix performance and memory leakage issues in hash-based grouping
      (Andres Freund)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
Branch: master [d16d45387] 2019-01-17 06:46:10 +0000
Branch: REL_11_STABLE [e74d8c508] 2019-01-17 06:24:53 +0000
Branch: REL_10_STABLE [409230a72] 2019-01-17 06:25:55 +0000
Branch: REL9_6_STABLE [624046abe] 2019-01-17 06:26:15 +0000
Branch: REL9_5_STABLE [91448e7dc] 2019-01-17 06:29:43 +0000
Branch: REL9_4_STABLE [174fab993] 2019-01-17 06:35:31 +0000
-->
     <para>
      Fix spurious grouping-related parser errors caused by inconsistent
      handling of collation assignment (Andrew Gierth)
     </para>

     <para>
      In some cases, expressions that should be considered to match
      were not seen as matching, if they included operations on collatable
      data types.
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
Branch: master [cd5afd817] 2019-02-07 08:25:47 +0100
Branch: REL_11_STABLE [004f494b5] 2019-02-07 08:25:54 +0100
-->
     <para>
      Fix parsing of collation-sensitive expressions in the arguments of
      a <command>CALL</command> statement (Peter Eisentraut)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [f26c06a40] 2018-11-09 22:04:14 -0500
Branch: REL_11_STABLE [8e02ee788] 2018-11-09 22:04:14 -0500
-->
     <para>
      Ensure proper cleanup after detecting an error in the argument list
      of a <command>CALL</command> statement (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [68a13f28b] 2019-01-02 16:34:04 -0500
Branch: REL_11_STABLE [099063340] 2019-01-02 16:33:48 -0500
Branch: REL_10_STABLE [64edc788b] 2019-01-02 16:33:48 -0500
Branch: REL9_6_STABLE [c27c3993e] 2019-01-02 16:33:48 -0500
Branch: REL9_5_STABLE [f8b9b8097] 2019-01-02 16:33:48 -0500
Branch: REL9_4_STABLE [d6b37cdb6] 2019-01-02 16:33:48 -0500
-->
     <para>
      Check whether the comparison function
      underlying <function>LEAST()</function>
      or <function>GREATEST()</function> is leakproof, rather than just
      assuming it is (Tom Lane)
     </para>

     <para>
      Actual information leaks from btree comparison functions are
      typically hard to provoke, but in principle they could happen.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [1db5667ba] 2019-01-11 15:54:06 -0500
Branch: REL_11_STABLE [05eb923ea] 2019-01-11 15:54:08 -0500
Branch: REL_10_STABLE [2977a312d] 2019-01-11 15:54:09 -0500
Branch: REL9_6_STABLE [4f8097499] 2019-01-11 15:53:34 -0500
-->
     <para>
      Fix incorrect planning of queries involving nested loops both above
      and below a Gather plan node (Tom Lane)
     </para>

     <para>
      If both levels of nestloop needed to pass the same variable into
      their right-hand sides, an incorrect plan would be generated.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [34ea1ab7f] 2019-02-07 13:11:12 -0500
Branch: REL_11_STABLE [9d6d2b213] 2019-02-07 13:11:13 -0500
Branch: REL_10_STABLE [e3101a031] 2019-02-07 13:11:14 -0500
Branch: REL9_6_STABLE [d468da0d6] 2019-02-07 13:11:16 -0500
Branch: REL9_5_STABLE [1eeee6909] 2019-02-07 13:11:17 -0500
Branch: REL9_4_STABLE [876fd37fc] 2019-02-07 13:10:46 -0500
-->
     <para>
      Fix incorrect planning of queries in which a lateral reference must
      be evaluated at a foreign table scan (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [6bdc3005b] 2019-02-10 22:51:32 -0500
Branch: REL_11_STABLE [eb68d71f9] 2019-02-10 22:51:33 -0500
-->
     <para>
      Fix planner failure when the first column of a row comparison
      matches an index column, but later column(s) do not, and the index
      has included (non-key) columns (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [d364e8815] 2018-12-18 11:19:38 -0500
Branch: REL_11_STABLE [ad425aaf0] 2018-12-18 11:19:38 -0500
Branch: REL_10_STABLE [d16567093] 2018-12-18 11:19:39 -0500
Branch: REL9_6_STABLE [7c2bc40b8] 2018-12-18 11:19:39 -0500
Branch: REL9_5_STABLE [72a626e68] 2018-12-18 11:19:39 -0500
Branch: REL9_4_STABLE [ef673a32d] 2018-12-18 11:19:39 -0500
-->
     <para>
      Fix corner-case underestimation of the cost of a merge join (Tom Lane)
     </para>

     <para>
      The planner could prefer a merge join when the outer key range is
      much smaller than the inner key range, even if there are so many
      duplicate keys on the inner side that this is a poor choice.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [e3f005d97] 2018-11-12 11:19:04 -0500
Branch: REL_11_STABLE [15b9d47c8] 2018-11-12 11:19:04 -0500
Branch: REL_10_STABLE [c6b3835c7] 2018-11-12 11:19:04 -0500
Branch: REL9_6_STABLE [fe66fc6f9] 2018-11-12 11:19:04 -0500
Branch: REL9_5_STABLE [92dbbe90c] 2018-11-12 11:19:04 -0500
Branch: REL9_4_STABLE [2abc87953] 2018-11-12 11:19:04 -0500
-->
     <para>
      Avoid O(N^2) planning time growth when a query contains many
      thousand indexable clauses (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Etsuro Fujita <efujita@postgresql.org>
Branch: master [8d8dcead1] 2019-01-21 17:12:40 +0900
Branch: REL_11_STABLE [b10e3bba8] 2019-01-21 17:46:15 +0900
-->
     <para>
      Improve planning speed for large inheritance or partitioning table
      groups (Amit Langote, Etsuro Fujita)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [7170268ef] 2019-01-03 17:00:08 -0500
Branch: REL_11_STABLE [fc8adddd9] 2019-01-03 17:00:08 -0500
Branch: REL_10_STABLE [708931c2d] 2019-01-03 17:00:08 -0500
Branch: REL9_6_STABLE [60de80cd2] 2019-01-03 17:00:08 -0500
Branch: REL9_5_STABLE [d2557c42a] 2019-01-03 17:00:08 -0500
Branch: REL9_4_STABLE [3010de813] 2019-01-03 17:00:08 -0500
-->
     <para>
      Improve <command>ANALYZE</command>'s handling of
      concurrently-updated rows (Jeff Janes, Tom Lane)
     </para>

     <para>
      Previously, rows deleted by an in-progress transaction were omitted
      from <command>ANALYZE</command>'s sample, but this has been found to
      lead to more inconsistency than including them would do.  In effect,
      the sample now corresponds to an MVCC snapshot as
      of <command>ANALYZE</command>'s start time.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [1e504f01d] 2018-12-27 10:16:19 +0900
Branch: REL_11_STABLE [b30b9dce1] 2018-12-27 10:17:09 +0900
Branch: REL_10_STABLE [d4486700b] 2018-12-27 10:17:13 +0900
Branch: REL9_6_STABLE [285abc8df] 2018-12-27 10:17:21 +0900
Branch: REL9_5_STABLE [0a323ae67] 2018-12-27 10:17:26 +0900
Branch: REL9_4_STABLE [1d7007671] 2018-12-27 10:17:42 +0900
-->
     <para>
      Make <command>TRUNCATE</command> ignore inheritance child tables
      that are temporary tables of other sessions (Amit Langote, Michael
      Paquier)
     </para>

     <para>
      This brings <command>TRUNCATE</command> into line with the behavior
      of other commands.  Previously, such cases usually ended in failure.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [5deadfef2] 2018-12-07 12:11:59 -0500
Branch: REL_11_STABLE [aedd3d4db] 2018-12-07 12:12:00 -0500
Branch: REL_10_STABLE [54f24ab76] 2018-12-07 12:12:00 -0500
Branch: REL9_6_STABLE [078303f79] 2018-12-07 12:12:00 -0500
Branch: REL9_5_STABLE [4d5cfb911] 2018-12-07 12:12:00 -0500
-->
     <para>
      Fix <command>TRUNCATE</command> to update the statistics counters
      for the right table (Tom Lane)
     </para>

     <para>
      If the truncated table had a TOAST table, that table's counters were
      reset instead.
     </para>
    </listitem>

    <listitem>
<!--
Author: Greg Stark <stark@mit.edu>
Branch: master [1075dfdaf] 2018-12-19 19:38:31 -0500
Branch: REL_11_STABLE [128ce8e1a] 2018-12-19 19:40:25 -0500
Branch: REL_10_STABLE [9e6cd794c] 2018-12-19 19:41:06 -0500
Branch: REL9_6_STABLE [5668afeb6] 2018-12-19 19:41:18 -0500
-->
     <para>
      Process <command>ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS</command>
      correctly (Greg Stark)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ebfe20dc7] 2019-01-25 21:14:49 -0500
Branch: REL_11_STABLE [c0aed6959] 2019-01-25 21:14:31 -0500
Branch: REL_10_STABLE [e8ec19cd1] 2019-01-25 21:14:31 -0500
Branch: REL9_6_STABLE [0d5b27351] 2019-01-25 21:14:31 -0500
Branch: REL9_5_STABLE [741ee4890] 2019-01-25 21:14:31 -0500
Branch: REL9_4_STABLE [549d2a238] 2019-01-25 21:14:31 -0500
-->
     <para>
      Allow <command>UNLISTEN</command> in hot-standby mode
      (Shay Rojansky)
     </para>

     <para>
      This is necessarily a no-op, because <command>LISTEN</command>
      isn't allowed in hot-standby mode; but allowing the dummy operation
      simplifies session-state-reset logic in clients.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [fa2952d8e] 2018-11-09 20:42:14 -0500
Branch: REL_11_STABLE [1b55acb2c] 2018-11-09 20:42:03 -0500
Branch: REL_10_STABLE [2d83863ea] 2018-11-09 20:42:03 -0500
Branch: REL9_6_STABLE [d431dff1a] 2018-11-09 20:42:03 -0500
Branch: REL9_5_STABLE [47088c599] 2018-11-09 20:42:03 -0500
Branch: REL9_4_STABLE [277602dfe] 2018-11-09 20:42:03 -0500
-->
     <para>
      Fix missing role dependencies in some schema and data type
      permissions lists (Tom Lane)
     </para>

     <para>
      In some cases it was possible to drop a role to which permissions
      had been granted.  This caused no immediate problem, but a
      subsequent dump/reload or upgrade would fail, with symptoms
      involving attempts to grant privileges to all-numeric role names.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [c5660e0aa] 2019-01-18 09:21:44 +0900
Branch: REL_11_STABLE [3e4fdb3bc] 2019-01-18 09:21:52 +0900
Branch: REL_10_STABLE [b15160bc7] 2019-01-18 09:21:58 +0900
-->
     <para>
      Prevent use of a session's temporary schema within a two-phase
      transaction (Michael Paquier)
     </para>

     <para>
      Accessing a temporary table within such a transaction has been
      forbidden for a long time, but it was still possible to cause
      problems with other operations on temporary objects.
     </para>
    </listitem>

    <listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [175544093] 2019-01-21 19:34:11 -0300
Branch: REL_11_STABLE [a7474308c] 2019-01-21 19:34:11 -0300
Branch: REL_10_STABLE [3037b28b8] 2019-01-21 19:34:11 -0300
Branch: REL9_6_STABLE [4aead13a7] 2019-01-21 19:34:11 -0300
-->
     <para>
      Ensure relation caches are updated properly after adding or removing
      foreign key constraints (&Aacute;lvaro Herrera)
     </para>

     <para>
      This oversight could result in existing sessions failing to enforce
      a newly-created constraint, or continuing to enforce a dropped one.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [b13fd344c] 2018-12-17 10:34:44 +0900
Branch: REL_11_STABLE [25b8094d3] 2018-12-17 10:36:03 +0900
Branch: REL_10_STABLE [da13d90a5] 2018-12-17 10:36:21 +0900
Branch: REL9_6_STABLE [d79cd555d] 2018-12-17 10:36:29 +0900
Branch: REL9_5_STABLE [5812be7b6] 2018-12-17 10:36:34 +0900
Branch: REL9_4_STABLE [d5d86e2cd] 2018-12-17 10:37:24 +0900
Branch: master [67915fb8e] 2018-12-17 12:43:00 +0900
Branch: REL_11_STABLE [e83e0988d] 2018-12-17 12:43:39 +0900
Branch: REL_10_STABLE [91fc2a088] 2018-12-17 12:43:48 +0900
Branch: REL9_6_STABLE [419bd6371] 2018-12-17 12:43:57 +0900
Branch: REL9_5_STABLE [c7567e09d] 2018-12-17 12:44:02 +0900
Branch: REL9_4_STABLE [696c68c2b] 2018-12-17 12:44:09 +0900
-->
     <para>
      Ensure relation caches are updated properly after renaming
      constraints (Amit Langote)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: master [c952eae52] 2018-12-21 02:37:37 +0300
Branch: REL_11_STABLE [8193d6407] 2018-12-21 02:37:31 +0300
Branch: REL_10_STABLE [e36e25275] 2018-12-21 02:33:48 +0300
Branch: REL9_6_STABLE [1b0280745] 2018-12-21 02:33:37 +0300
-->
     <para>
      Fix replay of GiST index micro-vacuum operations so that concurrent
      hot-standby queries do not see inconsistent state (Alexander
      Korotkov)
     </para>
    </listitem>

    <listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: master [52ac6cd2d] 2018-12-13 06:55:34 +0300
Branch: REL_11_STABLE [dd951dc34] 2018-12-13 06:39:53 +0300
Branch: REL_10_STABLE [a0696d295] 2018-12-13 06:41:04 +0300
Branch: REL9_6_STABLE [cd24b4eae] 2018-12-13 06:47:38 +0300
Branch: REL9_5_STABLE [ad6ebcfcb] 2018-12-13 06:52:33 +0300
Branch: REL9_4_STABLE [1cf175c74] 2018-12-13 06:52:26 +0300
-->
     <para>
      Prevent empty GIN index pages from being reclaimed too quickly,
      causing failures of concurrent searches
      (Andrey Borodin, Alexander Korotkov)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [cbdb8b4c0] 2018-11-23 20:57:11 -0500
Branch: master [452b637d4] 2018-11-23 23:49:25 -0500
Branch: REL_11_STABLE [e473e1f2b] 2018-11-24 12:45:49 -0500
Branch: REL_10_STABLE [c382a2b66] 2018-11-24 12:45:49 -0500
Branch: REL9_6_STABLE [93eec1238] 2018-11-24 12:45:50 -0500
Branch: REL9_5_STABLE [1e78603a5] 2018-11-24 12:45:50 -0500
Branch: REL9_4_STABLE [d5231253e] 2018-11-24 12:45:50 -0500
Branch: REL_11_STABLE [3645d3193] 2018-11-24 13:53:12 -0500
Branch: REL_10_STABLE [745871483] 2018-11-24 13:53:12 -0500
Branch: REL9_6_STABLE [1f99d0867] 2018-11-24 13:53:12 -0500
Branch: REL9_5_STABLE [298510cae] 2018-11-24 13:53:12 -0500
Branch: REL9_4_STABLE [bf9fb00dd] 2018-11-24 13:53:12 -0500
-->
     <para>
      Fix edge-case failures in float-to-integer coercions (Andrew
      Gierth, Tom Lane)
     </para>

     <para>
      Values very slightly above the maximum valid integer value might not
      be rejected, and then would overflow, producing the minimum valid
      integer instead.  Also, values that should round to the minimum or
      maximum integer value might be incorrectly rejected.
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [257ef3cd4] 2018-11-13 17:46:28 +1300
Branch: REL_11_STABLE [6b6c64a96] 2018-11-13 17:47:00 +1300
-->
     <para>
      Fix parsing of space-separated lists of host names in
      the <varname>ldapserver</varname> parameter of LDAP authentication
      entries in <filename>pg_hba.conf</filename> (Thomas Munro)
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [0f9cdd7dc] 2018-11-28 14:12:30 +1300
Branch: REL_11_STABLE [0640d9517] 2018-11-28 14:14:40 +1300
Branch: REL_10_STABLE [96ed0b870] 2018-11-28 14:15:00 +1300
Branch: REL9_6_STABLE [63d835066] 2018-11-28 14:20:07 +1300
-->
     <para>
      When making a PAM authentication request, don't set
      the <varname>PAM_RHOST</varname> variable if the connection is via
      a Unix socket (Thomas Munro)
     </para>

     <para>
      Previously that variable would be set to <literal>[local]</literal>,
      which is at best unhelpful, since it's supposed to be a host name.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [3d360e20c] 2018-11-08 17:33:43 -0500
Branch: REL_11_STABLE [7b08b4a8a] 2018-11-08 17:33:44 -0500
Branch: REL_10_STABLE [c09daa910] 2018-11-08 17:33:46 -0500
Branch: REL9_6_STABLE [041ad9a66] 2018-11-08 17:33:26 -0500
Branch: REL9_5_STABLE [88275ac19] 2018-11-08 17:33:26 -0500
Branch: REL9_4_STABLE [2407d4807] 2018-11-08 17:33:26 -0500
-->
     <para>
      Disallow setting <varname>client_min_messages</varname> higher
      than <literal>ERROR</literal> (Jonah Harris, Tom Lane)
     </para>

     <para>
      Previously, it was possible to set this variable
      to <literal>FATAL</literal> or <literal>PANIC</literal>, which had
      the effect of suppressing transmission of ordinary error messages to
      the client.  However, that's contrary to guarantees that are given
      in the <productname>PostgreSQL</productname> wire protocol
      specification, and it caused some clients to become very confused.
      In released branches, fix this by silently treating such settings as
      meaning <literal>ERROR</literal> instead.  Version 12 and later will
      reject those alternatives altogether.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [8eb4a9312] 2019-01-21 12:07:02 -0500
Branch: master [ee27584c4] 2019-01-21 16:17:10 -0500
Branch: REL_11_STABLE [f305e8457] 2019-01-21 23:18:58 -0500
Branch: REL_10_STABLE [6106f9dd7] 2019-01-21 23:18:58 -0500
Branch: REL9_6_STABLE [eb3e90cad] 2019-01-21 23:18:58 -0500
Branch: REL9_5_STABLE [844d91fd6] 2019-01-21 23:18:58 -0500
Branch: REL9_4_STABLE [c9ff6cbfc] 2019-01-21 23:18:58 -0500
Branch: master [2cf91ccb7] 2019-01-23 22:46:45 -0500
Branch: REL_11_STABLE [b620cf2d4] 2019-01-23 22:46:57 -0500
Branch: REL_10_STABLE [dd815a94c] 2019-01-23 22:47:03 -0500
Branch: REL9_6_STABLE [1d334ab6e] 2019-01-23 22:47:13 -0500
Branch: REL9_5_STABLE [7ac0e71aa] 2019-01-23 22:47:18 -0500
Branch: REL9_4_STABLE [773f59440] 2019-01-23 22:47:23 -0500
-->
     <para>
      Fix <application>ecpglib</application> to
      use <function>uselocale()</function>
      or <function>_configthreadlocale()</function> in preference
      to <function>setlocale()</function> (Michael Meskes, Tom Lane)
     </para>

     <para>
      Since <function>setlocale()</function> is not thread-local, and
      might not even be thread-safe, the previous coding caused problems
      in multi-threaded <application>ecpg</application> applications.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ecfd55795] 2018-11-13 15:46:08 -0500
Branch: REL_11_STABLE [68393f3fd] 2018-11-13 15:46:08 -0500
Branch: REL_10_STABLE [32060f678] 2018-11-13 15:46:08 -0500
Branch: REL9_6_STABLE [e1f259012] 2018-11-13 15:46:08 -0500
Branch: REL9_5_STABLE [be38945c6] 2018-11-13 15:46:08 -0500
Branch: REL9_4_STABLE [9e5e3861c] 2018-11-13 15:46:08 -0500
Branch: master [06c723447] 2018-11-14 11:27:47 -0500
Branch: REL_11_STABLE [4618fdd67] 2018-11-14 11:27:30 -0500
Branch: REL_10_STABLE [2e8ed4659] 2018-11-14 11:27:30 -0500
Branch: REL9_6_STABLE [f9e25ba14] 2018-11-14 11:27:31 -0500
Branch: REL9_5_STABLE [68f30638a] 2018-11-14 11:27:31 -0500
Branch: REL9_4_STABLE [41609776f] 2018-11-14 11:27:31 -0500
-->
     <para>
      Fix incorrect results for numeric data passed through
      an <application>ecpg</application> <acronym>SQLDA</acronym>
      (SQL Descriptor Area) (Daisuke Higuchi)
     </para>

     <para>
      Values with leading zeroes were not copied correctly.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [6d3ede5f1] 2019-01-26 14:15:42 -0500
Branch: REL_11_STABLE [2c50c9f23] 2019-01-26 14:15:42 -0500
Branch: REL_10_STABLE [8e97a97b3] 2019-01-26 14:15:42 -0500
Branch: REL9_6_STABLE [ae4c7d5ab] 2019-01-26 14:15:42 -0500
Branch: REL9_5_STABLE [cda1e27fb] 2019-01-26 14:15:42 -0500
-->
     <para>
      Fix <application>psql</application>'s <command>\g</command>
      <replaceable>target</replaceable> meta-command to work
      with <command>COPY TO STDOUT</command>
      (Daniel V&eacute;rit&eacute;)
     </para>

     <para>
      Previously, the <replaceable>target</replaceable> option was
      ignored, so that the copy data always went to the current query
      output target.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [70d7e507e] 2018-11-26 17:32:51 -0500
Branch: REL_11_STABLE [b352cf7a8] 2018-11-26 17:32:51 -0500
Branch: REL_10_STABLE [815409093] 2018-11-26 17:32:51 -0500
Branch: REL9_6_STABLE [ac305ff8c] 2018-11-26 17:32:51 -0500
Branch: REL9_5_STABLE [18a0a8548] 2018-11-26 17:32:51 -0500
Branch: REL9_4_STABLE [74bfb5388] 2018-11-26 17:32:51 -0500
-->
     <para>
      Make <application>psql</application>'s LaTeX output formats render
      special characters properly (Tom Lane)
     </para>

     <para>
      Backslash and some other ASCII punctuation characters were not
      rendered correctly, leading to document syntax errors or wrong
      characters in the output.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [e6c3ba7fb] 2019-01-24 11:31:54 -0500
Branch: REL_11_STABLE [27d6bc68f] 2019-01-24 11:31:54 -0500
-->
     <para>
      Make <application>pgbench</application>'s random number generation
      fully deterministic and platform-independent
      when <option>--random-seed=<replaceable>N</replaceable></option> is
      specified (Fabien Coelho, Tom Lane)
     </para>

     <para>
      On any specific platform, the sequence obtained with a particular
      value of <replaceable>N</replaceable> will probably be different
      from what it was before this patch.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [a1c91dd11] 2018-11-30 10:14:58 +0900
Branch: REL_11_STABLE [85036308d] 2018-11-30 10:15:06 +0900
Branch: master [5c9951397] 2018-11-30 10:34:45 +0900
Branch: REL_11_STABLE [19516afdf] 2018-11-30 10:34:56 +0900
-->
     <para>
      Fix <application>pg_basebackup</application>
      and <application>pg_verify_checksums</application> to ignore
      temporary files appropriately (Michael Banck, Michael Paquier)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [6e4d45b5f] 2019-02-04 17:20:02 -0500
Branch: REL_11_STABLE [b8de846a5] 2019-02-04 17:20:02 -0500
Branch: REL_10_STABLE [dc42602f1] 2019-02-04 17:20:02 -0500
Branch: REL9_6_STABLE [16e0464a1] 2019-02-04 17:20:02 -0500
Branch: REL9_5_STABLE [9368ba174] 2019-02-04 17:20:02 -0500
Branch: REL9_4_STABLE [2f93b74bf] 2019-02-04 17:20:02 -0500
-->
     <para>
      Fix <application>pg_dump</application>'s handling of materialized
      views with indirect dependencies on primary keys (Tom Lane)
     </para>

     <para>
      This led to mis-labeling of such views' dump archive entries,
      causing harmless warnings about <quote>archive items not in correct
      section order</quote>; less harmlessly, selective-restore options
      depending on those labels, such as <option>--section</option>, might
      misbehave.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [e4fca461a] 2018-12-18 09:28:16 +0900
Branch: REL_11_STABLE [d0960eb8a] 2018-12-18 09:28:56 +0900
-->
     <para>
      Make <application>pg_dump</application> include <command>ALTER INDEX
      SET STATISTICS</command> commands (Michael Paquier)
     </para>

     <para>
      When the ability to attach statistics targets to index expressions
      was added, we forgot to teach <application>pg_dump</application>
      about it, so that such settings were lost in dump/reload.
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
Branch: master [6178f3cb7] 2018-11-13 09:41:20 +0100
Branch: REL_11_STABLE [b72b4fafb] 2018-11-13 09:41:34 +0100
-->
     <para>
      Fix <application>pg_dump</application>'s dumping of tables that have
      OIDs (Peter Eisentraut)
     </para>

     <para>
      The <literal>WITH OIDS</literal> clause was omitted if it needed to
      be applied to the first table to be dumped.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [4dbe19690] 2019-02-09 19:45:38 -0500
Branch: REL_11_STABLE [ef9bf3593] 2019-02-09 19:45:38 -0500
Branch: REL_10_STABLE [73668c590] 2019-02-09 19:45:38 -0500
Branch: REL9_6_STABLE [2b6009e2a] 2019-02-09 19:45:38 -0500
Branch: REL9_5_STABLE [2c8332177] 2019-02-09 19:45:38 -0500
Branch: REL9_4_STABLE [ed46d0d32] 2019-02-09 19:45:38 -0500
-->
     <para>
      Avoid null-pointer-dereference crash on some platforms
      when <application>pg_dump</application>
      or <application>pg_restore</application> tries to report an error
      (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Geoghegan <pg@bowt.ie>
Branch: master [eba775345] 2019-02-06 15:54:19 -0800
Branch: REL_11_STABLE [2f5416666] 2019-02-06 15:54:17 -0800
-->
     <para>
      Prevent false index-corruption reports
      from <filename>contrib/amcheck</filename> caused by
      inline-compressed data (Peter Geoghegan)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ffa4cbd62] 2018-11-19 17:02:39 -0500
Branch: REL_11_STABLE [8dc49a893] 2018-11-19 17:02:25 -0500
Branch: REL_10_STABLE [8285fae07] 2018-11-19 17:02:25 -0500
Branch: master [cb09903fe] 2018-11-19 17:28:04 -0500
Branch: REL_11_STABLE [e2631255e] 2018-11-19 17:28:04 -0500
Branch: REL_10_STABLE [0064d0e9f] 2018-11-19 17:28:05 -0500
Branch: master [ade2d61ed] 2018-12-16 14:32:14 -0500
Branch: REL_11_STABLE [b1894a607] 2018-12-16 14:32:14 -0500
Branch: REL_10_STABLE [34010ac2f] 2018-12-16 14:32:14 -0500
-->
     <para>
      Properly disregard <literal>SIGPIPE</literal> errors if <command>COPY
      FROM PROGRAM</command> stops reading the program's output early
      (Tom Lane)
     </para>

     <para>
      This case isn't actually reachable directly
      with <command>COPY</command>, but it can happen when
      using <filename>contrib/file_fdw</filename>.
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
Branch: master [d5890f49d] 2018-11-24 09:59:49 +0000
Branch: REL_11_STABLE [02e669c0f] 2018-11-24 21:17:08 +0000
Branch: REL_10_STABLE [bcbb68278] 2018-11-24 21:17:09 +0000
Branch: REL9_6_STABLE [239abfff1] 2018-11-24 21:17:09 +0000
Branch: REL9_5_STABLE [8087788f6] 2018-11-24 21:17:09 +0000
Branch: REL9_4_STABLE [e5a6ae97e] 2018-11-24 21:17:09 +0000
-->
     <para>
      Fix <filename>contrib/hstore</filename> to calculate correct hash
      values for empty <type>hstore</type> values that were created in
      version 8.4 or before (Andrew Gierth)
     </para>

     <para>
      The previous coding did not give the same result as for an
      empty <type>hstore</type> value created by a newer version, thus
      potentially causing wrong results in hash joins or hash
      aggregation.  It is advisable to reindex any hash indexes
      built on <type>hstore</type> columns, if the table might contain
      data that was originally stored as far back as 8.4 and was never
      dumped/reloaded since then.
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
Branch: master [757c5182f] 2018-11-24 08:48:36 +0000
Branch: REL_11_STABLE [2e497ed23] 2018-11-24 08:39:29 +0000
Branch: REL_10_STABLE [e193fb991] 2018-11-24 08:39:42 +0000
Branch: REL9_6_STABLE [5f11a500f] 2018-11-24 08:39:55 +0000
Branch: REL9_5_STABLE [f0bfc7a2b] 2018-11-24 08:39:58 +0000
Branch: REL9_4_STABLE [2f30b311d] 2018-11-24 08:40:02 +0000
-->
     <para>
      Avoid crashes and excessive runtime with large inputs
      to <filename>contrib/intarray</filename>'s <literal>gist__int_ops</literal>
      index support (Andrew Gierth)
     </para>
    </listitem>

    <listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
Branch: master [7291733ac] 2019-01-13 10:23:48 +0100
Branch: REL_11_STABLE [3d498c65a] 2019-01-13 10:24:21 +0100
Branch: REL_10_STABLE [cd1873160] 2019-01-13 10:25:23 +0100
-->
     <para>
      In <application>configure</application>, look
      for <command>python3</command> and then <command>python2</command>
      if <command>python</command> isn't found (Peter Eisentraut)
     </para>

     <para>
      This allows PL/Python to be configured without explicitly
      specifying <literal>PYTHON</literal> on platforms that no longer
      provide an unversioned <command>python</command> executable.
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [5c1186751] 2019-01-28 13:51:12 -0800
Branch: REL_11_STABLE [453be7d4d] 2019-01-28 13:53:43 -0800
-->
     <para>
      Include JIT-related headers in the installed set of header files
      (Donald Dong)
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [ac3a9afdb] 2019-02-03 17:48:09 +0900
Branch: REL_11_STABLE [946430da6] 2019-02-03 17:48:35 +0900
Branch: REL_10_STABLE [da14c9b19] 2019-02-03 17:48:46 +0900
Branch: REL9_6_STABLE [5e63df827] 2019-02-03 17:48:53 +0900
Branch: REL9_5_STABLE [12ff406f3] 2019-02-03 17:48:59 +0900
Branch: REL9_4_STABLE [42b204db2] 2019-02-03 17:49:04 +0900
-->
     <para>
      Support new Makefile
      variables <literal>PG_CFLAGS</literal>, <literal>PG_CXXFLAGS</literal>,
      and <literal>PG_LDFLAGS</literal> in <application>pgxs</application>
      builds (Christoph Berg)
     </para>

     <para>
      This simplifies customization of extension build processes.
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [f83419b73] 2019-02-05 19:27:47 -0500
Branch: REL_11_STABLE [77173d0cc] 2019-02-05 19:33:42 -0500
Branch: REL_10_STABLE [1a6244216] 2019-02-05 19:34:00 -0500
Branch: REL9_6_STABLE [42345284c] 2019-02-05 19:34:17 -0500
Branch: REL9_5_STABLE [59927f99a] 2019-02-05 19:35:07 -0500
Branch: REL9_4_STABLE [2689e8e33] 2019-02-05 19:35:18 -0500
Branch: master [592123efb] 2019-02-06 07:36:02 -0500
Branch: REL_11_STABLE [11f11e1e0] 2019-02-06 07:49:07 -0500
Branch: REL_10_STABLE [1f28906bf] 2019-02-06 07:49:27 -0500
Branch: REL9_6_STABLE [324c92646] 2019-02-06 07:53:19 -0500
Branch: REL9_5_STABLE [8d2741452] 2019-02-06 07:55:10 -0500
Branch: REL9_4_STABLE [13e95662c] 2019-02-06 07:55:22 -0500
Branch: REL9_6_STABLE [772d4b769] 2019-02-05 18:31:10 -0500
Branch: REL9_5_STABLE [a25b04933] 2019-02-05 18:34:47 -0500
Branch: REL9_4_STABLE [7a3763318] 2019-02-05 18:34:58 -0500
Branch: master [f884a9681] 2019-02-05 09:59:46 -0500
Branch: REL_11_STABLE [4e7a51302] 2019-02-05 10:04:38 -0500
Branch: REL_10_STABLE [1fbb9bda0] 2019-02-05 10:04:58 -0500
Branch: REL9_6_STABLE [be037c11b] 2019-02-05 10:05:17 -0500
Branch: REL9_5_STABLE [a82ca6ffb] 2019-02-05 10:05:57 -0500
Branch: REL9_4_STABLE [51884fa16] 2019-02-05 10:06:12 -0500
-->
     <para>
      Fix Perl-coded build scripts to not
      assume <quote><literal>.</literal></quote> is in the search path,
      since recent Perl versions don't include that (Andrew Dunstan)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [69bcd718d] 2019-01-18 15:06:26 -0500
Branch: REL_11_STABLE [e4ffa0dcb] 2019-01-18 15:06:26 -0500
Branch: REL_10_STABLE [139e42742] 2019-01-18 15:06:26 -0500
Branch: REL9_6_STABLE [167ba6b15] 2019-01-18 15:06:26 -0500
Branch: REL9_5_STABLE [dc2dee438] 2019-01-18 15:06:26 -0500
Branch: REL9_4_STABLE [b161ffe31] 2019-01-18 15:06:26 -0500
-->
     <para>
      Fix server command-line option parsing problems on OpenBSD (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [640158386] 2019-02-09 11:41:09 -0500
Branch: REL_11_STABLE [027b5a300] 2019-02-09 11:41:09 -0500
Branch: REL_10_STABLE [dc0eb137f] 2019-02-09 11:41:09 -0500
Branch: REL9_6_STABLE [6257f525a] 2019-02-09 11:41:09 -0500
-->
     <para>
      Relocate call of <literal>set_rel_pathlist_hook</literal> so that
      extensions can use it to supply partial paths for parallel queries
      (KaiGai Kohei)
     </para>

     <para>
      This is not expected to affect existing use-cases.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [d63dc0aa0] 2019-02-05 10:58:53 -0500
Branch: REL_11_STABLE [46b454096] 2019-02-05 10:59:06 -0500
Branch: REL_10_STABLE [09c5f045c] 2019-02-05 10:59:15 -0500
Branch: REL9_6_STABLE [f6db9f8ab] 2019-02-05 10:59:23 -0500
Branch: REL9_5_STABLE [4232a650b] 2019-02-05 10:59:31 -0500
Branch: REL9_4_STABLE [a683df403] 2019-02-05 10:59:38 -0500
-->
     <para>
      Update time zone data files to <application>tzdata</application>
      release 2018i for DST law changes in Kazakhstan, Metlakatla, and Sao
      Tome and Principe.  Kazakhstan's Qyzylorda zone is split in two,
      creating a new zone Asia/Qostanay, as some areas did not change UTC
      offset.  Historical corrections for Hong Kong and numerous Pacific
      islands.
     </para>
    </listitem>

   </itemizedlist>

  </sect2>
 </sect1>

 <sect1 id="release-11-1">
  <title>Release 11.1</title>

  <formalpara>
  <title>Release date:</title>
  <para>2018-11-08</para>
  </formalpara>

  <para>
   This release contains a variety of fixes from 11.0.
   For information about new features in major release 11, see
   <xref linkend="release-11"/>.
  </para>

  <sect2>
   <title>Migration to Version 11.1</title>

   <para>
    A dump/restore is not required for those running 11.X.
   </para>

   <para>
    However, if you use the <filename>pg_stat_statements</filename> extension,
    see the changelog entry below about that.
   </para>
  </sect2>

  <sect2>
   <title>Changes</title>

   <itemizedlist>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [350410be4] 2018-10-19 00:50:16 -0400
Branch: REL_11_STABLE [06292bb94] 2018-10-19 00:50:16 -0400
Branch: REL_10_STABLE [09397f0ed] 2018-10-19 00:50:17 -0400
-->
     <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: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [dfa608141] 2018-11-03 13:25:19 -0300
Branch: REL_11_STABLE [33e6c34c3] 2018-11-03 13:25:29 -0300
-->
     <para>
      Apply the tablespace specified for a partitioned index when creating a
      child index (&Aacute;lvaro Herrera)
     </para>

     <para>
      Previously, child indexes were always created in the default
      tablespace.
     </para>
    </listitem>

    <listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
Branch: master [1ce4a807e] 2018-11-03 11:05:35 +1300
Branch: REL_11_STABLE [fd6449aa3] 2018-11-03 11:08:03 +1300
-->
     <para>
      Fix NULL handling in parallel hashed multi-batch left joins (Andrew
      Gierth, Thomas Munro)
     </para>

     <para>
      Outer-relation rows with null values of the hash key were omitted from
      the join result.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [14a158f9b] 2018-10-30 15:26:11 -0400
Branch: REL_11_STABLE [2bd6dcdef] 2018-10-30 15:26:11 -0400
-->
     <para>
      Fix incorrect processing of an array-type coercion expression
      appearing within a <literal>CASE</literal> clause that has a constant
      test expression (Tom Lane)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [040a1df61] 2018-10-24 10:56:27 -0400
Branch: REL_11_STABLE [372102b81] 2018-10-24 10:57:35 -0400
-->
     <para>
      Fix incorrect expansion of tuples lacking recently-added columns
      (Andrew Dunstan, Amit Langote)
     </para>

     <para>
      This is known to lead to crashes in triggers on tables with
      recently-added columns, and could have other symptoms as well.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [15c729347] 2018-11-04 13:25:39 -0500
Branch: REL_11_STABLE [4b0c3712c] 2018-11-04 13:25:39 -0500
Branch: master [9b6fb9fbb] 2018-11-04 14:50:55 -0500
Branch: REL_11_STABLE [d358da814] 2018-11-04 14:50:55 -0500
-->
     <para>
      Fix bugs with named or defaulted arguments in <command>CALL</command>
      argument lists (Tom Lane, Pavel Stehule)
     </para>
    </listitem>

    <listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [4c640f4f3] 2018-11-03 14:48:42 -0700
Branch: REL_11_STABLE [fd59b29c8] 2018-11-03 14:48:42 -0700
Branch: master [793beab37] 2018-11-03 15:55:23 -0700
Branch: REL_11_STABLE [6eb31cedb] 2018-11-03 16:00:00 -0700
-->
     <para>
      Fix strictness check for strict aggregates with <literal>ORDER
      BY</literal> columns (Andrew Gierth, Andres Freund)
     </para>

     <para>
      The strictness logic incorrectly ignored rows for which
      the <literal>ORDER BY</literal> value(s) were null.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [5d28c9bd7] 2018-11-06 18:33:28 -0500
Branch: REL_11_STABLE [05f84605d] 2018-11-06 18:33:33 -0500
-->
     <para>
      Disable <varname>recheck_on_update</varname> optimization (Tom Lane)
     </para>

     <para>
      This new-in-v11 feature turns out not to have been ready for prime
      time.  Disable it until something can be done about it.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [dc3e436b1] 2018-11-05 11:04:02 +0900
Branch: REL_11_STABLE [7c222d5e5] 2018-11-05 11:04:14 +0900
Branch: REL_10_STABLE [8aad248f7] 2018-11-05 11:04:20 +0900
-->
     <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>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [4bc772e2a] 2018-11-05 09:14:33 +0900
Branch: REL_11_STABLE [948af5232] 2018-11-05 09:15:08 +0900
Branch: REL_10_STABLE [70c38e708] 2018-11-05 09:15:25 +0900
-->
     <para>
      Fix problems with applying <literal>ON COMMIT DELETE ROWS</literal> to
      a partitioned temporary table (Amit Langote)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [981dc2baa] 2018-11-03 13:56:10 -0400
Branch: REL_11_STABLE [bf4a9562e] 2018-11-03 13:56:10 -0400
Branch: REL_10_STABLE [f7ba6e951] 2018-11-03 13:56:10 -0400
Branch: REL9_6_STABLE [73dbaed93] 2018-11-03 13:56:10 -0400
Branch: REL9_5_STABLE [6e6092989] 2018-11-03 13:56:10 -0400
Branch: REL9_4_STABLE [0ae902e39] 2018-11-03 13:56:10 -0400
Branch: REL9_3_STABLE [33c697e9d] 2018-11-03 13:56:10 -0400
-->
     <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: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [2ddb9149d] 2018-10-19 21:39:21 -0400
Branch: REL_11_STABLE [7aaeb7b45] 2018-10-19 21:39:21 -0400
Branch: REL_10_STABLE [3bdef6d21] 2018-10-19 21:39:21 -0400
Branch: REL9_6_STABLE [cbab94077] 2018-10-19 21:39:22 -0400
Branch: REL9_5_STABLE [f4941666a] 2018-10-19 21:39:22 -0400
-->
     <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 [696b0c5fd] 2018-10-31 17:05:03 -0400
Branch: REL_11_STABLE [2493e2c2d] 2018-10-31 17:04:42 -0400
Branch: REL_10_STABLE [92e371f9b] 2018-10-31 17:04:43 -0400
Branch: REL9_6_STABLE [558571afc] 2018-10-31 17:04:43 -0400
Branch: REL9_5_STABLE [156a737a6] 2018-10-31 17:04:43 -0400
Branch: REL9_4_STABLE [95015b1f8] 2018-10-31 17:04:43 -0400
Branch: REL9_3_STABLE [82dd1c271] 2018-10-31 17:04:43 -0400
-->
     <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: Andres Freund <andres@anarazel.de>
Branch: master [691d79a07] 2018-10-31 15:46:39 -0700
Branch: REL_11_STABLE [c33a01c79] 2018-10-31 15:46:40 -0700
Branch: REL_10_STABLE [021e1c329] 2018-10-31 15:46:40 -0700
Branch: REL9_6_STABLE [d35fd17cb] 2018-10-31 15:46:40 -0700
Branch: REL9_5_STABLE [679cb44e4] 2018-10-31 15:46:40 -0700
Branch: REL9_4_STABLE [cf358a2c0] 2018-10-31 15:46:40 -0700
-->
     <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 [4247db625] 2018-10-19 22:22:57 -0400
Branch: REL_11_STABLE [d30d27a52] 2018-10-19 22:22:57 -0400
Branch: REL_10_STABLE [ecc59e31a] 2018-10-19 22:22:57 -0400
Branch: REL9_6_STABLE [34aad21cb] 2018-10-19 22:22:57 -0400
Branch: REL9_5_STABLE [ac3be116a] 2018-10-19 22:22:57 -0400
-->
     <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 [d55241af7] 2018-10-19 22:44:12 +0900
Branch: REL_11_STABLE [cc7f27eae] 2018-10-19 22:45:07 +0900
-->
     <para>
      Fix <application>pg_verify_checksums</application>'s determination of
      which files to check the checksums of (Michael Paquier)
     </para>

     <para>
      In some cases it complained about files that are not expected to have
      checksums.
     </para>
    </listitem>

    <listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
Branch: master [edb979766] 2018-09-25 09:55:44 +0900
Branch: REL_11_STABLE Release: REL_11_0 [a3bb831ef] 2018-09-25 09:56:41 +0900
Branch: REL_10_STABLE [90a1f9786] 2018-09-25 09:56:57 +0900
-->
     <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.
      (A database freshly created in 11.0 should not need this, but a
      database upgraded from a previous release probably still contains
      the old version of <filename>pg_stat_statements</filename>.  The
      <literal>UPDATE</literal> command is harmless if the module was
      already updated.)
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [003c68a3b] 2018-11-06 13:25:24 -0500
Branch: REL_11_STABLE [1f28ec6be] 2018-11-06 13:25:24 -0500
Branch: REL_10_STABLE [b2e754c14] 2018-11-06 13:25:24 -0500
-->
     <para>
      Rename red-black tree support functions to use <literal>rbt</literal>
      prefix not <literal>rb</literal> prefix (Tom Lane)
     </para>

     <para>
      This avoids name collisions with Ruby functions, which broke
      PL/Ruby.  It's hoped that there are no other affected extensions.
     </para>
    </listitem>

    <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [1440c461f] 2018-11-02 18:54:00 -0400
Branch: REL_11_STABLE [df1d749a7] 2018-11-02 18:54:00 -0400
Branch: REL_10_STABLE [229a5c8ad] 2018-11-02 18:54:00 -0400
Branch: REL9_6_STABLE [401202b79] 2018-11-02 18:54:00 -0400
Branch: REL9_5_STABLE [94ea1cf73] 2018-11-02 18:54:00 -0400
Branch: REL9_4_STABLE [1b5e8b408] 2018-11-02 18:54:00 -0400
Branch: REL9_3_STABLE [1aad3a724] 2018-11-02 18:54:00 -0400
Branch: master [e74dd00f5] 2018-10-18 14:55:23 -0400
Branch: REL_11_STABLE [d1e869d1e] 2018-10-18 14:55:23 -0400
Branch: REL_10_STABLE [34f9944c2] 2018-10-18 14:55:23 -0400
Branch: REL9_6_STABLE [1b92ca9e2] 2018-10-18 14:55:23 -0400
Branch: REL9_5_STABLE [021b355cd] 2018-10-18 14:55:23 -0400
Branch: REL9_4_STABLE [0749acca5] 2018-10-18 14:55:23 -0400
Branch: REL9_3_STABLE [015fd381f] 2018-10-18 14:55:23 -0400
Branch: master [68fc227dd] 2018-10-16 16:27:15 -0400
Branch: REL_11_STABLE [1a69f738d] 2018-10-16 16:27:15 -0400
Branch: REL_10_STABLE [ee6c08b01] 2018-10-16 16:27:15 -0400
Branch: REL9_6_STABLE [5777a9ff8] 2018-10-16 16:27:15 -0400
Branch: REL9_5_STABLE [d0ab588cc] 2018-10-16 16:27:15 -0400
Branch: REL9_4_STABLE [486e6f8d9] 2018-10-16 16:27:15 -0400
Branch: REL9_3_STABLE [19ac2cb2a] 2018-10-16 16:27:15 -0400
Branch: master [5e2217131] 2018-09-25 13:23:29 -0400
Branch: REL_11_STABLE Release: REL_11_0 [9590f7d6c] 2018-09-25 13:23:29 -0400
Branch: REL_10_STABLE [736c3a48c] 2018-09-25 13:23:29 -0400
Branch: REL9_6_STABLE [0a4456a70] 2018-09-25 13:23:29 -0400
Branch: REL9_5_STABLE [6dc28d291] 2018-09-25 13:23:29 -0400
Branch: REL9_4_STABLE [a5361b593] 2018-09-25 13:23:29 -0400
Branch: REL9_3_STABLE [6019247a5] 2018-09-25 13:23:29 -0400
-->
     <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>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [1df92eeaf] 2018-10-28 12:22:32 -0400
Branch: REL_11_STABLE [8cb5e67d1] 2018-10-28 12:23:19 -0400
Branch: REL_10_STABLE [a71f55652] 2018-10-28 12:25:10 -0400
Branch: REL9_6_STABLE [9fd6d4eae] 2018-10-28 12:25:56 -0400
Branch: REL9_5_STABLE [ba103dc87] 2018-10-28 12:26:05 -0400
Branch: REL9_4_STABLE [698255147] 2018-10-28 12:26:14 -0400
Branch: REL9_3_STABLE [075641fd0] 2018-10-28 12:27:58 -0400
-->
     <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>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [ce5d3424d] 2018-10-20 09:02:36 -0400
Branch: REL_11_STABLE [a0a8671a6] 2018-10-20 09:10:02 -0400
Branch: REL_10_STABLE [f4b67efdc] 2018-10-20 09:10:18 -0400
Branch: REL9_6_STABLE [42a93da25] 2018-10-20 09:10:54 -0400
Branch: REL9_5_STABLE [cc02db82c] 2018-10-20 09:11:18 -0400
-->
     <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 [5c2e0ca5f] 2018-10-31 08:35:50 -0400
Branch: REL_11_STABLE [58c45fdaa] 2018-10-31 08:36:06 -0400
Branch: REL_10_STABLE [671f43d88] 2018-10-31 08:36:15 -0400
Branch: REL9_6_STABLE [bb761c6a0] 2018-10-31 08:36:22 -0400
Branch: REL9_5_STABLE [811d8cb87] 2018-10-31 08:36:29 -0400
Branch: REL9_4_STABLE [d651e9e7c] 2018-10-31 08:36:35 -0400
Branch: REL9_3_STABLE [3bf4edace] 2018-10-31 08:36:41 -0400
Branch: master [13877d30f] 2018-10-19 17:01:34 -0400
Branch: REL_11_STABLE [d2259c26b] 2018-10-19 17:01:49 -0400
Branch: REL_10_STABLE [5777c93af] 2018-10-19 17:01:56 -0400
Branch: REL9_6_STABLE [185f135c9] 2018-10-19 17:02:05 -0400
Branch: REL9_5_STABLE [56170609b] 2018-10-19 17:02:12 -0400
Branch: REL9_4_STABLE [9abbfc35c] 2018-10-19 17:02:20 -0400
Branch: REL9_3_STABLE [84261eb10] 2018-10-19 17:02:26 -0400
-->
     <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-11">
  <title>Release 11</title>

  <formalpara>
   <title>Release date:</title>
   <para>2018-10-18</para>
  </formalpara>

  <sect2>
   <title>Overview</title>

   <para>
    Major enhancements in <productname>PostgreSQL</productname> 11 include:
   </para>

   <!-- Items in this list summarize one or more items below -->

   <itemizedlist>

    <listitem>
     <para>
      Improvements to partitioning functionality, including:
      <itemizedlist>
       <listitem>
        <para>
         Add support for partitioning by a hash key
        </para>
       </listitem>
       <listitem>
        <para>
         Add support for <literal>PRIMARY KEY</literal>, <literal>FOREIGN
         KEY</literal>, indexes, and triggers on partitioned tables
        </para>
       </listitem>
       <listitem>
        <para>
         Allow creation of a <quote>default</quote> partition for storing
         data that does not match any of the remaining partitions
        </para>
       </listitem>
       <listitem>
        <para>
         <command>UPDATE</command> statements that change a partition key
         column now cause affected rows to be moved to the appropriate
         partitions
        </para>
       </listitem>
       <listitem>
        <para>
         Improve <command>SELECT</command> performance through enhanced
         partition elimination strategies during query planning and execution
        </para>
       </listitem>
      </itemizedlist>
     </para>
    </listitem>

    <listitem>
     <para>
      Improvements to parallelism, including:
      <itemizedlist>
       <listitem>
        <para>
         <command>CREATE INDEX</command> can now use parallel processing
         while building a B-tree index
        </para>
       </listitem>
       <listitem>
        <para>
         Parallelization is now possible in <command>CREATE TABLE
         ... AS</command>,
         <command>CREATE MATERIALIZED VIEW</command>, and certain
         queries using <literal>UNION</literal>
        </para>
       </listitem>
       <listitem>
        <para>
         Parallelized hash joins and parallelized sequential scans now
         perform better
        </para>
       </listitem>
      </itemizedlist>
     </para>
    </listitem>

    <listitem>
     <para>
      SQL stored procedures that support embedded transactions
     </para>
    </listitem>

    <listitem>
     <para>
      Optional Just-in-Time (JIT) compilation for some SQL code, speeding
      evaluation of expressions
     </para>
    </listitem>

    <listitem>
     <para>
      Window functions now support all framing options shown in the SQL:2011
      standard, including <literal>RANGE <replaceable>distance</replaceable>
      PRECEDING/FOLLOWING</literal>, <literal>GROUPS</literal> mode, and
      frame exclusion options
     </para>
    </listitem>

    <listitem>
     <para>
      Covering indexes can now be created, using the
      <literal>INCLUDE</literal> clause of <command>CREATE INDEX</command>
     </para>
    </listitem>

    <listitem>
     <para>
      Many other useful performance improvements, including the ability to
      avoid a table rewrite for <command>ALTER TABLE ... ADD COLUMN</command>
      with a non-null column default
     </para>
    </listitem>

   </itemizedlist>

   <para>
    The above items are explained in more detail in the sections below.
   </para>

  </sect2>

  <sect2>

  <title>Migration to Version 11</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 11 contains a number of changes that may affect compatibility
    with previous releases.  Observe the following incompatibilities:
   </para>

   <itemizedlist>

    <listitem>
<!--
2018-01-22 [b3f840120] Move handling of database properties from pg_dumpall int
2018-01-23 [160a4f62e] In pg_dump, force reconnection after issuing ALTER DATAB
2018-01-25 [0d4e6ed30] Clean up some aspects of pg_dump/pg_restore item-selecti
-->

       <para>
        Make <link
        linkend="app-pgdump"><application>pg_dump</application></link>
        dump the properties of a database, not just its contents
        (Haribabu Kommi)
       </para>

       <para>
        Previously, attributes of the database itself, such as database-level
        <command>GRANT</command>/<command>REVOKE</command> permissions and
        <command>ALTER DATABASE SET</command> variable settings, were only
        dumped by <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>.
        Now <command>pg_dump --create</command> and
        <command>pg_restore --create</command> will restore these database
        properties in addition to the objects within the
        database.  <command>pg_dumpall -g</command> now only dumps role-
        and tablespace-related attributes.
        <application>pg_dumpall</application>'s complete output (without
        <option>-g</option>) is unchanged.
       </para>

       <para>
        <application>pg_dump</application> and
        <application>pg_restore</application>, without
        <option>--create</option>, no longer dump/restore database-level
        comments and security labels; those are now treated as properties of
        the database.
       </para>

       <para>
        <application>pg_dumpall</application>'s output script will now always
        create databases with their original locale and encoding, and hence
        will fail if the locale or encoding name is unknown to the
        destination system.  Previously, <command>CREATE DATABASE</command>
        would be emitted without these specifications if the database locale
        and encoding matched the old cluster's defaults.
       </para>

       <para>
        <command>pg_dumpall --clean</command> now restores the original
        locale and encoding settings of the <literal>postgres</literal>
        and <literal>template1</literal> databases, as well as those of
        user-created databases.
       </para>
      </listitem>

      <listitem>
<!--
2018-06-18 [b97a3465d] Consider syntactic form when disambiguating function vs
2018-06-18 [45e98ee73] Remove obsolete prohibition on function name matching a
-->

       <para>
        Consider syntactic form when disambiguating function versus column
        references (Tom Lane)
       </para>

       <para>
        When <replaceable>x</replaceable> is a table name or composite
        column, <productname>PostgreSQL</productname> has traditionally
        considered the syntactic
        forms <literal><replaceable>f</replaceable>(<replaceable>x</replaceable>)</literal>
        and <literal><replaceable>x</replaceable>.<replaceable>f</replaceable></literal>
        to be equivalent, allowing tricks such as writing a function and
        then using it as though it were a computed-on-demand column.
        However, if both interpretations are feasible, the column
        interpretation was always chosen, leading to surprising results if
        the user intended the function interpretation.  Now, if there is
        ambiguity, the interpretation that matches the syntactic form is
        chosen.
       </para>
      </listitem>

      <listitem>
<!--
2018-09-04 [fb466d7b5] Fully enforce uniqueness of constraint names.
-->
       <para>
        Fully enforce uniqueness of table and domain constraint names
        (Tom Lane)
       </para>

       <para>
        <productname>PostgreSQL</productname> expects the names of a table's
        constraints to be distinct, and likewise for the names of a domain's
        constraints.  However, there was not rigid enforcement of this, and
        previously there were corner cases where duplicate names could be
        created.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-29 [61b200e2f] Avoid wrong results for power() with NaN input on some p
2018-04-29 [6bdf1303b] Avoid wrong results for power() with NaN input on more p
2018-05-17 [d1fc750b5] Make numeric power() handle NaNs according to the modern
-->

       <para>
        Make <function>power(numeric, numeric)</function>
        and <function>power(float8, float8)</function>
        handle <literal>NaN</literal> inputs according to the POSIX standard
        (Tom Lane, Dang Minh Huong)
       </para>

       <para>
        POSIX says that <literal>NaN ^ 0 = 1</literal> and <literal>1 ^ NaN
        = 1</literal>, but all other cases with <literal>NaN</literal>
        input(s) should return <literal>NaN</literal>.
        <function>power(numeric, numeric)</function> just
        returned <literal>NaN</literal> in all such cases; now it honors the
        two exceptions.  <function>power(float8, float8)</function> followed
        the standard if the C library does; but on some old Unix platforms
        the library doesn't, and there were also problems on some versions
        of Windows.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-17 [e87d4965b] Prevent to_number() from losing data when template doesn
-->

       <para>
        Prevent <link
        linkend="functions-formatting-numeric-table"><function>to_number()</function></link>
        from consuming characters when the template separator does not
        match (Oliver Ford)
       </para>

       <para>
        Specifically, <command>SELECT to_number('1234', '9,999')</command>
        used to return <literal>134</literal>.  It will now
        return <literal>1234</literal>.  <literal>L</literal> and
        <literal>TH</literal> now only consume characters that are not
        digits, positive/negative signs, decimal points, or commas.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-18 [976a1a48f] Improve to_date/to_number/to_timestamp behavior with mul
-->

       <para>
        Fix <link
        linkend="functions-formatting"><function>to_date()</function></link>,
        <function>to_number()</function>, and
        <function>to_timestamp()</function> to skip a character for each
        template character (Tom Lane)
       </para>

       <para>
        Previously, they skipped one <emphasis>byte</emphasis> for each byte
        of template character, resulting in strange behavior if either string
        contained multibyte characters.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-18 [63ca86318] Fix quoted-substring handling in format parsing for to_c
-->

       <para>
        Adjust the handling of backslashes inside double-quotes in
        template strings for <function>to_char()</function>,
        <function>to_number()</function>, and
        <function>to_timestamp()</function>.
       </para>

       <para>
        Such a backslash now escapes the character after it, particularly
        a double-quote or another backslash.
       </para>
      </listitem>

      <listitem>
<!--
2018-06-21 [e474c2b7e] Set correct context for XPath evaluation
-->

       <para>
        Correctly handle relative path expressions
        in <function>xmltable()</function>, <function>xpath()</function>,
        and other XML-handling functions (Markus Winand)
       </para>

       <para>
        Per the SQL standard, relative paths start from the document node of
        the XML input document, not the root node as these functions
        previously did.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-18 [f8e5f156b] Rearm statement_timeout after each executed query.

-->

       <para>
        In the <link linkend="protocol-query-concepts">extended query
        protocol</link>,
        make <link linkend="guc-statement-timeout"><varname>statement_timeout</varname></link>
        apply to each Execute message separately, not to all commands before
        Sync (Tatsuo Ishii, Andres Freund)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-14 [f66e8bf87] Remove pg_class.relhaspkey
-->

       <para>
        Remove the <structfield>relhaspkey</structfield> column from system
        catalog <structname>pg_class</structname> (Peter Eisentraut)
       </para>

       <para>
        Applications needing to check for a primary key should consult
        <structname>pg_index</structname>.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-02 [fd1a421fe] Add prokind column, replacing proisagg and proiswindow
-->

       <para>
        Replace system catalog <structname>pg_proc</structname>'s
        <structfield>proisagg</structfield> and
        <structfield>proiswindow</structfield> columns with
        <structfield>prokind</structfield> (Peter Eisentraut)
       </para>

       <para>
        This new column more clearly distinguishes functions, procedures,
        aggregates, and window functions.
       </para>
      </listitem>

      <listitem>
<!--
2017-08-16 [9b5140fb5] Correct representation of foreign tables in information
-->

       <para>
        Correct information schema column <link
        linkend="infoschema-tables"><structname>tables</structname>.<structfield>table_type</structfield></link>
        to return <literal>FOREIGN</literal> instead of <literal>FOREIGN
        TABLE</literal> (Peter Eisentraut)
       </para>

       <para>
        This new output matches the SQL standard.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-20 [be87b70b6] Sync process names between ps and pg_stat_activity
-->

       <para>
        Change the ps process display
        labels for background workers to match the <link
        linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname>.<structfield>backend_type</structfield></link>
        labels (Peter Eisentraut)
       </para>
      </listitem>

      <listitem>
<!--
2017-11-09 [ae20b23a9] Refactor permissions checks for large objects.
2017-11-14 [6d776522d] Document changes in large-object privilege checking.
-->

       <para>
        Cause large object permission checks
        to happen during large object open, <link
        linkend="lo-open"><function>lo_open()</function></link>, not
        when a read or write is attempted (Tom Lane, Michael Paquier)
       </para>

       <para>
        If write access is requested and not available, an error will now be
        thrown even if the large object is never written to.
       </para>
      </listitem>

      <listitem>
<!--
2018-08-09 [87330e21c] Restrict access to reindex of shared catalogs for non-pr
-->
       <para>
        Prevent non-superusers from reindexing shared catalogs
        (Michael Paquier, Robert Haas)
       </para>

       <para>
        Previously, database owners were also allowed to do this, but
        now it is considered outside the bounds of their privileges.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-06 [11523e860] Support new default roles with adminpack
-->

       <para>
        Remove deprecated <link
        linkend="adminpack"><filename>adminpack</filename></link> functions
        <function>pg_file_read()</function>,
        <function>pg_file_length()</function>, and
        <function>pg_logfile_rotate()</function> (Stephen Frost)
       </para>

       <para>
        Equivalent functionality is now present in the core backend.
        Existing <filename>adminpack</filename> installs will continue to have
        access to these functions until they are updated via <command>ALTER
        EXTENSION ... UPDATE</command>.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-26 [fb8697b31] Avoid unnecessary use of pg_strcasecmp for already-downc
-->

       <para>
        Honor the capitalization of double-quoted command options
        (Daniel Gustafsson)
       </para>

       <para>
        Previously, option names in certain SQL commands were forcibly
        lower-cased even if entered with double quotes; thus for example
        <literal>"FillFactor"</literal> would be accepted as an index storage
        option, though properly its name is lower-case.  Such cases will now
        generate an error.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-29 [8b304b8b7] Remove replacement selection sort.
-->

       <para>
        Remove server parameter <varname>replacement_sort_tuples</varname>
        (Peter Geoghegan)
       </para>

       <para>
        Replacement sorts were determined to be no longer useful.
       </para>

      </listitem>

      <listitem>
<!--
2018-01-26 [4971d2a32] Remove the obsolete WITH clause of CREATE FUNCTION.
-->

       <para>
        Remove <literal>WITH</literal> clause in <link
        linkend="sql-createfunction"><command>CREATE
        FUNCTION</command></link> (Michael Paquier)
       </para>

       <para>
        <productname>PostgreSQL</productname> has long supported a more
        standard-compliant syntax for this capability.
       </para>
      </listitem>

      <listitem>
<!--
2018-02-13 [4b93f5799] Make plpgsql use its DTYPE_REC code paths for composite-
-->

       <para>
        In PL/pgSQL trigger functions, the <varname>OLD</varname>
        and <varname>NEW</varname> variables now read as NULL when not
        assigned (Tom Lane)
       </para>

       <para>
        Previously, references to these variables could be parsed but not
        executed.
       </para>
      </listitem>

   </itemizedlist>

  </sect2>

  <sect2>
   <title>Changes</title>

   <para>
    Below you will find a detailed account of the changes between
    <productname>PostgreSQL</productname> 11 and the previous major
    release.
   </para>

   <sect3>
    <title>Server</title>

    <sect4>
     <title>Partitioning</title>

     <itemizedlist>

      <listitem>
<!--
2017-11-09 [1aba8e651] Add hash partitioning.
-->

       <para>
        Allow the creation of partitions based on hashing a key column
        (Amul Sul)
       </para>
      </listitem>

      <listitem>
<!--
2018-01-19 [8b08f7d48] Local partitioned indexes
2018-02-19 [eb7ed3f30] Allow UNIQUE indexes on partitioned tables
2018-03-26 [555ee77a9] Handle INSERT .. ON CONFLICT with partitioned tables
-->

       <para>
        Support indexes on partitioned tables (&Aacute;lvaro Herrera,
        Amit Langote)
       </para>

       <para>
        An <quote>index</quote> on a partitioned table is not a physical
        index across the whole partitioned table, but rather a template for
        automatically creating similar indexes on each partition of the
        table.
       </para>

       <para>
        If the partition key is part of the index's column set, a
        partitioned index may be declared <literal>UNIQUE</literal>.
        It will represent a valid uniqueness constraint across the whole
        partitioned table, even though each physical index only enforces
        uniqueness within its own partition.
       </para>

       <para>
        The new command <link linkend="sql-alterindex"><command>ALTER
        INDEX ATTACH PARTITION</command></link> causes an existing index on
        a partition to be associated with a matching index template for its
        partitioned table.  This provides flexibility in setting up a new
        partitioned index for an existing partitioned table.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-04 [3de241dba] Foreign keys on partitioned tables
-->

       <para>
        Allow foreign keys on partitioned tables (&Aacute;lvaro Herrera)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-23 [86f575948] Allow FOR EACH ROW triggers on partitioned tables
-->

       <para>
        Allow <literal>FOR EACH ROW</literal> triggers on partitioned
        tables (&Aacute;lvaro Herrera)
       </para>

       <para>
        Creation of a trigger on a partitioned table automatically creates
        triggers on all existing and future partitions.
        This also allows deferred unique constraints on partitioned tables.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-08 [6f6b99d13] Allow a partitioned table to have a default partition.
2018-04-11 [72cf7f310] Fix ALTER TABLE .. ATTACH PARTITION ... DEFAULT
-->

       <para>
        Allow partitioned tables to have a default partition (Jeevan Ladhe,
        Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas)
       </para>

       <para>
        The default partition will store rows that don't match any of the
        other defined partitions, and is searched accordingly.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-19 [2f1784410] Allow UPDATE to move rows between partitions.
-->

       <para>
        <command>UPDATE</command> statements that change a partition key
        column now cause affected rows to be moved to the appropriate
        partitions (Amit Khandekar)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-06 [3d956d956] Allow insert and update tuple routing and COPY for forei
-->

       <para>
        Allow <command>INSERT</command>, <command>UPDATE</command>, and
        <command>COPY</command> on partitioned tables to properly route
        rows to foreign partitions (Etsuro Fujita, Amit Langote)
       </para>

       <para>
        This is supported by <filename>postgres_fdw</filename>
        foreign tables.
        Since the <function>ExecForeignInsert</function> callback function
        is called for this in a different way than it used to be,
        foreign data wrappers must be modified to cope with this change.
       </para>
      </listitem>

      <listitem>
<!--
2018-02-02 [9aef17316] Refactor code for partition bound searching
2018-02-23 [f724022d0] Revise API for partition bound search functions.
2018-04-06 [9fdb675fc] Faster partition pruning
2018-04-23 [055fb8d33] Add GUC enable_partition_pruning
-->

       <para>
        Allow faster partition elimination during query processing (Amit
        Langote, David Rowley, Dilip Kumar)
       </para>

       <para>
        This speeds access to partitioned tables with many partitions.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-07 [499be013d] Support partition pruning at execution time
-->

       <para>
        Allow partition elimination during query execution (David Rowley,
        Beena Emerson)
       </para>

       <para>
        Previously, partition elimination only happened at planning
        time, meaning many joins and prepared queries could not use
        partition elimination.
       </para>
      </listitem>

      <listitem>
<!--
2017-08-15 [e139f1953] Assorted preparatory refactoring for partition-wise join
2017-10-06 [f49842d1e] Basic partition-wise join functionality.
2018-02-16 [2fb1abaeb] Rename enable_partition_wise_join to enable_partitionwis
-->

       <para>
        In an equality join between partitioned tables, allow matching
        partitions to be joined directly (Ashutosh Bapat)
       </para>

       <para>
        This feature is disabled by default
        but can be enabled by changing <link
        linkend="guc-enable-partitionwise-join"><varname>enable_partitionwise_join</varname></link>.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-26 [9fd8b7d63] Factor some code out of create_grouping_paths.
2018-03-22 [e2f1eb0ee] Implement partition-wise grouping/aggregation.
-->

       <para>
        Allow aggregate functions on partitioned tables to be evaluated
        separately for each partition, subsequently merging the results
        (Jeevan Chalke, Ashutosh Bapat, Robert Haas)
       </para>

       <para>
        This feature is disabled by default
        but can be enabled by changing <link
        linkend="guc-enable-partitionwise-aggregate"><varname>enable_partitionwise_aggregate</varname></link>.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-02 [7e0d64c7a] postgres_fdw: Push down partition-wise aggregation.
-->

       <para>
        Allow <link
        linkend="postgres-fdw"><filename>postgres_fdw</filename></link>
        to push down aggregates to foreign tables that are partitions
        (Jeevan Chalke)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title>Parallel Queries</title>

     <itemizedlist>

      <listitem>
<!--
2018-02-02 [9da0cc352] Support parallel btree index builds.
-->

       <para>
        Allow parallel building of a btree index (Peter Geoghegan,
        Rushabh Lathia, Heikki Linnakangas)
       </para>
      </listitem>

      <listitem>
<!--
2017-12-21 [180428404] Add parallel-aware hash joins.
-->

       <para>
        Allow hash joins to be performed in parallel using a shared hash
        table (Thomas Munro)
       </para>
      </listitem>

      <listitem>
<!--
2017-12-05 [ab7271677] Support Parallel Append plan nodes.
2018-03-22 [88ba0ae2a] Consider Parallel Append of partial paths for UNION [ALL
-->

       <para>
        Allow <literal>UNION</literal> to run each
        <command>SELECT</command> in parallel if the individual
        <command>SELECT</command>s cannot be parallelized (Amit Khandekar,
        Robert Haas, Amul Sul)
       </para>
      </listitem>

      <listitem>
<!--
same commits as above
2017-12-05 [ab7271677] Support Parallel Append plan nodes.
2018-03-22 [88ba0ae2a] Consider Parallel Append of partial paths for UNION [ALL
-->

       <para>
        Allow partition scans to more efficiently use parallel workers
        (Amit Khandekar, Robert Haas, Amul Sul)
       </para>
      </listitem>

      <listitem>
<!--
2017-08-29 [3452dc524] Push tuple limits through Gather and Gather Merge.
-->

       <para>
        Allow <literal>LIMIT</literal> to be passed to parallel workers
        (Robert Haas, Tom Lane)
       </para>

       <para>
        This allows workers to reduce returned results and use targeted
        index scans.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-16 [e89a71fb4] Pass InitPlan values to workers via Gather (Merge).
2018-03-29 [3f90ec859] Postpone generate_gather_paths for topmost scan/join rel
2018-03-29 [11cf92f6e] Rewrite the code that applies scan/join targets to paths
-->

       <para>
        Allow single-evaluation queries, e.g. <literal>WHERE</literal>
        clause aggregate queries, and functions in the target list to be
        parallelized (Amit Kapila, Robert Haas)
       </para>
      </listitem>

      <listitem>
<!--
2017-11-15 [e5253fdc4] Add parallel_leader_participation GUC.
-->

       <para>
        Add server parameter <link
        linkend="guc-parallel-leader-participation"><varname>parallel_leader_participation</varname></link>
        to control whether the leader also executes subplans (Thomas Munro)
       </para>

       <para>
        The default is enabled, meaning the leader will execute subplans.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-05 [e9baa5e9f] Allow DML commands that create tables to use parallel qu
-->

       <para>
        Allow parallelization of commands <command>CREATE TABLE
        ... AS</command>, <command>SELECT INTO</command>, and
        <command>CREATE MATERIALIZED VIEW</command> (Haribabu Kommi)
       </para>
      </listitem>

      <listitem>
<!--
2017-08-16 [3cda10f41] Use atomic ops to hand out pages to scan in parallel sca

-->

       <para>
        Improve performance of sequential scans with many parallel workers
        (David Rowley)
       </para>
      </listitem>

      <listitem>
<!--
2017-08-29 [bf11e7ee2] Propagate sort instrumentation from workers back to lead
-->

       <para>
        Add reporting of parallel workers' sort activity in
        <command>EXPLAIN</command> (Robert Haas, Tom Lane)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title>Indexes</title>

     <itemizedlist>

      <listitem>
<!--
2018-04-07 [8224de4f4] Indexes with INCLUDE columns and their support in B-tree
-->

       <para>
        Allow B-tree indexes to include columns that are not part of the
        search key or unique constraint, but are available to be read by
        index-only scans (Anastasia Lubennikova, Alexander Korotkov, Teodor
        Sigaev)
       </para>

       <para>
        This is enabled by the new <literal>INCLUDE</literal> clause of <link
        linkend="sql-createindex"><command>CREATE INDEX</command></link>.
        It facilitates building <quote>covering indexes</quote> that optimize
        specific types of queries.  Columns can be included even if their
        data types don't have B-tree support.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-26 [2b2727343] Optimize btree insertions for common case of increasing
2018-04-10 [074251db6] Adjustments to the btree fastpath optimization.
-->

       <para>
        Improve performance of monotonically increasing index additions
        (Pavan Deolasee, Peter Geoghegan)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-22 [7c75ef571] hash: Implement page-at-a-time scan.
-->

       <para>
        Improve performance of hash index scans (Ashutosh Sharma)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-27 [3ad55863e] Add predicate locking for GiST
2018-03-30 [43d1ed60f] Predicate locking in GIN index
2018-04-07 [b508a56f2] Predicate locking in hash indexes.
-->

       <para>
        Add predicate locking for hash, GiST and GIN indexes (Shubham
        Barai)
       </para>

       <para>
        This reduces the likelihood of serialization conflicts in
        serializable-mode transactions.
       </para>
      </listitem>

     </itemizedlist>

     <sect5>
      <title><link linkend="spgist">SP-Gist</link></title>

      <itemizedlist>

      <listitem>
<!--
2018-04-03 [710d90da1] Add prefix operator for TEXT type.
-->

       <para>
        Add prefix-match
        operator <type>text</type> <literal>^@</literal> <type>text</type>,
        which is supported by SP-GiST (Ildus Kurbangaliev)
       </para>

       <para>
        This is similar to using <replaceable>var</replaceable> <literal>LIKE
        'word%'</literal> with a btree index, but it is more efficient.
       </para>
      </listitem>

      <listitem>
<!--
2017-12-25 [ff963b393] Add polygon opclass for SP-GiST
-->

       <para>
        Allow polygons to be indexed with SP-GiST (Nikita Glukhov,
        Alexander Korotkov)
       </para>
      </listitem>

      <listitem>
<!--
2017-12-22 [854823fa3] Add optional compression method to SP-GiST
-->

       <para>
        Allow SP-GiST to use lossy representation of leaf keys (Teodor Sigaev,
        Heikki Linnakangas, Alexander Korotkov, Nikita Glukhov)
       </para>

      </listitem>

      </itemizedlist>

     </sect5>

    </sect4>

    <sect4>
     <title>Optimizer</title>

     <itemizedlist>

      <listitem>
<!--
2018-03-22 [b5db1d93d] Improve ANALYZE's strategy for finding MCVs.
-->

       <para>
        Improve selection of the most common values for statistics
        (Jeff Janes, Dean Rasheed)
       </para>

       <para>
        Previously, the most common values (<acronym>MCV</acronym>s) were
        identified based on their frequency compared to all column
        values.  Now, <acronym>MCV</acronym>s are chosen based on their
        frequency compared to the non-<acronym>MCV</acronym> values.
        This improves the robustness of the algorithm for both uniform and
        non-uniform distributions.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-13 [7d08ce286] Distinguish selectivity of &lt; from &lt;= and &gt; from &gt;=.
-->

       <para>
        Improve selectivity estimates for <literal>&gt;=</literal>
        and <literal>&lt;=</literal> (Tom Lane)
       </para>

       <para>
        Previously, such cases used the same selectivity estimates
        as <literal>&gt;</literal> and <literal>&lt;</literal>, respectively,
        unless the comparison constants are <acronym>MCV</acronym>s.
        This change is particularly helpful for queries
        involving <literal>BETWEEN</literal> with small ranges.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-08 [8ec5429e2] Reduce "X = X" to "X IS NOT NULL", if it's easy to do so
-->

       <para>
        Reduce <replaceable>var</replaceable> <literal>=</literal>
        <replaceable>var</replaceable>
        to <replaceable>var</replaceable> <literal>IS NOT NULL</literal>
        where equivalent (Tom Lane)
       </para>

       <para>
        This leads to better selectivity estimates.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-29 [7ca25b7de] Fix neqjoinsel's behavior for semi/anti join cases.
-->

       <para>
        Improve optimizer's row count estimates for <literal>EXISTS</literal>
        and <literal>NOT EXISTS</literal> queries (Tom Lane)
       </para>
      </listitem>

      <listitem>
<!--
2017-11-02 [7b6c07547] Teach planner to account for HAVING quals in aggregation
-->

       <para>
        Make the optimizer account for evaluation costs and selectivity
        of <literal>HAVING</literal> clauses (Tom Lane)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title>General Performance</title>

     <itemizedlist>

      <listitem>
<!--
2018-03-21 [432bb9e04] Basic JIT provider and error handling infrastructure.
2018-03-22 [b96d550eb] Support for optimizing and emitting code in LLVM JIT pro
2018-03-22 [cc415a56d] Basic planner and executor integration for JIT.
2018-03-26 [32af96b2b] JIT tuple deforming in LLVM JIT provider.
2018-03-27 [f4f5845b3] Quick adaption of JIT tuple deforming to the fast defaul
2018-03-28 [9370462e9] Add inlining support to LLVM JIT provider.
2018-09-15 [0fdadfb01] In v11, disable JIT by default (it's still enabled by de
-->

       <para>
        Add <link linkend="jit">Just-in-Time</link>
        (<acronym>JIT</acronym>) compilation of some parts of query plans
        to improve execution speed (Andres Freund)
       </para>

       <para>
        This feature requires <application>LLVM</application> to be
        available.  It is not currently enabled by default, even in
        builds that support it.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-01 [7c70996eb] Allow bitmap scans to operate as index-only scans when p
-->

       <para>
        Allow bitmap scans to perform index-only scans when possible
        (Alexander Kuzmenkov)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-29 [851a26e26] While vacuuming a large table, update upper-level <acronym>FSM</acronym> da
2018-03-30 [c79f6df75] Do index FSM vacuuming sooner.
-->

       <para>
        Update the free space map during <command>VACUUM</command>
        (Claudio Freire)
       </para>

       <para>
        This allows free space to be reused more quickly.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-04 [857f9c36c] Skip full index scan during cleanup of B-tree indexes wh
-->

       <para>
        Allow <command>VACUUM</command> to avoid unnecessary index scans
        (Masahiko Sawada, Alexander Korotkov)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-01 [baaf272ac] Use group updates when setting transaction status in clo
-->

       <para>
        Improve performance of committing multiple concurrent transactions
        (Amit Kapila)
       </para>
      </listitem>

      <listitem>
<!--
2017-10-08 [84ad4b036] Reduce memory usage of targetlist SRFs.
-->

       <para>
        Reduce memory usage for queries using set-returning functions in
        their target lists (Andres Freund)
       </para>
      </listitem>

      <listitem>
<!--
2018-01-09 [69c3936a1] Expression evaluation based aggregate transition invocat
-->

       <para>
        Improve the speed of aggregate computations (Andres Freund)
       </para>
      </listitem>

      <listitem>
<!--
2018-02-07 [1bc0100d2] postgres_fdw: Push down UPDATE/DELETE joins to remote se
-->

       <para>
        Allow <link
        linkend="postgres-fdw"><filename>postgres_fdw</filename></link>
        to push <command>UPDATE</command>s and <command>DELETE</command>s
        using joins to foreign servers (Etsuro Fujita)
       </para>

       <para>
        Previously, only non-join <command>UPDATE</command>s and
        <command>DELETE</command>s were pushed.
       </para>

      </listitem>

      <listitem>
<!--
2018-01-21 [1cc4f536e] Support huge pages on Windows
-->

       <para>
        Add support for <firstterm>large pages</firstterm> on Windows
        (Takayuki Tsunakawa, Thomas Munro)
       </para>

       <para>
        This is controlled by the <link
        linkend="guc-huge-pages">huge_pages</link> configuration
        parameter.
       </para>
      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title>Monitoring</title>

     <itemizedlist>

      <listitem>
<!--
2017-09-01 [c039ba071] Add memory info to getrusage output
-->

       <para>
        Show memory usage in output from <link
        linkend="runtime-config-statistics-monitor"><varname>log_statement_stats</varname></link>,
        <varname>log_parser_stats</varname>,
        <varname>log_planner_stats</varname>, and
        <varname>log_executor_stats</varname> (Justin Pryzby, Peter
        Eisentraut)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-29 [5373bc2a0] Add background worker type
-->

       <para>
        Add column <link
        linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname>.<structfield>backend_type</structfield></link>
        to show the type of a background worker (Peter Eisentraut)
       </para>

       <para>
        The type is also visible in <application>ps</application> output.
       </para>
      </listitem>

      <listitem>
<!--
2017-12-04 [ab6eaee88] When VACUUM or ANALYZE skips a concurrently dropped tabl
-->

       <para>
        Make <link
        linkend="guc-log-autovacuum-min-duration"><varname>log_autovacuum_min_duration</varname></link>
        log skipped tables that are concurrently being dropped (Nathan
        Bossart)
       </para>

      </listitem>

     </itemizedlist>

     <sect5>
      <title><link linkend="infoschema-tables">Information Schema</link></title>

      <itemizedlist>

      <listitem>
<!--
2018-02-07 [32ff26911] Add more information_schema columns
-->

       <para>
        Add <literal>information_schema</literal> columns related to table
        constraints and triggers (Peter Eisentraut)
       </para>

       <para>
        Specifically,
        <structname>triggers</structname>.<structfield>action_order</structfield>,
        <structname>triggers</structname>.<structfield>action_reference_old_table</structfield>,
        and
        <structname>triggers</structname>.<structfield>action_reference_new_table</structfield>
        are now populated, where before they were always null.  Also,
        <structname>table_constraints</structname>.<structfield>enforced</structfield>
        now exists but is not yet usefully populated.
       </para>

      </listitem>

      </itemizedlist>

     </sect5>
    </sect4>

    <sect4>
     <title><acronym>Authentication</acronym></title>

     <itemizedlist>

      <listitem>
<!--
2017-09-12 [83aaac41c] Allow custom search filters to be configured for LDAP au
-->

       <para>
        Allow the server to specify more complex <link
        linkend="auth-ldap"><acronym>LDAP</acronym></link> specifications
        in search+bind mode (Thomas Munro)
       </para>

       <para>
        Specifically, <literal>ldapsearchfilter</literal> allows pattern matching using
        combinations of <acronym>LDAP</acronym> attributes.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-03 [35c0754fa] Allow ldaps when using ldap authentication
2018-01-04 [3ad2afc2e] Define LDAPS_PORT if it's missing and disable implicit L
-->

       <para>
        Allow <acronym>LDAP</acronym> authentication to use
        encrypted <acronym>LDAP</acronym> (Thomas Munro)
       </para>

       <para>
        We already supported <acronym>LDAP</acronym> over
        <acronym>TLS</acronym> by using <literal>ldaptls=1</literal>.
        This new <acronym>TLS</acronym> <acronym>LDAP</acronym> method for
        encrypted <acronym>LDAP</acronym> is enabled
        with <literal>ldapscheme=ldaps</literal>
        or <literal>ldapurl=ldaps://</literal>.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-12 [cf1238cd9] Log diagnostic messages if errors occur during LDAP auth
-->

       <para>
        Improve logging of <acronym>LDAP</acronym> errors (Thomas Munro)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title>Permissions</title>

     <itemizedlist>

      <listitem>
<!--
2018-04-06 [0fdc8495b] Add default roles for file/program access
2018-04-07 [da9b580d8] Refactor dir/file permissions
-->

       <para>
        Add <link linkend="default-roles-table">default roles</link> that
        enable file system access (Stephen Frost)
       </para>

       <para>
        Specifically, the new roles are:
        <literal>pg_read_server_files</literal>,
        <literal>pg_write_server_files</literal>, and
        <literal>pg_execute_server_program</literal>.  These roles now also
        control who can use server-side <command>COPY</command> and the <link
        linkend="file-fdw"><filename>file_fdw</filename></link> extension.
        Previously, only superusers could use these functions, and that
        is still the default behavior.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-06 [e79350fef] Remove explicit superuser checks in favor of ACLs
-->

       <para>
        Allow access to file system functions to be controlled by
        <command>GRANT</command>/<command>REVOKE</command> permissions,
        rather than superuser checks (Stephen Frost)
       </para>

       <para>
        Specifically, these functions were modified: <link
        linkend="functions-admin-genfile-table"><function>pg_ls_dir()</function></link>,
        <function>pg_read_file()</function>,
        <function>pg_read_binary_file()</function>,
        <function>pg_stat_file()</function>.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-09 [5ecc0d738] Restrict lo_import()/lo_export() via SQL permissions not
2017-11-14 [6d776522d] Document changes in large-object privilege checking.
-->

       <para>
        Use <command>GRANT</command>/<command>REVOKE</command>
        to control access to <link
        linkend="lo-import"><function>lo_import()</function></link>
        and <function>lo_export()</function> (Michael Paquier, Tom Lane)
       </para>

       <para>
        Previously, only superusers were granted access to these functions.
       </para>

       <para>
        The compile-time option <literal>ALLOW_DANGEROUS_LO_FUNCTIONS</literal>
        has been removed.
       </para>
      </listitem>

      <listitem>
<!--
2017-12-05 [ab3f008a2] postgres_fdw: Judge password use by run-as user, not ses
-->

       <para>
        Use view owner not session owner when
        preventing non-password access to <link
        linkend="postgres-fdw"><filename>postgres_fdw</filename></link>
        tables (Robert Haas)
       </para>

       <para>
        <productname>PostgreSQL</productname> only allows superusers to
        access <filename>postgres_fdw</filename> tables without
        passwords, e.g. via <literal>peer</literal>.  Previously, the
        session owner had to be a superuser to allow such access; now
        the view owner is checked instead.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-14 [50c6bb022] Fix enforcement of SELECT FOR UPDATE permissions with ne
-->

       <para>
        Fix invalid locking permission check in <command>SELECT FOR
        UPDATE</command> on views (Tom Lane)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title>Server Configuration</title>

     <itemizedlist>

      <listitem>
<!--
2018-03-17 [8a3d94252] Add ssl_passphrase_command setting
-->

       <para>
        Add server setting <link
        linkend="guc-ssl-passphrase-command"><varname>ssl_passphrase_command</varname></link>
        to allow supplying of the passphrase for <acronym>SSL</acronym>
        key files (Peter Eisentraut)
       </para>

       <para>
        Also add <link
        linkend="guc-ssl-passphrase-command-supports-reload"><varname>ssl_passphrase_command_supports_reload</varname></link>
        to specify whether the <acronym>SSL</acronym> configuration
        should be reloaded and <varname>ssl_passphrase_command</varname>
        called during a server configuration reload.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-20 [c2513365a] Parameter toast_tuple_target controls TOAST for new rows
-->

       <para>
        Add storage parameter <link
        linkend="sql-createtable-storage-parameters"><varname>toast_tuple_target</varname></link>
        to control the minimum tuple length before <acronym>TOAST</acronym>
        storage will be considered (Simon Riggs)
       </para>

       <para>
        The default <acronym>TOAST</acronym> threshold has not been
        changed.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-12 [6e7baa322] Introduce BYTES unit for GUCs.
2018-05-23 [b06d8e58b] Accept "B" in all memory-unit GUCs, and improve error me
-->

       <para>
        Allow server options related to memory and file sizes to be
        specified in units of bytes (Beena Emerson)
       </para>

       <para>
        The new unit suffix is <quote>B</quote>.  This is in addition to the
        existing units <quote>kB</quote>, <quote>MB</quote>, <quote>GB</quote>
        and <quote>TB</quote>.
       </para>

      </listitem>

    </itemizedlist>

    </sect4>

    <sect4>
     <title><link linkend="wal">Write-Ahead Log</link> (<acronym>WAL</acronym>)</title>

     <itemizedlist>

      <listitem>
<!--
2017-09-19 [fc49e24fa] Make WAL segment size configurable at initdb time.
-->

       <para>
        Allow the <acronym>WAL</acronym> file size to be set
        during <application>initdb</application> (Beena Emerson)
       </para>

       <para>
        Previously, the 16MB default could only be changed at compile time.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-07 [4b0d28de0] Remove secondary checkpoint
-->

       <para>
        Retain <acronym>WAL</acronym> data for only a single checkpoint
        (Simon Riggs)
       </para>

       <para>
        Previously, <acronym>WAL</acronym> was retained for two checkpoints.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-30 [4a33bb59d] Ensure that WAL pages skipped by a forced WAL switch are
-->

       <para>
        Fill the unused portion of force-switched <acronym>WAL</acronym>
        segment files with zeros for improved compressibility (Chapman
        Flack)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

   </sect3>

   <sect3>
    <title>Base Backup and Streaming Replication</title>

    <itemizedlist>

      <listitem>
<!--
2018-04-07 [5dfd1e5a6] Logical decoding of TRUNCATE
2018-04-07 [039eb6e92] Logical replication support for TRUNCATE
-->

       <para>
        Replicate <command>TRUNCATE</command> activity when using logical
        replication (Simon Riggs, Marco Nenciarini, Peter Eisentraut)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-28 [1eb6d6527] Store 2PC GID in commit/abort WAL recs for logical decod
-->

       <para>
        Pass prepared transaction information to logical replication
        subscribers (Nikhil Sontakke, Stas Kelvich)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-23 [8694cc96b] Exclude unlogged tables from base backups
2018-03-27 [920a5e500] Skip temp tables from basebackup.
2017-11-07 [98267ee83] Exclude pg_internal.init from BASE_BACKUP
-->

       <para>
        Exclude unlogged tables, temporary tables, and
        <filename>pg_internal.init</filename> files from streaming base
        backups (David Steele)
       </para>

       <para>
        There is no need to copy such files.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-03 [4eb77d50c] Validate page level checksums in base backups
-->

       <para>
        Allow checksums of heap pages to be verified during streaming base
        backup (Michael Banck)
       </para>
      </listitem>

      <listitem>
<!--
2018-01-17 [9c7d06d60] Ability to advance replication slots
-->

       <para>
        Allow replication slots to be advanced programmatically, rather
        than be consumed by subscribers (Petr Jelinek)
       </para>

       <para>
        This allows efficient advancement of replication slots when the
        contents do not need to be consumed.  This is performed by
        <function>pg_replication_slot_advance()</function>.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-06 [6271fceb8] Add TIMELINE to backup_label file
-->

       <para>
        Add timeline information to the <link
        linkend="backup-lowlevel-base-backup"><filename>backup_label</filename></link>
        file (Michael Paquier)
       </para>

       <para>
        Also add a check that the <acronym>WAL</acronym> timeline matches
        the <filename>backup_label</filename> file's timeline.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-31 [9a895462d] Enhance pg_stat_wal_receiver view to display host and po
-->

       <para>
        Add host and port connection information to the
        <structname>pg_stat_wal_receiver</structname> system view
        (Haribabu Kommi)
       </para>
      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Utility Commands</title>

    <itemizedlist>

      <listitem>
<!--
2018-03-28 [16828d5c0] Fast ALTER TABLE ADD COLUMN with a non-NULL default
-->

       <para>
        Allow <command>ALTER TABLE</command> to add a column with
        a non-null default without doing a table rewrite (Andrew Dunstan,
        Serge Rielau)
       </para>

       <para>
        This is enabled when the default value is a constant.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-30 [34c20de4d] Allow to lock views.
2018-03-31 [1b26bd408] Fix bug with view locking code.
-->

       <para>
        Allow views to be locked by locking the underlying tables
        (Yugo Nagata)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-06 [5b6d13eec] Allow SET STATISTICS on expression indexes
-->

       <para>
        Allow <command>ALTER INDEX</command> to set statistics-gathering
        targets for expression indexes (Alexander Korotkov, Adrien Nayrat)
       </para>

       <para>
        In <application>psql</application>, <literal>\d+</literal> now shows
        the statistics target for indexes.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-03 [11d8d72c2] Allow multiple tables to be specified in one VACUUM or A
-->

       <para>
        Allow multiple tables to be specified in one
        <command>VACUUM</command> or <command>ANALYZE</command> command
        (Nathan Bossart)
       </para>

       <para>
        Also, if any table mentioned in <command>VACUUM</command> uses
        a column list, then the <command>ANALYZE</command> keyword must be
        supplied; previously, <command>ANALYZE</command> was implied in
        such cases.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-05 [854dd8cff] Add parenthesized options syntax for ANALYZE.
-->

       <para>
        Add parenthesized options syntax to <command>ANALYZE</command>
        (Nathan Bossart)
       </para>

       <para>
        This is similar to the syntax supported by
        <command>VACUUM</command>.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-14 [4de2d4fba] Explicitly track whether aggregate final functions modif
2017-10-16 [be0ebb65f] Allow the built-in ordered-set aggregates to share trans
-->

       <para>
        Add <command>CREATE AGGREGATE</command> option to specify the
        behavior of the aggregate's finalization function (Tom Lane)
       </para>

       <para>
        This is helpful for allowing user-defined aggregate functions to be
        optimized and to work as window functions.
       </para>

      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Data Types</title>

    <itemizedlist>

      <listitem>
<!--
2017-09-30 [c12d570fa] Support arrays over domains.
-->

       <para>
        Allow the creation of arrays of domains (Tom Lane)
       </para>

       <para>
        This also allows <function>array_agg()</function> to be used
        on domains.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-26 [37a795a60] Support domains over composite types.
2017-10-26 [820c0305f] Support domains over composite types in PL/Tcl.
2017-10-28 [60651e4cd] Support domains over composite types in PL/Perl.
2017-11-16 [687f096ea] Make PL/Python handle domain-type conversions correctly.
-->

       <para>
        Support domains over composite types (Tom Lane)
       </para>

       <para>
        Also allow PL/Perl, PL/Python, and PL/Tcl to handle
        composite-domain function arguments and results.  Also improve
        PL/Python domain handling.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-29 [c0cbe00fe] Add casts from jsonb
-->

       <para>
        Add casts from <type>JSONB</type> scalars to numeric and boolean data
        types (Anastasia Lubennikova)
       </para>

      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Functions</title>

    <itemizedlist>

      <listitem>
<!--
2018-02-07 [0a459cec9] Support all SQL:2011 options for window frame clauses.
2018-02-24 [8b29e88cd] Add window RANGE support for float4, float8, numeric.
-->

       <para>
        Add all <link linkend="sql-window">window function</link> framing
        options specified by SQL:2011 (Oliver Ford, Tom Lane)
       </para>

       <para>
        Specifically, allow <literal>RANGE</literal> mode to use
        <literal>PRECEDING</literal> and <literal>FOLLOWING</literal> to
        select rows having grouping values within plus or minus the
        specified offset.  Add <literal>GROUPS</literal> mode to include plus
        or minus the number of peer groups.  Frame exclusion syntax was also
        added.
       </para>

      </listitem>

      <listitem>
<!--
2018-02-22 [10cfce34c] Add user-callable SHA-2 functions
-->

       <para>
        Add <acronym>SHA-2</acronym> family of hash functions (Peter
        Eisentraut)
       </para>

       <para>
        Specifically, <link
        linkend="functions-binarystring-other"><function>sha224()</function></link>,
        <function>sha256()</function>, <function>sha384()</function>,
        <function>sha512()</function> were added.
       </para>
      </listitem>

      <listitem>
<!--
2017-08-31 [81c5e46c4] Introduce 64-bit hash functions with a 64-bit seed.
-->

       <para>
        Add support for 64-bit non-cryptographic hash functions (Robert
        Haas, Amul Sul)
       </para>
      </listitem>

      <listitem>
<!--
2018-01-09 [11b623dd0] Implement TZH and TZM timestamp format patterns
-->

       <para>
        Allow <function>to_char()</function> and
        <function>to_timestamp()</function> to specify the time zone's
        offset from <acronym>UTC</acronym> in hours and minutes
        (Nikita Glukhov, Andrew Dunstan)
       </para>

       <para>
        This is done with format specifications <link
        linkend="functions-formatting-datetime-table"><literal>TZH</literal></link>
        and <literal>TZM</literal>.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-05 [1664ae197] Add websearch_to_tsquery
-->

       <para>
        Add text search function <link
        linkend="textsearch-functions-table"><function>websearch_to_tsquery()</function></link>
        that supports a query syntax similar to that used by web search
        engines (Victor Drobny, Dmitry Ivanov)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-07 [1c1791e00] Add json(b)_to_tsvector function
-->

       <para>
        Add functions <link
        linkend="textsearch-functions-table"><function>json(b)_to_tsvector()</function></link>
        to create a text search query for matching
        <type>JSON</type>/<type>JSONB</type> values (Dmitry Dolgov)
       </para>

      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Server-Side Languages</title>

    <itemizedlist>

      <listitem>
<!--
2017-11-30 [e4128ee76] SQL procedures
2018-02-22 [76b6aa41f] Support parameters in CALL
2018-03-14 [33803f67f] Support INOUT arguments in procedures
2018-04-14 [a8677e3ff] Support named and default arguments in CALL
2018-08-22 [e0dc839e7] Change PROCEDURE to FUNCTION in CREATE TRIGGER syntax
2018-08-22 [fd4417e8a] Change PROCEDURE to FUNCTION in CREATE OPERATOR syntax
-->

       <para>
        Add SQL-level procedures, which can start and commit their own
        transactions (Peter Eisentraut)
       </para>

       <para>
        They are created with the new <link
        linkend="sql-createprocedure"><command>CREATE
        PROCEDURE</command></link> command and invoked via <link
        linkend="sql-call"><command>CALL</command></link>.
       </para>

       <para>
        The new <command>ALTER</command>/<command>DROP ROUTINE</command>
        commands allow altering/dropping of all routine-like objects,
        including procedures, functions, and aggregates.
       </para>

       <para>
        Also, writing <literal>FUNCTION</literal> is now preferred
        over writing <literal>PROCEDURE</literal> in <command>CREATE
        OPERATOR</command> and <command>CREATE TRIGGER</command>, because the
        referenced object must be a function not a procedure.  However, the
        old syntax is still accepted for compatibility.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-22 [8561e4840] Transaction control in PL procedures
2018-03-28 [d92bc83c4] PL/pgSQL: Nested CALL with transactions
2018-03-28 [056a5a3f6] Allow committing inside cursor loop
2018-04-05 [b981275b6] PL/pgSQL: Add support for SET TRANSACTION
-->

       <para>
        Add transaction control to PL/pgSQL, PL/Perl, PL/Python, PL/Tcl,
        and <acronym>SPI</acronym> server-side languages (Peter Eisentraut)
       </para>

       <para>
        Transaction control is only available within top-transaction-level
        procedures and nested <command>DO</command> and
        <command>CALL</command> blocks that only contain other
        <command>DO</command> and <command>CALL</command> blocks.
       </para>
      </listitem>

      <listitem>
<!--
2018-02-13 [f9263006d] Support CONSTANT/NOT NULL/initial value for plpgsql comp
-->

       <para>
        Add the ability to define PL/pgSQL composite-type variables as not
        null, constant, or with initial values (Tom Lane)
       </para>
      </listitem>

      <listitem>
<!--
2018-02-13 [4b93f5799] Make plpgsql use its DTYPE_REC code paths for composite-
-->

       <para>
        Allow PL/pgSQL to handle changes to composite types (e.g. record,
        row) that happen between the first and later function executions
        in the same session (Tom Lane)
       </para>

       <para>
        Previously, such circumstances generated errors.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-28 [3f44e3db7] Transforms for jsonb to PL/Python
-->

       <para>
        Add extension <filename>jsonb_plpython</filename> to
        transform <type>JSONB</type> to/from PL/Python types (Anthony
        Bykov)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-03 [341e16618] Transforms for jsonb to PL/Perl
-->

       <para>
        Add extension <filename>jsonb_plperl</filename> to transform
        <type>JSONB</type> to/from PL/Perl types (Anthony Bykov)
       </para>

      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Client Interfaces</title>

    <itemizedlist>

      <listitem>
<!--
2018-03-17 [e3bdb2d92] Set libpq sslcompression to off by default
-->

       <para>
        Change libpq to disable compression by default (Peter Eisentraut)
       </para>

       <para>
        Compression is already disabled in modern OpenSSL versions, so that
        the libpq setting had no effect with such libraries.
       </para>
      </listitem>

      <listitem>
<!--
2017-08-25 [d22e9d530] Implement <literal>DO CONTINUE</literal> action for <literal>ECPG WHENEVER</literal> statement
-->

       <para>
        Add <literal>DO CONTINUE</literal> option
        to <application>ecpg</application>'s <literal>WHENEVER</literal>
        statement (Vinayak Pokale)
       </para>

       <para>
        This generates a C <command>continue</command> statement, causing a
        return to the top of the contained loop when the specified condition
        occurs.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-14 [3b7ab4380] Add Oracle like handling of char arrays.
-->

       <para>
        Add an <application>ecpg</application> mode to enable Oracle
        Pro*C-style handling of char arrays.
       </para>

       <para>
        This mode is enabled with <option>-C</option>.
       </para>

      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Client Applications</title>

    <sect4>
     <title><xref linkend="app-psql"/></title>

     <itemizedlist>

      <listitem>
<!--
2017-09-05 [49ca462eb] Add \gdesc psql command.
-->

       <para>
        Add <application>psql</application> command <literal>\gdesc</literal>
        to display the names and types of the columns in a query result
        (Pavel Stehule)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-12 [69835bc89] Add psql variables to track success/failure of SQL queri
-->

       <para>
        Add <application>psql</application> variables to report query
        activity and errors (Fabien Coelho)
       </para>

       <para>
        Specifically, the new variables are <literal>ERROR</literal>,
        <literal>SQLSTATE</literal>, <literal>ROW_COUNT</literal>,
        <literal>LAST_ERROR_MESSAGE</literal>, and
        <literal>LAST_ERROR_SQLSTATE</literal>.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-21 [d57c7a7c5] Provide a test for variable existence in psql
-->

       <para>
        Allow <application>psql</application> to test for the existence
        of a variable (Fabien Coelho)
       </para>

       <para>
        Specifically, the syntax <literal>:{?variable_name}</literal> allows
        a variable's existence to be tested in an <literal>\if</literal>
        statement.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-05 [5e8304fdc] In psql, use PSQL_PAGER in preference to PAGER, if it's
-->

       <para>
        Allow environment variable <envar>PSQL_PAGER</envar> to control
        <application>psql</application>'s pager (Pavel Stehule)
       </para>

       <para>
        This allows <application>psql</application>'s default pager to
        be specified as a separate environment variable from the pager
        for other applications.  <envar>PAGER</envar> is still honored
        if <envar>PSQL_PAGER</envar> is not set.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-23 [05b6ec39d] Show partition info from psql \d+
-->

       <para>
        Make psql's <literal>\d+</literal> command always show the table's
        partitioning information (Amit Langote, Ashutosh Bapat)
       </para>

       <para>
        Previously, partition information would not be displayed for a
        partitioned table if it had no partitions.  Also indicate which
        partitions are themselves partitioned.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-29 [15be27460] Avoid misleading psql password prompt when username is m
-->

       <para>
        Ensure that <application>psql</application> reports the proper user
        name when prompting for a password (Tom Lane)
       </para>

       <para>
        Previously, combinations of <option>-U</option> and a user name
        embedded in a <acronym>URI</acronym> caused incorrect reporting.
        Also suppress the user name before the password prompt when
        <option>--password</option> is specified.
       </para>
      </listitem>

      <listitem>
<!--
2018-02-01 [df9f599bc] psql:  Add quit/help behavior/hint, for other tool porta
-->

       <para>
        Allow <command>quit</command> and <command>exit</command> to
        exit <application>psql</application> when given with no prior input
        (Bruce Momjian)
       </para>

       <para>
        Also print hints about how to exit when <command>quit</command> and
        <command>exit</command> are used alone on a line while the input
        buffer is not empty.  Add a similar hint for <command>help</command>.
       </para>
      </listitem>

      <listitem>
<!--
2018-02-12 [91389228a] psql:  give ^D hint for \q in place where \q is ignored
-->

       <para>
        Make <application>psql</application> hint at using control-D
        when <command>\q</command> is entered alone on a line but ignored
        (Bruce Momjian)
       </para>

       <para>
        For example, <command>\q</command> does not exit when supplied
        in character strings.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-03 [2b8c94e1b] Improve tab-completion for ALTER INDEX RESET/SET.
-->

       <para>
        Improve tab completion for <command>ALTER INDEX
        RESET</command>/<command>SET</command> (Masahiko Sawada)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-05 [722408bcd] Add infrastructure to support server-version-dependent t
-->

       <para>
        Add infrastructure to allow <application>psql</application>
        to adapt its tab completion queries based on the server version
        (Tom Lane)
       </para>

       <para>
        Previously, tab completion queries could fail against older servers.
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

    <sect4>
     <title><link linkend="pgbench"><application>pgbench</application></link></title>

     <itemizedlist>

      <listitem>
<!--
2018-01-09 [bc7fa0c15] Improve scripting language in pgbench
-->

       <para>
        Add <application>pgbench</application> expression support for
        NULLs, booleans, and some functions and operators (Fabien Coelho)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-22 [f67b113ac] Add \if support to pgbench
-->

       <para>
        Add <literal>\if</literal> conditional support to
        <application>pgbench</application> (Fabien Coelho)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-04 [9d36a3866] Adjust pgbench to allow non-ASCII characters in variable
-->

       <para>
        Allow the use of non-<acronym>ASCII</acronym> characters in
        <application>pgbench</application> variable names (Fabien Coelho)
       </para>
      </listitem>

      <listitem>
<!--
2017-11-13 [591c504fa] Allow running just selected steps of pgbench's initializ
-->

       <para>
        Add <application>pgbench</application> option
        <option>--init-steps</option> to control the initialization steps
        performed (Masahiko Sawada)
       </para>
      </listitem>

      <listitem>
<!--
2017-12-14 [1fcd0adeb] Add approximated Zipfian-distributed random generator to
-->

       <para>
        Add an approximately Zipfian-distributed random generator to
        <application>pgbench</application> (Alik Khilazhev)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-26 [64f85894a] Set random seed for pgbench.
-->

       <para>
        Allow the random seed to be set in
        <application>pgbench</application> (Fabien Coelho)
       </para>
      </listitem>

      <listitem>
<!--
2017-12-27 [7a727c180] Add pow(), aka power(), function to pgbench.
-->

       <para>
        Allow <application>pgbench</application> to do exponentiation
        with <function>pow()</function> and <function>power()</function>
        (Ra&uacute;l Mar&iacute;n Rodr&iacute;guez)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-21 [e51a04840] Add general purpose hasing functions to pgbench.
-->

       <para>
        Add hashing functions to <application>pgbench</application>
        (Ildar Musin)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-04 [c23bb6bad] Fix some subtle problems in pgbench transaction stats co
2017-11-21 [16827d442] pgbench: fix stats reporting when some transactions are
-->

       <para>
        Make <application>pgbench</application> statistics more
        accurate when using <option>--latency-limit</option> and
        <option>--rate</option> (Fabien Coelho)
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

   </sect3>

   <sect3>
    <title>Server Applications</title>

    <itemizedlist>

      <listitem>
<!--
2017-09-27 [3709ca1cf] pg_basebackup: Add option to create replication slot
-->

       <para>
        Add an option to <link
        linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
        that creates a named replication slot (Michael Banck)
       </para>

       <para>
        The option <option>--create-slot</option> creates
        the named replication slot (<option>--slot</option>)
        when the <acronym>WAL</acronym> streaming method
        (<option>--wal-method=stream</option>) is used.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-07 [c37b3d08c] Allow group access on PGDATA
-->

       <para>
        Allow <link
        linkend="app-initdb"><application>initdb</application></link>
        to set group read access to the data directory (David Steele)
       </para>

       <para>
        This is accomplished with the new initdb option
        <option>--allow-group-access</option>.  Administrators
        can also set group permissions on the empty data
        directory before running initdb.  Server variable <link
        linkend="guc-data-directory"><varname>data_directory_mode</varname></link>
        allows reading of data directory group permissions.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-05 [1fde38bea] Allow on-line enabling and disabling of data checksums
2018-04-09 [a228cc13a] Revert "Allow on-line enabling and disabling of data che
-->

       <para>
        Add <link
        linkend="pgverifychecksums"><application>pg_verify_checksums</application></link>
        tool to verify database checksums while offline (Magnus Hagander)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-25 [bf4a8676c] pg_resetwal: Allow users to change the WAL segment size
-->

       <para>
        Allow <link
        linkend="app-pgresetwal"><application>pg_resetwal</application></link>
        to change the <acronym>WAL</acronym> segment size via
        <option>--wal-segsize</option> (Nathan Bossart)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-24 [e22b27f0c] Add long options to pg_resetwal and pg_controldata
-->

       <para>
        Add long options to <application>pg_resetwal</application>
        and <application>pg_controldata</application> (Nathan Bossart,
        Peter Eisentraut)
       </para>
      </listitem>

      <listitem>
<!--
2017-10-29 [5f3971291] pg_receivewal: Add - -no-sync option.
-->

       <para>
        Add <link
        linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
        option <option>--no-sync</option> to prevent synchronous
        <acronym>WAL</acronym> writes, for testing (Michael Paquier)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-11 [6d9fa5264] pg_receivewal: Add - -endpos option
-->

       <para>
        Add <application>pg_receivewal</application> option
        <option>--endpos</option> to specify when <acronym>WAL</acronym>
        receiving should stop (Michael Paquier)
       </para>
      </listitem>

      <listitem>
<!--
2017-10-01 [2e83db3ad] Allow pg_ctl kill to send SIGKILL.
-->

       <para>
        Allow <link
        linkend="app-pg-ctl"><application>pg_ctl</application></link>
        to send the <literal>SIGKILL</literal> signal to processes
        (Andres Freund)
       </para>

       <para>
        This was previously unsupported due to concerns over possible misuse.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-29 [266b6acb3] Make pg_rewind skip files and directories that are remov
-->

       <para>
        Reduce the number of files copied by <link
        linkend="app-pgrewind"><application>pg_rewind</application></link>
        (Michael Paquier)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-09 [5d5aeddab] Make sure pg_rewind can't run as root
-->

       <para>
        Prevent <application>pg_rewind</application> from running as
        <literal>root</literal> (Michael Paquier)
       </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>
<!--
2017-09-01 [84be67181] pg_dumpall: Add a -E flag to set the encoding, like pg_d
-->

       <para>
        Add <application>pg_dumpall</application> option
        <option>--encoding</option> to control output encoding
        (Michael Paquier)
       </para>

       <para>
        <application>pg_dump</application> already had this option.
       </para>
      </listitem>

      <listitem>
<!--
2017-08-14 [23d7680d0] pg_dump: Add a - -load-via-partition-root option.
-->

       <para>
        Add <application>pg_dump</application> option
        <option>--load-via-partition-root</option> to force loading of
        data into the partition's root table, rather than the original
        partition (Rushabh Lathia)
       </para>

       <para>
        This is useful if the system to be loaded to has different collation
        definitions or endianness, possibly requiring rows to be stored in
        different partitions than previously.
       </para>
      </listitem>

      <listitem>
<!--
2018-01-25 [1368e92e1] Support - -no-comments in pg_dump, pg_dumpall, pg_restore
-->

       <para>
        Add an option to suppress dumping and restoring database object
        comments (Robins Tharakan)
       </para>

       <para>
        The new <application>pg_dump</application>,
        <application>pg_dumpall</application>, and
        <application>pg_restore</application> option is
        <option>--no-comments</option>.
       </para>

      </listitem>

     </itemizedlist>

    </sect4>

   </sect3>

   <sect3>
    <title>Source Code</title>

    <itemizedlist>

      <listitem>
<!--
2018-07-31 [d06eebce5] Provide for contrib and pgxs modules to install include
2018-09-05 [235526a20] Allow extensions to install built as well as unbuilt hea
2018-09-07 [094ffd684] Refactor installation of extension headers.
2018-09-16 [f1ca5a654] Fix out-of-tree build for transform modules.
-->
       <para>
        Add <application>PGXS</application> support for installing include
        files (Andrew Gierth)
       </para>

       <para>
        This supports creating extension modules that depend on other
        modules.  Formerly there was no easy way for the dependent module to
        find the referenced one's include files.  Several
        existing <filename>contrib</filename> modules that define data types
        have been adjusted to install relevant files.  Also, PL/Perl and
        PL/Python now install their include files, to support creation of
        transform modules for those languages.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-05 [1fd869066] Install errcodes.txt for use by extensions.
-->

       <para>
        Install <filename>errcodes.txt</filename> to allow extensions to access
        the list of error codes known to <productname>PostgreSQL</productname>
        (Thomas Munro)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-06 [1c53f612b] Escape &lt; and &amp; in SGML
2017-10-17 [c29c57890] Don't use SGML empty tags
2017-10-20 [1ff01b390] Convert SGML IDs to lower case
2017-11-23 [3c49c6fac] Convert documentation to DocBook XML
-->

       <para>
        Convert documentation to DocBook <acronym>XML</acronym> (Peter
        Eisentraut, Alexander Lakhin, J&uuml;rgen Purtz)
       </para>

       <para>
        The file names still use an <filename>sgml</filename> extension
        for compatibility with back branches.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-22 [9a95a77d9] Use stdbool.h if suitable
2018-03-23 [7ba7986fb] Fix interaction of Perl and stdbool.h
2018-05-02 [6fe25c135] Change SIZEOF_BOOL to 1 for Windows.
-->

       <para>
        Use <filename>stdbool.h</filename> to define type <type>bool</type>
        on platforms where it's suitable, which is most (Peter Eisentraut)
       </para>

       <para>
        This eliminates a coding hazard for extension modules that need
        to include <filename>stdbool.h</filename>.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-03 [a351679c8] Trivial adjustments in preparation for bootstrap data co
2018-04-08 [372728b0d] Replace our traditional initial-catalog-data format with
2018-04-17 [e90d4ddc6] Simplify genbki.pl's data quoting rules.
2018-04-17 [9ffcccdb9] Rationalize handling of array type names in bootstrap da
2018-04-17 [55d26ff63] Rationalize handling of single and double quotes in boot
2018-04-18 [5372c2c84] Improve error detection/reporting in Catalog.pm and genb
2018-04-26 [a0854f107] Avoid parsing catalog data twice during BKI file constru
2018-05-05 [d160882a1] Fix bootstrap parser so that its keywords are unreserved
-->

       <para>
        Overhaul the way that initial system catalog contents are defined
        (John Naylor)
       </para>

       <para>
        The initial data is now represented in Perl data structures, making
        it much easier to manipulate mechanically.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-21 [846b5a525] Prevent extensions from creating custom GUCs that are GU
-->

       <para>
        Prevent extensions from creating custom server parameters that
        take a quoted list of values (Tom Lane)
       </para>

       <para>
        This cannot be supported at present because knowledge of the
        parameter's property would be required even before the extension is
        loaded.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-18 [9288d62bb] Support channel binding 'tls-unique' in SCRAM
2017-12-19 [4bbf110d2] Add libpq connection parameter "scram_channel_binding"
2018-01-04 [d3fb72ea6] Implement channel binding tls-server-end-point for SCRAM
-->

       <para>
        Add ability to use channel binding when using <link
        linkend="auth-password"><acronym>SCRAM</acronym></link>
        authentication (Michael Paquier)
       </para>

       <para>
        Channel binding is intended to prevent man-in-the-middle attacks, but
        <acronym>SCRAM</acronym> cannot prevent them unless it can be forced
        to be active.  Unfortunately, there is no way to do that in libpq.
        Support for it is expected in future versions of libpq and in
        interfaces not built using libpq, e.g. JDBC.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-05 [eed1ce72e] Allow background workers to bypass datallowconn
-->

       <para>
        Allow background workers to attach to databases that normally
        disallow connections (Magnus Hagander)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-04 [f044d71e3] Use ARMv8 CRC instructions where available.
-->

       <para>
        Add support for hardware <acronym>CRC</acronym> calculations
        on <productname>ARMv8</productname> (Yuqi Gu, Heikki Linnakangas,
        Thomas Munro)
       </para>
      </listitem>

      <listitem>
<!--
2017-10-04 [212e6f34d] Replace binary search in fmgr_isbuiltin with a lookup ar
-->

       <para>
        Speed up lookups of built-in functions by OID (Andres Freund)
       </para>

       <para>
        The previous binary search has been replaced by a lookup array.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-11 [1de09ad8e] Add more efficient functions to pqformat API.
-->

       <para>
        Speed up construction of query results (Andres Freund)
       </para>
      </listitem>

      <listitem>
<!--
2017-10-13 [141fd1b66] Improve sys/catcache performance.
-->

       <para>
        Improve speed of access to system caches (Andres Freund)
       </para>
      </listitem>

      <listitem>
<!--
2017-11-23 [a4ccc1cef] Generational memory allocator
-->

       <para>
        Add a generational memory allocator which is optimized for serial
        allocation/deallocation (Tomas Vondra)
       </para>

       <para>
        This reduces memory usage for logical decoding.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-22 [7c91a0364] Sync up our various ways of estimating pg_class.reltuple
-->

       <para>
        Make the computation of
        <structname>pg_class</structname>.<structfield>reltuples</structfield>
        by <command>VACUUM</command> consistent with its computation
        by <command>ANALYZE</command> (Tomas Vondra)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-25 [46cda5bf7] Change pgindent/README to specify that we use perltidy v
2018-04-27 [a2ada08d4] perltidy: Don't write backup files
-->

       <para>
        Update to use <application>perltidy</application> version
        <literal>20170521</literal> (Tom Lane, Peter Eisentraut)
       </para>
      </listitem>

    </itemizedlist>

   </sect3>

   <sect3>
    <title>Additional Modules</title>

    <itemizedlist>

      <listitem>
<!--
2017-08-21 [79ccd7cbd] pg_prewarm: Add automatic prewarm feature.
-->

       <para>
        Allow extension <link
        linkend="pgprewarm"><filename>pg_prewarm</filename></link>
        to restore the previous shared buffer contents on startup (Mithun
        Cy, Robert Haas)
       </para>

       <para>
        This is accomplished by having <filename>pg_prewarm</filename> store
        the shared buffers' relation and block number data to disk
        occasionally during server operation, and at shutdown.
       </para>
      </listitem>

      <listitem>
<!--
2018-03-21 [be8a7a686] Add strict_word_similarity to pg_trgm module
-->

       <para>
        Add <link linkend="pgtrgm"><filename>pg_trgm</filename></link>
        function <function>strict_word_similarity()</function> to compute
        the similarity of whole words (Alexander Korotkov)
       </para>

       <para>
        The function <function>word_similarity()</function> already
        existed for this purpose, but it was designed to find similar
        parts of words, while <function>strict_word_similarity()</function>
        computes the similarity to whole words.
       </para>
      </listitem>

      <listitem>
<!--
2017-09-19 [f24649976] Add citext_pattern_ops for citext contrib module
-->

       <para>
        Allow creation of indexes that can be used by <literal>LIKE</literal>
        comparisons
        on <link linkend="citext"><filename>citext</filename></link> columns
        (Alexey Chernyshov)
       </para>

       <para>
        To do this, the index must be created using the
        <literal>citext_pattern_ops</literal> operator class.
       </para>
      </listitem>

      <listitem>
<!--
2018-04-05 [f4cd7102b] Add support of bool, bpchar, name and uuid to btree_gin
-->

       <para>
        Allow <link
        linkend="btree-gin"><filename>btree_gin</filename></link>
        to index <type>bool</type>, <type>bpchar</type>, <type>name</type>
        and <type>uuid</type> data types (Matheus Oliveira)
       </para>
      </listitem>

      <listitem>
<!--
2017-11-20 [de1d042f5] Support index-only scans in contrib/cube and contrib/seg
-->

       <para>
        Allow <link linkend="cube"><filename>cube</filename></link>
        and <link linkend="seg"><filename>seg</filename></link>
        extensions to perform index-only scans using GiST indexes
        (Andrey Borodin)
       </para>
      </listitem>

      <listitem>
<!--
2018-01-11 [f50c80dbb] llow negative coordinate for ~&gt; (cube, int) operator
-->

       <para>
        Allow retrieval of negative cube coordinates using
        the <literal>~&gt;</literal> operator (Alexander Korotkov)
       </para>

       <para>
        This is useful for KNN-GiST searches when looking for coordinates in
        descending order.
       </para>
      </listitem>

      <listitem>
<!--
2017-08-16 [ec0a69e49] Extend the default rules file for contrib/unaccent with
-->

       <para>
        Add Vietnamese letter handling to the <link
        linkend="unaccent"><filename>unaccent</filename></link>
        extension (Dang Minh Huong, Michael Paquier)
       </para>
      </listitem>

      <listitem>
<!--
2018-03-31 [7f563c09f] Add amcheck verification of heap relations belonging to
-->

       <para>
        Enhance <link
        linkend="amcheck"><filename>amcheck</filename></link>
        to check that each heap tuple has an index entry (Peter Geoghegan)
       </para>
      </listitem>

      <listitem>
<!--
2018-04-06 [11523e860] Support new default roles with adminpack
-->

       <para>
        Have <link
        linkend="adminpack"><filename>adminpack</filename></link>
        use the new default file system access roles (Stephen Frost)
       </para>

       <para>
        Previously, only superusers could call <filename>adminpack</filename>
        functions; now role permissions are checked.
       </para>
      </listitem>

      <listitem>
<!--
2017-10-11 [cff440d36] pg_stat_statements: Widen query IDs from 32 bits to 64 b
-->

       <para>
        Widen <structname>pg_stat_statement</structname>'s query ID
        to 64 bits (Robert Haas)
       </para>

       <para>
        This greatly reduces the chance of query ID hash collisions.
        The query ID can now potentially display as a negative value.
       </para>
      </listitem>

      <listitem>
<!--
2017-11-17 [527878635] Remove contrib/start-scripts/osx/.
-->

       <para>
        Remove the <filename>contrib/start-scripts/osx</filename> scripts
        since they are no longer recommended
        (use <filename>contrib/start-scripts/macos</filename> instead)
        (Tom Lane)
       </para>
      </listitem>

      <listitem>
<!--
2017-09-22 [5d3cad564] Remove contrib/chkpass
-->

       <para>
        Remove the <filename>chkpass</filename> extension (Peter Eisentraut)
       </para>

       <para>
        This extension is no longer considered to be a usable security tool
        or example of how to write an extension.
       </para>

      </listitem>

    </itemizedlist>

   </sect3>

  </sect2>

  <sect2 id="release-11-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>Abhijit Menon-Sen</member>
    <member>Adam Bielanski</member>
    <member>Adam Brightwell</member>
    <member>Adam Brusselback</member>
    <member>Aditya Toshniwal</member>
    <member>Adrián Escoms</member>
    <member>Adrien Nayrat</member>
    <member>Akos Vandra</member>
    <member>Aleksander Alekseev</member>
    <member>Aleksandr Parfenov</member>
    <member>Alexander Korotkov</member>
    <member>Alexander Kukushkin</member>
    <member>Alexander Kuzmenkov</member>
    <member>Alexander Lakhin</member>
    <member>Alexandre Garcia</member>
    <member>Alexey Bashtanov</member>
    <member>Alexey Chernyshov</member>
    <member>Alexey Kryuchkov</member>
    <member>Alik Khilazhev</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 Seltenreich</member>
    <member>André Hänsel</member>
    <member>Andrei Gorita</member>
    <member>Andres Freund</member>
    <member>Andrew Dunstan</member>
    <member>Andrew Fletcher</member>
    <member>Andrew Gierth</member>
    <member>Andrew Grossman</member>
    <member>Andrew Krasichkov</member>
    <member>Andrey Borodin</member>
    <member>Andrey Lizenko</member>
    <member>Andy Abelisto</member>
    <member>Anthony Bykov</member>
    <member>Antoine Scemama</member>
    <member>Anton Dignös</member>
    <member>Antonin Houska</member>
    <member>Arseniy Sharoglazov</member>
    <member>Arseny Sher</member>
    <member>Arthur Zakirov</member>
    <member>Ashutosh Bapat</member>
    <member>Ashutosh Sharma</member>
    <member>Ashwin Agrawal</member>
    <member>Asim Praveen</member>
    <member>Atsushi Torikoshi</member>
    <member>Badrul Chowdhury</member>
    <member>Balazs Szilfai</member>
    <member>Basil Bourque</member>
    <member>Beena Emerson</member>
    <member>Ben Chobot</member>
    <member>Benjamin Coutu</member>
    <member>Bernd Helmle</member>
    <member>Blaz Merela</member>
    <member>Brad DeJong</member>
    <member>Brent Dearth</member>
    <member>Brian Cloutier</member>
    <member>Bruce Momjian</member>
    <member>Catalin Iacob</member>
    <member>Chad Trabant</member>
    <member>Chapman Flack</member>
    <member>Christian Duta</member>
    <member>Christian Ullrich</member>
    <member>Christoph Berg</member>
    <member>Christoph Dreis</member>
    <member>Christophe Courtois</member>
    <member>Christopher Jones</member>
    <member>Claudio Freire</member>
    <member>Clayton Salem</member>
    <member>Craig Ringer</member>
    <member>Dagfinn Ilmari Mannsåker</member>
    <member>Dan Vianello</member>
    <member>Dan Watson</member>
    <member>Dang Minh Huong</member>
    <member>Daniel Gustafsson</member>
    <member>Daniel Vérité</member>
    <member>Daniel Westermann</member>
    <member>Daniel Wood</member>
    <member>Darafei Praliaskouski</member>
    <member>Dave Cramer</member>
    <member>Dave Page</member>
    <member>David Binderman</member>
    <member>David Carlier</member>
    <member>David Fetter</member>
    <member>David G. Johnston</member>
    <member>David Gould</member>
    <member>David Hinkle</member>
    <member>David Pereiro Lagares</member>
    <member>David Rader</member>
    <member>David Rowley</member>
    <member>David Steele</member>
    <member>Davy Machado</member>
    <member>Dean Rasheed</member>
    <member>Dian Fay</member>
    <member>Dilip Kumar</member>
    <member>Dmitriy Sarafannikov</member>
    <member>Dmitry Dolgov</member>
    <member>Dmitry Ivanov</member>
    <member>Dmitry Shalashov</member>
    <member>Don Seiler</member>
    <member>Doug Doole</member>
    <member>Doug Rady</member>
    <member>Edmund Horner</member>
    <member>Eiji Seki</member>
    <member>Elvis Pranskevichus</member>
    <member>Emre Hasegeli</member>
    <member>Erik Rijkers</member>
    <member>Erwin Brandstetter</member>
    <member>Etsuro Fujita</member>
    <member>Euler Taveira</member>
    <member>Everaldo Canuto</member>
    <member>Fabien Coelho</member>
    <member>Fabrízio de Royes Mello</member>
    <member>Feike Steenbergen</member>
    <member>Frits Jalvingh</member>
    <member>Fujii Masao</member>
    <member>Gao Zengqi</member>
    <member>Gianni Ciolli</member>
    <member>Greg Stark</member>
    <member>Gunnlaugur Thor Briem</member>
    <member>Guo Xiang Tan</member>
    <member>Hadi Moshayedi</member>
    <member>Hailong Li</member>
    <member>Haribabu Kommi</member>
    <member>Heath Lord</member>
    <member>Heikki Linnakangas</member>
    <member>Hugo Mercier</member>
    <member>Igor Korot</member>
    <member>Igor Neyman</member>
    <member>Ildar Musin</member>
    <member>Ildus Kurbangaliev</member>
    <member>Ioseph Kim</member>
    <member>Jacob Champion</member>
    <member>Jaime Casanova</member>
    <member>Jakob Egger</member>
    <member>Jean-Pierre Pelletier</member>
    <member>Jeevan Chalke</member>
    <member>Jeevan Ladhe</member>
    <member>Jeff Davis</member>
    <member>Jeff Janes</member>
    <member>Jeremy Evans</member>
    <member>Jeremy Finzel</member>
    <member>Jeremy Schneider</member>
    <member>Jesper Pedersen</member>
    <member>Jim Nasby</member>
    <member>Jimmy Yih</member>
    <member>Jing Wang</member>
    <member>Jobin Augustine</member>
    <member>Joe Conway</member>
    <member>John Gorman</member>
    <member>John Naylor</member>
    <member>Jon Nelson</member>
    <member>Jon Wolski</member>
    <member>Jonathan Allen</member>
    <member>Jonathan S. Katz</member>
    <member>Julien Rouhaud</member>
    <member>Jürgen Purtz</member>
    <member>Justin Pryzby</member>
    <member>KaiGai Kohei</member>
    <member>Kaiting Chen</member>
    <member>Karl Lehenbauer</member>
    <member>Keith Fiske</member>
    <member>Kevin Bloch</member>
    <member>Kha Nguyen</member>
    <member>Kim Rose Carlsen</member>
    <member>Konstantin Knizhnik</member>
    <member>Kuntal Ghosh</member>
    <member>Kyle Samson</member>
    <member>Kyotaro Horiguchi</member>
    <member>Lætitia Avrot</member>
    <member>Lars Kanis</member>
    <member>Laurenz Albe</member>
    <member>Leonardo Cecchi</member>
    <member>Liudmila Mantrova</member>
    <member>Lixian Zou</member>
    <member>Lloyd Albin</member>
    <member>Luca Ferrari</member>
    <member>Lucas Fairchild</member>
    <member>Lukas Eder</member>
    <member>Lukas Fittl</member>
    <member>Magnus Hagander</member>
    <member>Mai Peng</member>
    <member>Maksim Milyutin</member>
    <member>Maksym Boguk</member>
    <member>Mansur Galiev</member>
    <member>Marc Dilger</member>
    <member>Marco Nenciarini</member>
    <member>Marina Polyakova</member>
    <member>Mario de Frutos Dieguez</member>
    <member>Mark Cave-Ayland</member>
    <member>Mark Dilger</member>
    <member>Mark Wood</member>
    <member>Marko Tiikkaja</member>
    <member>Markus Winand</member>
    <member>Martín Marqués</member>
    <member>Masahiko Sawada</member>
    <member>Matheus Oliveira</member>
    <member>Matthew Stickney</member>
    <member>Metin Doslu</member>
    <member>Michael Banck</member>
    <member>Michael Meskes</member>
    <member>Michael Paquier</member>
    <member>Michail Nikolaev</member>
    <member>Mike Blackwell</member>
    <member>Minh-Quan Tran</member>
    <member>Mithun Cy</member>
    <member>Morgan Owens</member>
    <member>Nathan Bossart</member>
    <member>Nathan Wagner</member>
    <member>Neil Conway</member>
    <member>Nick Barnes</member>
    <member>Nicolas Thauvin</member>
    <member>Nikhil Sontakke</member>
    <member>Nikita Glukhov</member>
    <member>Nikolay Shaplov</member>
    <member>Noah Misch</member>
    <member>Noriyoshi Shinoda</member>
    <member>Oleg Bartunov</member>
    <member>Oleg Samoilov</member>
    <member>Oliver Ford</member>
    <member>Pan Bian</member>
    <member>Pascal Legrand</member>
    <member>Patrick Hemmer</member>
    <member>Patrick Krecker</member>
    <member>Paul Bonaud</member>
    <member>Paul Guo</member>
    <member>Paul Ramsey</member>
    <member>Pavan Deolasee</member>
    <member>Pavan Maddamsetti</member>
    <member>Pavel Golub</member>
    <member>Pavel Stehule</member>
    <member>Peter Eisentraut</member>
    <member>Peter Geoghegan</member>
    <member>Petr Jelínek</member>
    <member>Petru-Florin Mihancea</member>
    <member>Phil Florent</member>
    <member>Philippe Beaudoin</member>
    <member>Pierre Ducroquet</member>
    <member>Piotr Stefaniak</member>
    <member>Prabhat Sahu</member>
    <member>Pu Qun</member>
    <member>QL Zhuo</member>
    <member>Rafia Sabih</member>
    <member>Rahila Syed</member>
    <member>Rainer Orth</member>
    <member>Rajkumar Raghuwanshi</member>
    <member>Raúl Marín Rodríguez</member>
    <member>Regina Obe</member>
    <member>Richard Yen</member>
    <member>Robert Haas</member>
    <member>Robins Tharakan</member>
    <member>Rod Taylor</member>
    <member>Rushabh Lathia</member>
    <member>Ryan Murphy</member>
    <member>Sahap Asci</member>
    <member>Samuel Horwitz</member>
    <member>Scott Ure</member>
    <member>Sean Johnston</member>
    <member>Shao Bret</member>
    <member>Shay Rojansky</member>
    <member>Shubham Barai</member>
    <member>Simon Riggs</member>
    <member>Simone Gotti</member>
    <member>Sivasubramanian Ramasubramanian</member>
    <member>Stas Kelvich</member>
    <member>Stefan Kaltenbrunner</member>
    <member>Stephen Froehlich</member>
    <member>Stephen Frost</member>
    <member>Steve Singer</member>
    <member>Steven Winfield</member>
    <member>Sven Kunze</member>
    <member>Taiki Kondo</member>
    <member>Takayuki Tsunakawa</member>
    <member>Takeshi Ideriha</member>
    <member>Tatsuo Ishii</member>
    <member>Tatsuro Yamada</member>
    <member>Teodor Sigaev</member>
    <member>Thom Brown</member>
    <member>Thomas Kellerer</member>
    <member>Thomas Munro</member>
    <member>Thomas Reiss</member>
    <member>Tobias Bussmann</member>
    <member>Todd A. Cook</member>
    <member>Tom Kazimiers</member>
    <member>Tom Lane</member>
    <member>Tomas Vondra</member>
    <member>Tomonari Katsumata</member>
    <member>Torsten Grust</member>
    <member>Tushar Ahuja</member>
    <member>Vaishnavi Prabakaran</member>
    <member>Vasundhar Boddapati</member>
    <member>Victor Drobny</member>
    <member>Victor Wagner</member>
    <member>Victor Yegorov</member>
    <member>Vik Fearing</member>
    <member>Vinayak Pokale</member>
    <member>Vincent Lachenal</member>
    <member>Vitaliy Garnashevich</member>
    <member>Vitaly Burovoy</member>
    <member>Vladimir Baranoff</member>
    <member>Xin Zhang</member>
    <member>Yi Wen Wong</member>
    <member>Yorick Peterse</member>
    <member>Yugo Nagata</member>
    <member>Yuqi Gu</member>
    <member>Yura Sokolov</member>
    <member>Yves Goergen</member>
    <member>Zhou Digoal</member>
   </simplelist>
  </sect2>

 </sect1>
