<!ENTITY release SYSTEM "release.sgml">
<!ENTITY release-12 SYSTEM "release-12.sgml">
-<!ENTITY release-11 SYSTEM "release-11.sgml">
-<!ENTITY release-10 SYSTEM "release-10.sgml">
-<!ENTITY release-9.6 SYSTEM "release-9.6.sgml">
-<!ENTITY release-9.5 SYSTEM "release-9.5.sgml">
-<!ENTITY release-9.4 SYSTEM "release-9.4.sgml">
-<!ENTITY release-9.3 SYSTEM "release-9.3.sgml">
-<!ENTITY release-9.2 SYSTEM "release-9.2.sgml">
-<!ENTITY release-9.1 SYSTEM "release-9.1.sgml">
-<!ENTITY release-9.0 SYSTEM "release-9.0.sgml">
-<!ENTITY release-8.4 SYSTEM "release-8.4.sgml">
-<!ENTITY release-8.3 SYSTEM "release-8.3.sgml">
-<!ENTITY release-8.2 SYSTEM "release-8.2.sgml">
-<!ENTITY release-8.1 SYSTEM "release-8.1.sgml">
-<!ENTITY release-8.0 SYSTEM "release-8.0.sgml">
-<!ENTITY release-7.4 SYSTEM "release-7.4.sgml">
-<!ENTITY release-old SYSTEM "release-old.sgml">
<!ENTITY limits SYSTEM "limits.sgml">
<!ENTITY acronyms SYSTEM "acronyms.sgml">
+++ /dev/null
-<!-- doc/src/sgml/release-10.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-10-6">
- <title>Release 10.6</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-11-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.5.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.6</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you use the <filename>pg_stat_statements</filename> extension,
- see the changelog entry below about that.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.4,
- see <xref linkend="release-10-4"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Ensure proper quoting of transition table names
- when <application>pg_dump</application> emits <command>CREATE TRIGGER
- ... REFERENCING</command> commands (Tom Lane)
- </para>
-
- <para>
- This oversight could be exploited by an unprivileged user to gain
- superuser privileges during the next dump/reload
- or <application>pg_upgrade</application> run. (CVE-2018-16850)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3d0f68dd3] 2018-10-02 11:54:12 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [419cc8add] 2018-10-02 11:54:12 -0400
-Branch: REL_10_STABLE [7eed72333] 2018-10-02 11:54:12 -0400
-Branch: REL9_6_STABLE [6d73983be] 2018-10-02 11:54:12 -0400
-Branch: REL9_5_STABLE [dad4df0fc] 2018-10-02 11:54:13 -0400
-Branch: REL9_4_STABLE [fd81fae67] 2018-10-02 11:54:13 -0400
-Branch: REL9_3_STABLE [01c7a87df] 2018-10-02 11:54:13 -0400
--->
- <para>
- Fix corner-case failures
- in <function>has_<replaceable>foo</replaceable>_privilege()</function>
- family of functions (Tom Lane)
- </para>
-
- <para>
- Return NULL rather than throwing an error when an invalid object OID
- is provided. Some of these functions got that right already, but not
- all. <function>has_column_privilege()</function> was additionally
- capable of crashing on some platforms.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [aaf10f32a] 2018-09-27 18:15:17 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [49507dec4] 2018-09-27 18:15:06 -0400
-Branch: REL_10_STABLE [dff3f06dc] 2018-09-27 18:15:06 -0400
--->
- <para>
- Fix <function>pg_get_partition_constraintdef()</function> to return
- NULL rather than fail when passed an invalid relation OID (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [c8ea87e4b] 2018-08-28 12:17:33 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [bc552b322] 2018-08-28 12:17:37 +0100
-Branch: REL_10_STABLE [f6f61d937] 2018-08-28 11:55:18 +0100
-Branch: REL9_6_STABLE [450b24741] 2018-08-28 11:51:57 +0100
-Branch: REL9_5_STABLE [41cfae1f3] 2018-08-28 11:51:06 +0100
-Branch: REL9_4_STABLE [2ba7c4e6c] 2018-08-28 11:50:20 +0100
-Branch: REL9_3_STABLE [861670369] 2018-08-28 11:48:43 +0100
-Branch: master [b7f6bcbff] 2018-09-12 19:31:06 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [f7d0343ea] 2018-09-12 19:43:44 +0100
-Branch: REL_10_STABLE [ab78c6e36] 2018-09-12 19:44:28 +0100
-Branch: REL9_6_STABLE [03e0bc117] 2018-09-12 19:45:13 +0100
-Branch: REL9_5_STABLE [77c2663de] 2018-09-12 19:52:10 +0100
-Branch: REL9_4_STABLE [a389ddc75] 2018-09-12 19:47:50 +0100
-Branch: REL9_3_STABLE [dea7fc60a] 2018-09-12 19:49:59 +0100
--->
- <para>
- Avoid O(N^2) slowdown in regular expression match/split functions on
- long strings (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [a40631a92] 2018-08-23 21:42:40 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [5b4555f90] 2018-08-23 21:43:51 +0100
-Branch: REL_10_STABLE [d64fad666] 2018-08-23 21:43:55 +0100
-Branch: REL9_6_STABLE [5ec70a928] 2018-08-23 21:35:49 +0100
-Branch: REL9_5_STABLE [af988d130] 2018-08-23 21:35:53 +0100
--->
- <para>
- Fix parsing of standard multi-character operators that are immediately
- followed by a comment or <literal>+</literal> or <literal>-</literal>
- (Andrew Gierth)
- </para>
-
- <para>
- This oversight could lead to parse errors, or to incorrect assignment
- of precedence.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [d4a63f829] 2018-08-23 21:42:40 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [0b42bd459] 2018-08-23 21:43:51 +0100
-Branch: REL_10_STABLE [2dbfbd630] 2018-08-23 21:43:55 +0100
-Branch: REL9_6_STABLE [4854ead60] 2018-08-23 21:34:42 +0100
-Branch: REL9_5_STABLE [ad871a9d7] 2018-08-23 21:33:55 +0100
-Branch: REL9_4_STABLE [6c5ed6836] 2018-08-23 21:33:38 +0100
-Branch: REL9_3_STABLE [9923c934d] 2018-08-23 21:29:15 +0100
--->
- <para>
- Avoid O(N^3) slowdown in lexer for long strings
- of <literal>+</literal> or <literal>-</literal> characters
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [520acab17] 2018-08-17 15:44:13 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [67b161eae] 2018-08-17 15:47:49 +0100
-Branch: REL_10_STABLE [d31ebbff5] 2018-08-17 16:06:35 +0100
-Branch: REL9_6_STABLE [6302fe6b2] 2018-08-17 16:19:10 +0100
-Branch: REL9_5_STABLE [d2ecc27c3] 2018-08-17 16:20:04 +0100
-Branch: REL9_4_STABLE [3cf3a65cb] 2018-08-17 16:23:56 +0100
-Branch: REL9_3_STABLE [807c1c555] 2018-08-17 16:25:52 +0100
--->
- <para>
- Fix mis-execution of SubPlans when the outer query is being scanned
- backwards (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [89b280e13] 2018-09-23 16:05:45 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [fe30cd25e] 2018-09-23 16:05:45 -0400
-Branch: REL_10_STABLE [5ed281e21] 2018-09-23 16:05:45 -0400
-Branch: REL9_6_STABLE [77d2a4866] 2018-09-23 16:05:45 -0400
-Branch: REL9_5_STABLE [c8a978bf4] 2018-09-23 16:05:45 -0400
-Branch: REL9_4_STABLE [38cb01084] 2018-09-23 16:05:45 -0400
-Branch: REL9_3_STABLE [00011a6ae] 2018-09-23 16:05:46 -0400
--->
- <para>
- Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command>
- after rewinding the referenced cursor (Tom Lane)
- </para>
-
- <para>
- A cursor that scans multiple relations (particularly an inheritance
- tree) could produce wrong behavior if rewound to an earlier relation.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1f4a920b7] 2018-09-15 13:42:33 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f13e2d1ce] 2018-09-15 13:42:34 -0400
-Branch: REL_10_STABLE [99cbbbbd1] 2018-09-15 13:42:34 -0400
-Branch: REL9_6_STABLE [2a97a0ad3] 2018-09-15 13:42:34 -0400
-Branch: REL9_5_STABLE [9b14bbd52] 2018-09-15 13:42:34 -0400
-Branch: REL9_4_STABLE [849475510] 2018-09-15 13:42:34 -0400
-Branch: REL9_3_STABLE [591d0ac88] 2018-09-15 13:42:34 -0400
--->
- <para>
- Fix <function>EvalPlanQual</function> to handle conditionally-executed
- InitPlans properly (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This resulted in hard-to-reproduce crashes or wrong answers in
- concurrent updates, if they contained code such as an uncorrelated
- sub-<literal>SELECT</literal> inside a <literal>CASE</literal>
- construct.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent creation of a partition in a trigger attached to its parent
- table (Amit Langote)
- </para>
-
- <para>
- Ideally we'd allow that, but for the moment it has to be blocked to
- avoid crashes.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix problems with applying <literal>ON COMMIT DELETE ROWS</literal> to
- a partitioned temporary table (Amit Langote)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix character-class checks to not fail on Windows for Unicode
- characters above U+FFFF (Tom Lane, Kenji Uno)
- </para>
-
- <para>
- This bug affected full-text-search operations, as well
- as <filename>contrib/ltree</filename>
- and <filename>contrib/pg_trgm</filename>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [75f9c4ca5] 2018-09-14 09:36:30 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [830d75659] 2018-09-14 09:51:47 +0530
-Branch: REL_10_STABLE [1ceb103e7] 2018-09-14 10:05:45 +0530
-Branch: REL9_6_STABLE [568b4e1fd] 2018-09-14 10:17:31 +0530
-Branch: master [14e9b2a75] 2018-09-04 10:28:08 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [2ce253cf5] 2018-09-04 10:26:06 +0530
-Branch: REL_10_STABLE [bf61873ae] 2018-09-04 10:49:05 +0530
-Branch: REL9_6_STABLE [f658235a4] 2018-09-04 11:01:25 +0530
--->
- <para>
- Disallow pushing sub-<literal>SELECT</literal>s containing window
- functions, <literal>LIMIT</literal>, or <literal>OFFSET</literal> to
- parallel workers (Amit Kapila)
- </para>
-
- <para>
- Such cases could result in inconsistent behavior due to different
- workers getting different answers, as a result of indeterminacy
- due to row-ordering variations.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [0320ddaf3] 2018-09-26 20:19:15 +0200
-Branch: REL_11_STABLE Release: REL_11_0 [648546960] 2018-09-26 20:19:31 +0200
-Branch: REL_10_STABLE [5f6b0e6d6] 2018-09-26 20:19:44 +0200
-Branch: REL9_6_STABLE [bdf11d688] 2018-09-26 20:20:17 +0200
-Branch: REL9_5_STABLE [992f8542a] 2018-09-26 20:20:59 +0200
-Branch: REL9_4_STABLE [26b877d28] 2018-09-26 20:33:05 +0200
-Branch: REL9_3_STABLE [14ce78e47] 2018-09-26 20:33:21 +0200
--->
- <para>
- Ensure that sequences owned by a foreign table are processed
- by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut)
- </para>
-
- <para>
- The ownership change should propagate to such sequences as well, but
- this was missed for foreign tables.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that the server will process
- already-received <literal>NOTIFY</literal>
- and <literal>SIGTERM</literal> interrupts before waiting for client
- input (Jeff Janes, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [87d9bbca1] 2018-09-24 11:30:59 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [bfdd02f88] 2018-09-24 11:30:51 -0400
-Branch: REL_10_STABLE [103511723] 2018-09-24 11:30:51 -0400
-Branch: REL9_6_STABLE [ac863108f] 2018-09-24 11:30:51 -0400
-Branch: REL9_5_STABLE [6ed095edb] 2018-09-24 11:30:51 -0400
-Branch: REL9_4_STABLE [028fc0bac] 2018-09-24 11:30:51 -0400
-Branch: REL9_3_STABLE [7ecdeb5f5] 2018-09-24 11:30:51 -0400
--->
- <para>
- Fix over-allocation of space for <function>array_out()</function>'s
- result string (Keiichi Hirobe)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [07172d5af] 2018-08-13 01:59:45 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [78f70e07e] 2018-08-13 02:03:12 +0100
-Branch: REL_10_STABLE [556140424] 2018-08-13 02:03:54 +0100
--->
- <para>
- Avoid query-lifetime memory leak in <literal>XMLTABLE</literal>
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix memory leak in repeated SP-GiST index scans (Tom Lane)
- </para>
-
- <para>
- This is only known to amount to anything significant in cases where
- an exclusion constraint using SP-GiST receives many new index entries
- in a single command.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-Branch: master [fa73b377e] 2018-08-16 16:49:57 +0200
-Branch: REL_11_STABLE Release: REL_11_0 [43ba5ac6a] 2018-08-16 16:55:34 +0200
-Branch: REL_10_STABLE [e00f4b68d] 2018-08-16 16:55:09 +0200
-Branch: REL9_6_STABLE [5257b9bfb] 2018-08-16 16:52:44 +0200
-Branch: REL9_5_STABLE [864ecd716] 2018-08-16 16:51:46 +0200
-Branch: REL9_4_STABLE [ef1ac5b2a] 2018-08-16 16:51:00 +0200
--->
- <para>
- Ensure that <function>ApplyLogicalMappingFile()</function> closes the
- mapping file when done with it (Tomas Vondra)
- </para>
-
- <para>
- Previously, the file descriptor was leaked, eventually resulting in
- failures during logical decoding.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [e9edc1ba0] 2018-10-10 13:53:02 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [88670a436] 2018-10-10 13:53:02 -0700
-Branch: REL_10_STABLE [532e3b5b3] 2018-10-10 13:53:02 -0700
-Branch: REL9_6_STABLE [a88482dd2] 2018-10-10 13:53:02 -0700
-Branch: REL9_5_STABLE [0a0c25594] 2018-10-10 13:53:03 -0700
-Branch: REL9_4_STABLE [c7b96ba29] 2018-10-10 13:53:03 -0700
--->
- <para>
- Fix logical decoding to handle cases where a mapped catalog table is
- repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal>
- (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent starting the server with <varname>wal_level</varname> set
- to too low a value to support an existing replication slot (Andres
- Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d48da369a] 2018-10-15 14:01:38 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [db9034bf7] 2018-10-15 14:01:38 -0400
-Branch: REL_10_STABLE [9d4212afa] 2018-10-15 14:01:38 -0400
-Branch: REL9_6_STABLE [ca361554c] 2018-10-15 14:01:38 -0400
-Branch: REL9_5_STABLE [10412cef1] 2018-10-15 14:01:38 -0400
-Branch: REL9_4_STABLE [eb01ea2a3] 2018-10-15 14:01:38 -0400
-Branch: REL9_3_STABLE [3a60c8bb1] 2018-10-15 14:01:38 -0400
--->
- <para>
- Avoid crash if a utility command causes infinite recursion (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [1df21ddb1] 2018-10-14 22:23:21 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [18781cd2a] 2018-10-14 22:23:29 +0900
-Branch: REL_10_STABLE [8384ff424] 2018-10-14 22:23:35 +0900
-Branch: REL9_6_STABLE [010041ddc] 2018-10-14 22:23:43 +0900
-Branch: REL9_5_STABLE [d83dac374] 2018-10-14 22:23:48 +0900
-Branch: REL9_4_STABLE [7c525519d] 2018-10-14 22:23:54 +0900
-Branch: REL9_3_STABLE [0c99e7196] 2018-10-14 22:24:01 +0900
--->
- <para>
- When initializing a hot standby, cope with duplicate XIDs caused by
- two-phase transactions on the master
- (Michael Paquier, Konstantin Knizhnik)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [ad08006ba] 2018-10-06 19:17:46 -0300
-Branch: REL_11_STABLE Release: REL_11_0 [1a852f7c1] 2018-10-06 19:17:46 -0300
-Branch: REL_10_STABLE [101b21ead] 2018-10-06 19:17:46 -0300
-Branch: REL9_6_STABLE [b2f266f58] 2018-10-06 19:17:46 -0300
-Branch: REL9_5_STABLE [a2a5159ed] 2018-10-06 19:17:46 -0300
--->
- <para>
- Fix event triggers to handle nested <command>ALTER TABLE</command>
- commands (Michael Paquier, Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [07ee62ce9] 2018-10-06 12:00:09 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [6bf278df8] 2018-10-06 12:00:09 -0400
-Branch: REL_10_STABLE [58454d0bb] 2018-10-06 12:00:10 -0400
-Branch: REL9_6_STABLE [bdc2e7a19] 2018-10-06 12:00:10 -0400
-Branch: REL9_5_STABLE [3c9dd963c] 2018-10-06 12:00:10 -0400
--->
- <para>
- Propagate parent process's transaction and statement start timestamps
- to parallel workers (Konstantin Knizhnik)
- </para>
-
- <para>
- This prevents misbehavior of functions such
- as <function>transaction_timestamp()</function> when executed in a
- worker.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [9bc9f72b2] 2018-10-03 09:15:03 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [ca5ca25d0] 2018-10-03 09:14:09 +0530
-Branch: REL_10_STABLE [9718c93f5] 2018-10-03 09:38:07 +0530
-Branch: REL9_6_STABLE [dca44d07c] 2018-10-03 09:54:01 +0530
--->
- <para>
- Fix transfer of expanded datums to parallel workers so that alignment
- is preserved, preventing crashes on alignment-picky platforms
- (Tom Lane, Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [78ea8b5da] 2018-09-28 11:54:38 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [88926fd48] 2018-09-28 11:55:43 +0900
-Branch: REL_10_STABLE [05b9c58da] 2018-09-28 11:55:55 +0900
-Branch: REL9_6_STABLE [f4fa92f26] 2018-09-28 11:56:04 +0900
-Branch: REL9_5_STABLE [ed9d6d621] 2018-09-28 11:56:11 +0900
--->
- <para>
- Fix WAL file recycling logic to work correctly on standby servers
- (Michael Paquier)
- </para>
-
- <para>
- Depending on the setting of <varname>archive_mode</varname>, a standby
- might fail to remove some WAL files that could be removed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [8d28bf500] 2018-09-26 10:25:54 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [180feb8c7] 2018-09-26 10:29:20 +0900
-Branch: REL_10_STABLE [cb822ffb7] 2018-09-26 10:29:28 +0900
-Branch: REL9_6_STABLE [e513a3d85] 2018-09-26 10:29:49 +0900
-Branch: REL9_5_STABLE [69a568636] 2018-09-26 10:30:38 +0900
--->
- <para>
- Fix handling of commit-timestamp tracking during recovery
- (Masahiko Sawada, Michael Paquier)
- </para>
-
- <para>
- If commit timestamp tracking has been turned on or off, recovery might
- fail due to trying to fetch the commit timestamp for a transaction
- that did not record it.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [d18f6674b] 2018-09-23 22:56:39 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [89f2b64da] 2018-09-23 22:56:42 -0700
-Branch: REL_10_STABLE [4232cff11] 2018-09-23 22:56:42 -0700
-Branch: REL9_6_STABLE [329cacb90] 2018-09-23 22:56:42 -0700
-Branch: REL9_5_STABLE [d68d5adfd] 2018-09-23 22:56:43 -0700
-Branch: REL9_4_STABLE [401228183] 2018-09-23 22:56:57 -0700
-Branch: REL9_3_STABLE [402da7054] 2018-09-23 22:57:43 -0700
--->
- <para>
- Randomize the <function>random()</function> seed in bootstrap and
- standalone backends, and in <application>initdb</application>
- (Noah Misch)
- </para>
-
- <para>
- The main practical effect of this change is that it avoids a scenario
- where <application>initdb</application> might mistakenly conclude that
- POSIX shared memory is not available, due to name collisions caused by
- always using the same random seed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [38763d677] 2018-09-20 15:52:39 +1200
-Branch: REL_11_STABLE Release: REL_11_0 [8ffc3be10] 2018-09-20 15:59:34 +1200
-Branch: REL_10_STABLE [ba20d3925] 2018-09-20 16:03:51 +1200
--->
- <para>
- Fix possible shared-memory corruption in DSA logic (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [422952ee7] 2018-09-18 22:56:36 +1200
-Branch: REL_11_STABLE Release: REL_11_0 [63efab4ca] 2018-09-18 23:03:54 +1200
-Branch: REL_10_STABLE [7167fa876] 2018-09-18 23:08:56 +1200
-Branch: REL9_6_STABLE [f547035a0] 2018-09-18 23:13:27 +1200
-Branch: REL9_5_STABLE [fb389498b] 2018-09-18 23:19:22 +1200
-Branch: REL9_4_STABLE [c0c5668c6] 2018-09-18 23:49:21 +1200
--->
- <para>
- Allow DSM allocation to be interrupted (Chris Travers)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [6c3c9d418] 2018-09-20 14:21:18 +1200
-Branch: REL_11_STABLE Release: REL_11_0 [9d178fb92] 2018-09-20 14:21:32 +1200
-Branch: REL_10_STABLE [98a4e814e] 2018-09-20 14:21:44 +1200
-Branch: REL9_6_STABLE [de4fe83c7] 2018-09-20 14:21:57 +1200
--->
- <para>
- Avoid failure in a parallel worker when loading an extension that
- tries to access system caches within its init function (Thomas Munro)
- </para>
-
- <para>
- We don't consider that to be good extension coding practice, but it
- mostly worked before parallel query, so continue to support it for
- now.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [bc153c941] 2018-09-13 15:32:50 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [ff4220ead] 2018-09-13 15:38:15 +0530
-Branch: REL_10_STABLE [ede7d8192] 2018-09-13 16:01:57 +0530
-Branch: REL9_6_STABLE [fd4f2af77] 2018-09-13 16:08:55 +0530
-Branch: REL9_5_STABLE [47a589c1f] 2018-09-13 16:10:59 +0530
--->
- <para>
- Properly handle turning <varname>full_page_writes</varname> on
- dynamically (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [500d49794] 2018-09-11 18:14:19 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [e331d6712] 2018-09-11 19:19:45 +0100
-Branch: REL_10_STABLE [c02b56869] 2018-09-11 19:19:50 +0100
-Branch: REL9_6_STABLE [84a3a1e55] 2018-09-11 19:19:55 +0100
--->
- <para>
- Fix possible crash due to double <function>free()</function> during
- SP-GiST rescan (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e3d77ea6b] 2018-09-09 15:17:01 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [6395ac14d] 2018-09-09 15:17:02 -0400
-Branch: REL_10_STABLE [d6ff5322c] 2018-09-09 15:17:03 -0400
-Branch: master [4fa3741d1] 2018-09-10 22:22:12 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [e3aafe200] 2018-09-10 22:22:12 -0400
-Branch: REL_10_STABLE [355fd62e8] 2018-09-10 22:22:12 -0400
--->
- <para>
- Prevent mis-linking of src/port and src/common functions on ELF-based
- BSD platforms, as well as HP-UX and Solaris (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- Shared libraries loaded into a backend's address space could use the
- backend's versions of these functions, rather than their own copies as
- intended. Since the behavior of the two sets of functions isn't
- quite the same, this led to failures.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-Branch: master [5f08accda] 2018-09-09 21:19:29 +0300
-Branch: REL_11_STABLE Release: REL_11_0 [cc909ddbf] 2018-09-09 21:29:00 +0300
-Branch: REL_10_STABLE [bccfd3817] 2018-09-09 21:29:07 +0300
-Branch: REL9_6_STABLE [f9e66f2fb] 2018-09-09 21:42:50 +0300
-Branch: REL9_5_STABLE [e950c6c9d] 2018-09-09 21:44:58 +0300
-Branch: REL9_4_STABLE [35ea98f79] 2018-09-09 21:45:55 +0300
--->
- <para>
- Avoid possible buffer overrun when replaying GIN page recompression
- from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [ac27c74de] 2018-09-06 09:27:19 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [834bce0a5] 2018-09-06 10:07:18 +0530
-Branch: REL_10_STABLE [916afca45] 2018-09-06 10:19:51 +0530
--->
- <para>
- Avoid overrun of a hash index's metapage
- when <literal>BLCKSZ</literal> is smaller than default (Dilip Kumar)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [7c9e19ca9] 2018-09-04 08:35:42 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [16e7bcfac] 2018-09-04 08:33:33 +0530
-Branch: REL_10_STABLE [3b7a96a61] 2018-09-04 08:43:37 +0530
--->
- <para>
- Fix missed page checksum updates in hash indexes (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [caa0c6ceb] 2018-09-02 12:40:30 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [680f89e56] 2018-09-02 12:40:38 -0700
-Branch: REL_10_STABLE [504f059f5] 2018-09-02 12:40:45 -0700
-Branch: REL9_6_STABLE [d8030c684] 2018-09-02 12:40:52 -0700
-Branch: REL9_5_STABLE [02b1b01d8] 2018-09-02 12:40:58 -0700
-Branch: REL9_4_STABLE [113020627] 2018-09-02 12:41:06 -0700
--->
- <para>
- Fix missed fsync of a replication slot's directory (Konstantin
- Knizhnik, Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [ab0ed6153] 2018-08-31 22:59:58 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [ee0ab2754] 2018-08-31 23:00:01 -0700
-Branch: REL_10_STABLE [1664c8b30] 2018-08-31 23:00:01 -0700
-Branch: REL9_6_STABLE [081e4104a] 2018-08-31 23:00:02 -0700
-Branch: REL9_5_STABLE [e3eca937c] 2018-08-31 23:00:02 -0700
-Branch: REL9_4_STABLE [20cd88857] 2018-08-31 23:00:03 -0700
--->
- <para>
- Fix unexpected timeouts when
- using <varname>wal_sender_timeout</varname> on a slow server
- (Noah Misch)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [c186ba135] 2018-08-31 11:03:40 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [c34f8078a] 2018-08-31 11:03:55 -0700
-Branch: REL_10_STABLE [2c8cff5dd] 2018-08-31 11:04:07 -0700
-Branch: REL9_6_STABLE [4a9a5bb3f] 2018-08-31 11:04:33 -0700
-Branch: REL9_5_STABLE [f3520ff6f] 2018-08-31 11:04:46 -0700
-Branch: REL9_4_STABLE [d9638a326] 2018-08-31 11:05:59 -0700
-Branch: REL9_3_STABLE [65f39408e] 2018-08-31 11:06:09 -0700
--->
- <para>
- Ensure that hot standby processes use the correct WAL consistency
- point (Alexander Kukushkin, Michael Paquier)
- </para>
-
- <para>
- This prevents possible misbehavior just after a standby server has
- reached a consistent database state during WAL replay.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [55875b6d2] 2018-08-29 17:10:02 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [35622f7d3] 2018-08-29 17:10:13 -0700
-Branch: REL_10_STABLE [89f562ae1] 2018-08-29 17:11:19 -0700
-Branch: REL9_6_STABLE [f6feb8e38] 2018-08-29 17:11:27 -0700
-Branch: REL9_5_STABLE [32f2792eb] 2018-08-29 17:11:40 -0700
--->
- <para>
- Ensure background workers are stopped properly when the postmaster
- receives a fast-shutdown request before completing database startup
- (Alexander Kukushkin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [ab7dbd681] 2018-08-15 18:09:29 -0300
-Branch: REL_11_STABLE Release: REL_11_0 [6872c2be6] 2018-08-15 18:09:29 -0300
-Branch: REL_10_STABLE [255e2fbe8] 2018-08-15 18:09:29 -0300
-Branch: REL9_6_STABLE [3cbd190e1] 2018-08-15 18:09:29 -0300
--->
- <para>
- Update the free space map during WAL replay of page all-visible/frozen
- flag changes (Álvaro Herrera)
- </para>
-
- <para>
- Previously we were not careful about this, reasoning that the FSM is
- not critical data anyway. However, if it's sufficiently out of date,
- that can result in significant performance degradation after a standby
- has been promoted to primary. The FSM will eventually be healed by
- updates, but we'd like it to be good sooner, so work harder at
- maintaining it during WAL replay.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [2cd0acfda] 2018-08-13 08:22:18 +0530
-Branch: REL_11_STABLE Release: REL_11_0 [c054afd0a] 2018-08-13 08:33:55 +0530
-Branch: REL_10_STABLE [ba10eaef5] 2018-08-13 08:43:33 +0530
-Branch: REL9_6_STABLE [69de17186] 2018-08-13 08:56:37 +0530
--->
- <para>
- Avoid premature release of parallel-query resources when query end or
- tuple count limit is reached (Amit Kapila)
- </para>
-
- <para>
- It's only okay to shut down the executor at this point if the caller
- cannot demand backwards scan afterwards.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [8e19a8264] 2018-08-08 19:10:32 +0300
-Branch: REL_11_STABLE Release: REL_11_0 [79f17d45e] 2018-08-08 19:10:35 +0300
-Branch: REL_10_STABLE [2332020d6] 2018-08-08 19:09:30 +0300
-Branch: REL9_6_STABLE [8e4e783ee] 2018-08-08 19:09:33 +0300
-Branch: REL9_5_STABLE [f318f7fdf] 2018-08-08 19:09:35 +0300
-Branch: REL9_4_STABLE [d5a9b706e] 2018-08-08 19:10:38 +0300
-Branch: REL9_3_STABLE [58ce9c785] 2018-08-08 19:10:07 +0300
--->
- <para>
- Don't run atexit callbacks when servicing <literal>SIGQUIT</literal>
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9b7c56d6c] 2018-08-07 16:32:50 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [ea1b65971] 2018-08-07 16:32:55 -0400
-Branch: REL_10_STABLE [9446d7157] 2018-08-07 16:33:00 -0400
-Branch: REL9_6_STABLE [f3ed5364e] 2018-08-07 16:33:03 -0400
-Branch: REL9_5_STABLE [74c877e8d] 2018-08-07 16:33:08 -0400
-Branch: REL9_4_STABLE [33c5d3bf8] 2018-08-07 16:33:12 -0400
-Branch: REL9_3_STABLE [f5973ac76] 2018-08-07 16:33:17 -0400
--->
- <para>
- Don't record foreign-server user mappings as members of extensions
- (Tom Lane)
- </para>
-
- <para>
- If <command>CREATE USER MAPPING</command> is executed in an extension
- script, an extension dependency was created for the user mapping,
- which is unexpected. Roles can't be extension members, so user
- mappings shouldn't be either.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [bff84a547] 2018-08-26 14:21:55 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f8fc5f5f5] 2018-08-26 14:21:55 -0400
-Branch: REL_10_STABLE [6fbbe3353] 2018-08-26 14:21:55 -0400
-Branch: REL9_6_STABLE [93ca07fd8] 2018-08-26 14:21:55 -0400
-Branch: REL9_5_STABLE [8895daf1b] 2018-08-26 14:21:55 -0400
-Branch: REL9_4_STABLE [48bc1a525] 2018-08-26 14:21:55 -0400
-Branch: REL9_3_STABLE [23f21e070] 2018-08-26 14:21:55 -0400
--->
- <para>
- Make syslogger more robust against failures in opening CSV log files
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5ca007741] 2018-08-23 16:39:36 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [c781a066e] 2018-08-23 16:39:37 -0400
-Branch: REL_10_STABLE [6953daf08] 2018-08-23 16:39:20 -0400
--->
- <para>
- When <application>libpq</application> is given multiple target host
- names, do the DNS lookups one at a time, not all at once (Tom Lane)
- </para>
-
- <para>
- This prevents unnecessary failures or slow connections when a
- connection is successfully made to one of the earlier servers in the
- list.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1e6e98f76] 2018-08-13 13:07:52 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [998c73664] 2018-08-13 13:07:52 -0400
-Branch: REL_10_STABLE [e0db288ab] 2018-08-13 13:07:53 -0400
--->
- <para>
- Fix <application>libpq</application>'s handling of connection timeouts
- so that they are properly applied per host name or IP address (Tom Lane)
- </para>
-
- <para>
- Previously, some code paths failed to restart the timer when switching
- to a new target host, possibly resulting in premature timeout.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>psql</application>, as well as documentation
- examples, to call <function>PQconsumeInput()</function> before
- each <function>PQnotifies()</function> call (Tom Lane)
- </para>
-
- <para>
- This fixes cases in which <application>psql</application> would not
- report receipt of a <literal>NOTIFY</literal> message until after the
- next command.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [08c9917e2] 2018-09-25 11:03:56 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [1f5039411] 2018-09-25 11:05:13 +0900
-Branch: REL_10_STABLE [55a586ba9] 2018-09-25 11:05:29 +0900
--->
- <para>
- Fix <application>pg_dump</application>'s
- <option>--no-publications</option> option to also ignore publication
- tables (Gilles Darold)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [b965f2617] 2018-08-22 14:21:49 +0900
-Branch: REL_11_STABLE Release: REL_11_0 [4ed59e02f] 2018-08-22 14:22:39 +0900
-Branch: REL_10_STABLE [cb282eab1] 2018-08-22 14:23:03 +0900
--->
- <para>
- In <application>pg_dump</application>, exclude identity sequences when
- their parent table is excluded from the dump (David Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5b5ed4756] 2018-08-07 13:13:42 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f73643006] 2018-08-07 13:13:42 -0400
-Branch: REL_10_STABLE [dc391dacf] 2018-08-07 13:13:42 -0400
-Branch: REL9_6_STABLE [6b6327d93] 2018-08-07 13:13:42 -0400
-Branch: REL9_5_STABLE [f3f6558b5] 2018-08-07 13:13:42 -0400
-Branch: REL9_4_STABLE [abd04e0dd] 2018-08-07 13:13:42 -0400
-Branch: REL9_3_STABLE [5abdb33ad] 2018-08-07 13:13:42 -0400
--->
- <para>
- Fix possible inconsistency in <application>pg_dump</application>'s
- sorting of dissimilar object names (Jacob Champion)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6771c932c] 2018-08-17 17:12:33 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [d73093c4f] 2018-08-17 17:12:21 -0400
-Branch: REL_10_STABLE [05aeeb5e2] 2018-08-17 17:12:21 -0400
-Branch: REL9_6_STABLE [72329ba03] 2018-08-17 17:12:21 -0400
-Branch: REL9_5_STABLE [3998dfe1b] 2018-08-17 17:12:21 -0400
-Branch: REL9_4_STABLE [a4fdcceab] 2018-08-17 17:12:21 -0400
-Branch: REL9_3_STABLE [b2171d472] 2018-08-17 17:12:21 -0400
--->
- <para>
- Ensure that <application>pg_restore</application> will schema-qualify
- the table name when
- emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal>
- commands (Tom Lane)
- </para>
-
- <para>
- This avoids failures due to the new policy of running restores with
- restrictive search path.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [03838b804] 2018-08-07 15:43:48 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [187331fef] 2018-08-07 15:43:48 -0400
-Branch: REL_10_STABLE [c9dacdb1c] 2018-08-07 15:43:49 -0400
-Branch: REL9_6_STABLE [92d5dd36e] 2018-08-07 15:43:49 -0400
-Branch: REL9_5_STABLE [91f6ec299] 2018-08-07 15:43:49 -0400
-Branch: REL9_4_STABLE [fb4e0e896] 2018-08-07 15:43:49 -0400
-Branch: REL9_3_STABLE [dfffe651e] 2018-08-07 15:43:49 -0400
--->
- <para>
- Fix <application>pg_upgrade</application> to handle event triggers in
- extensions correctly (Haribabu Kommi)
- </para>
-
- <para>
- <application>pg_upgrade</application> failed to preserve an event
- trigger's extension-membership status.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [777e6ddf1] 2018-08-14 17:19:02 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [995133410] 2018-08-14 17:19:02 -0400
-Branch: REL_10_STABLE [efc4b4897] 2018-08-14 17:19:02 -0400
-Branch: REL9_6_STABLE [54db0e5e1] 2018-08-14 17:19:02 -0400
-Branch: REL9_5_STABLE [dcca99627] 2018-08-14 17:19:02 -0400
-Branch: REL9_4_STABLE [a034c6737] 2018-08-14 17:19:02 -0400
-Branch: REL9_3_STABLE [235eab04e] 2018-08-14 17:19:02 -0400
--->
- <para>
- Fix <application>pg_upgrade</application>'s cluster state check to
- work correctly on a standby server (Bruce Momjian)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-Branch: master [f919c165e] 2018-08-31 20:24:48 +0300
-Branch: REL_11_STABLE Release: REL_11_0 [36343e59b] 2018-08-31 20:24:20 +0300
-Branch: REL_10_STABLE [29e07cd22] 2018-08-31 20:23:32 +0300
-Branch: REL9_6_STABLE [5fed7b24a] 2018-08-31 20:22:39 +0300
-Branch: REL9_5_STABLE [b187dae9d] 2018-08-31 20:06:49 +0300
-Branch: REL9_4_STABLE [7cea5e6eb] 2018-08-31 20:10:40 +0300
-Branch: REL9_3_STABLE [9f3ade1a6] 2018-08-31 20:21:30 +0300
--->
- <para>
- Enforce type <type>cube</type>'s dimension limit in
- all <filename>contrib/cube</filename> functions (Andrey Borodin)
- </para>
-
- <para>
- Previously, some cube-related functions could construct values that
- would be rejected by <function>cube_in()</function>, leading to
- dump/reload failures.
- </para>
- </listitem>
-
- <listitem>
- <para>
- In <filename>contrib/pg_stat_statements</filename>, disallow
- the <literal>pg_read_all_stats</literal> role from
- executing <function>pg_stat_statements_reset()</function>
- (Haribabu Kommi)
- </para>
-
- <para>
- <literal>pg_read_all_stats</literal> is only meant to grant permission
- to read statistics, not to change them, so this grant was incorrect.
- </para>
-
- <para>
- To cause this change to take effect, run <literal>ALTER EXTENSION
- pg_stat_statements UPDATE</literal> in each database
- where <filename>pg_stat_statements</filename> has been installed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [bf2d0462c] 2018-08-28 14:43:51 +0100
-Branch: REL_11_STABLE Release: REL_11_0 [8bc6a301b] 2018-08-28 15:04:19 +0100
-Branch: REL_10_STABLE [64eed263a] 2018-08-28 15:04:24 +0100
-Branch: REL9_6_STABLE [639bdbb96] 2018-08-28 15:04:30 +0100
--->
- <para>
- In <filename>contrib/postgres_fdw</filename>, don't try to ship a
- variable-free <literal>ORDER BY</literal> clause to the remote server
- (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a5322ca10] 2018-09-06 10:49:45 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [23aad181f] 2018-09-06 10:49:45 -0400
-Branch: REL_10_STABLE [a54f5b187] 2018-09-06 10:49:45 -0400
-Branch: REL9_6_STABLE [594ee1ada] 2018-09-06 10:49:45 -0400
-Branch: REL9_5_STABLE [c79b39fb1] 2018-09-06 10:49:45 -0400
-Branch: REL9_4_STABLE [d4ab39626] 2018-09-06 10:49:45 -0400
-Branch: REL9_3_STABLE [25ff97ba7] 2018-09-06 10:49:45 -0400
--->
- <para>
- Fix <filename>contrib/unaccent</filename>'s
- <function>unaccent()</function> function to use
- the <literal>unaccent</literal> text search dictionary that is in the
- same schema as the function (Tom Lane)
- </para>
-
- <para>
- Previously it tried to look up the dictionary using the search path,
- which could fail if the search path has a restrictive value.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix build problems on macOS 10.14 (Mojave) (Tom Lane)
- </para>
-
- <para>
- Adjust <application>configure</application> to add
- an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>;
- without this, PL/Perl and PL/Tcl fail to configure or build on macOS
- 10.14. The specific sysroot used can be overridden at configure time
- or build time by setting the <varname>PG_SYSROOT</varname> variable in
- the arguments of <application>configure</application>
- or <application>make</application>.
- </para>
-
- <para>
- It is now recommended that Perl-related extensions
- write <literal>$(perl_includespec)</literal> rather
- than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler
- flags. The latter continues to work on most platforms, but not recent
- macOS.
- </para>
-
- <para>
- Also, it should no longer be necessary to
- specify <option>--with-tclconfig</option> manually to get PL/Tcl to
- build on recent macOS releases.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix MSVC build and regression-test scripts to work on recent Perl
- versions (Andrew Dunstan)
- </para>
-
- <para>
- Perl no longer includes the current directory in its search path
- by default; work around that.
- </para>
- </listitem>
-
- <listitem>
- <para>
- On Windows, allow the regression tests to be run by an Administrator
- account (Andrew Dunstan)
- </para>
-
- <para>
- To do this safely, <application>pg_regress</application> now gives up
- any such privileges at startup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c87cb5f7a] 2018-10-05 16:01:29 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [67e7d4da7] 2018-10-05 16:01:29 -0400
-Branch: REL_10_STABLE [142cfd3cd] 2018-10-05 16:01:29 -0400
-Branch: REL9_6_STABLE [60cc2414b] 2018-10-05 16:01:30 -0400
-Branch: REL9_5_STABLE [0dc6bf633] 2018-10-05 16:01:30 -0400
-Branch: REL9_4_STABLE [26cc27541] 2018-10-05 16:01:30 -0400
-Branch: REL9_3_STABLE [6e63e0697] 2018-10-05 16:01:30 -0400
--->
- <para>
- Allow btree comparison functions to return <literal>INT_MIN</literal>
- (Tom Lane)
- </para>
-
- <para>
- Up to now, we've forbidden datatype-specific comparison functions from
- returning <literal>INT_MIN</literal>, which allows callers to invert
- the sort order just by negating the comparison result. However, this
- was never safe for comparison functions that directly return the
- result of <function>memcmp()</function>, <function>strcmp()</function>,
- etc, as POSIX doesn't place any such restriction on those functions.
- At least some recent versions of <function>memcmp()</function> can
- return <literal>INT_MIN</literal>, causing incorrect sort ordering.
- Hence, we've removed this restriction. Callers must now use
- the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to
- invert the sort order.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f868a8143] 2018-09-07 18:04:54 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [2569ca0dc] 2018-09-07 18:04:55 -0400
-Branch: REL_10_STABLE [9e6f4fbdd] 2018-09-07 18:04:56 -0400
-Branch: REL9_6_STABLE [395f310b0] 2018-09-07 18:04:58 -0400
-Branch: REL9_5_STABLE [66321ae61] 2018-09-07 18:04:38 -0400
-Branch: REL9_4_STABLE [bf919387e] 2018-09-07 18:04:38 -0400
-Branch: REL9_3_STABLE [95e9f928c] 2018-09-07 18:04:38 -0400
--->
- <para>
- Fix recursion hazard in shared-invalidation message processing
- (Tom Lane)
- </para>
-
- <para>
- This error could, for example, result in failure to access a system
- catalog or index that had just been processed by <command>VACUUM
- FULL</command>.
- </para>
-
- <para>
- This change adds a new result code
- for <function>LockAcquire</function>, which might possibly affect
- external callers of that function, though only very unusual usage
- patterns would have an issue with it. The API
- of <function>LockAcquireExtended</function> is also changed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [361844fe5] 2018-09-07 20:09:57 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [825f10fbd] 2018-09-07 20:09:57 -0400
-Branch: REL_10_STABLE [3985b75dc] 2018-09-07 20:09:57 -0400
-Branch: REL9_6_STABLE [82ebf39fc] 2018-09-07 20:09:57 -0400
-Branch: REL9_5_STABLE [0254aa83b] 2018-09-07 20:09:57 -0400
-Branch: REL9_4_STABLE [d2003339c] 2018-09-07 20:09:57 -0400
-Branch: REL9_3_STABLE [92f0c5083] 2018-09-07 20:09:57 -0400
--->
- <para>
- Save and restore SPI's global variables
- during <function>SPI_connect()</function>
- and <function>SPI_finish()</function> (Chapman Flack, Tom Lane)
- </para>
-
- <para>
- This prevents possible interference when one SPI-using function calls
- another.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [44cac9346] 2018-09-01 15:27:17 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [f5c93cf92] 2018-09-01 15:27:13 -0400
-Branch: REL_10_STABLE [10b9af3eb] 2018-09-01 15:27:13 -0400
-Branch: REL9_6_STABLE [826980424] 2018-09-01 15:27:13 -0400
-Branch: REL9_5_STABLE [03ffe5553] 2018-09-01 15:27:13 -0400
-Branch: REL9_4_STABLE [083d9ced1] 2018-09-01 15:27:13 -0400
-Branch: REL9_3_STABLE [5af055ed7] 2018-09-01 15:27:14 -0400
--->
- <para>
- Avoid using potentially-under-aligned page buffers (Tom Lane)
- </para>
-
- <para>
- Invent new union types <type>PGAlignedBlock</type>
- and <type>PGAlignedXLogBlock</type>, and use these in place of plain
- char arrays, ensuring that the compiler can't place the buffer at a
- misaligned start address. This fixes potential core dumps on
- alignment-picky platforms, and may improve performance even on
- platforms that allow misalignment.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [805889d7d] 2018-08-15 13:21:37 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [36147ec9f] 2018-08-15 17:25:49 -0400
-Branch: REL_10_STABLE [1811900b9] 2018-08-15 17:25:50 -0400
-Branch: REL9_6_STABLE [c2a2e331d] 2018-08-15 17:25:52 -0400
-Branch: REL9_5_STABLE [8e9f229d2] 2018-08-15 17:25:23 -0400
-Branch: REL9_4_STABLE [27c4b0899] 2018-08-15 17:25:24 -0400
-Branch: REL9_3_STABLE [a57a6faf6] 2018-08-15 17:25:24 -0400
--->
- <para>
- Make <filename>src/port/snprintf.c</filename> follow the C99
- standard's definition of <function>snprintf()</function>'s result
- value (Tom Lane)
- </para>
-
- <para>
- On platforms where this code is used (mostly Windows), its pre-C99
- behavior could lead to failure to detect buffer overrun, if the
- calling code assumed C99 semantics.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [bd1463e34] 2018-09-20 17:39:40 -0700
-Branch: REL_11_STABLE Release: REL_11_0 [84f14fb78] 2018-09-20 17:48:34 -0700
-Branch: REL_10_STABLE [1b8f09dbd] 2018-09-20 18:10:32 -0700
-Branch: REL9_6_STABLE [e553997e3] 2018-09-20 18:10:52 -0700
-Branch: REL9_5_STABLE [dbbc98a9e] 2018-09-20 18:11:04 -0700
-Branch: REL9_4_STABLE [29196e13c] 2018-09-20 18:11:10 -0700
-Branch: REL9_3_STABLE [978515df2] 2018-09-20 18:11:49 -0700
--->
- <para>
- When building on i386 with the <application>clang</application>
- compiler, require <option>-msse2</option> to be used (Andres Freund)
- </para>
-
- <para>
- This avoids problems with missed floating point overflow checks.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [751f532b9] 2018-09-26 18:23:13 -0400
-Branch: REL_11_STABLE Release: REL_11_0 [7871a3625] 2018-09-30 16:24:56 -0400
-Branch: REL_10_STABLE [0aa1e0ef1] 2018-09-30 16:24:56 -0400
-Branch: REL9_6_STABLE [2855421ec] 2018-09-30 16:24:56 -0400
-Branch: REL9_5_STABLE [8b36dc588] 2018-09-30 16:24:56 -0400
-Branch: REL9_4_STABLE [e5baf8c27] 2018-09-30 16:24:56 -0400
-Branch: REL9_3_STABLE [08aad3c81] 2018-09-30 16:24:56 -0400
--->
- <para>
- Fix <application>configure</application>'s detection of the result
- type of <function>strerror_r()</function> (Tom Lane)
- </para>
-
- <para>
- The previous coding got the wrong answer when building
- with <application>icc</application> on Linux (and perhaps in other
- cases), leading to <application>libpq</application> not returning
- useful error messages for system-reported errors.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia
- (Volgograd), plus historical corrections for China, Hawaii, Japan,
- Macau, and North Korea.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-5">
- <title>Release 10.5</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-08-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.4.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.5</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you are upgrading from a version earlier than 10.4,
- see <xref linkend="release-10-4"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d1c6a14ba] 2018-08-06 10:53:35 -0400
-Branch: REL_11_STABLE [f6f735f78] 2018-08-06 10:53:35 -0400
-Branch: REL_10_STABLE [ab5400469] 2018-08-06 10:53:35 -0400
-Branch: REL9_6_STABLE [a8094d0fe] 2018-08-06 10:53:35 -0400
-Branch: REL9_5_STABLE [7aabfd1d8] 2018-08-06 10:53:35 -0400
-Branch: REL9_4_STABLE [6de9766b8] 2018-08-06 10:53:35 -0400
-Branch: REL9_3_STABLE [243de06be] 2018-08-06 10:53:35 -0400
--->
- <para>
- Fix failure to reset <application>libpq</application>'s state fully
- between connection attempts (Tom Lane)
- </para>
-
- <para>
- An unprivileged user of <filename>dblink</filename>
- or <filename>postgres_fdw</filename> could bypass the checks intended
- to prevent use of server-side credentials, such as
- a <filename>~/.pgpass</filename> file owned by the operating-system
- user running the server. Servers allowing peer authentication on
- local connections are particularly vulnerable. Other attacks such
- as SQL injection into a <filename>postgres_fdw</filename> session
- are also possible.
- Attacking <filename>postgres_fdw</filename> in this way requires the
- ability to create a foreign server object with selected connection
- parameters, but any user with access to <filename>dblink</filename>
- could exploit the problem.
- In general, an attacker with the ability to select the connection
- parameters for a <application>libpq</application>-using application
- could cause mischief, though other plausible attack scenarios are
- harder to think of.
- Our thanks to Andrew Krasichkov for reporting this issue.
- (CVE-2018-10915)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b8a1247a3] 2018-08-04 19:38:58 -0400
-Branch: REL_11_STABLE [e7154b6ac] 2018-08-04 19:38:58 -0400
-Branch: REL_10_STABLE [f6a124d01] 2018-08-04 19:38:58 -0400
-Branch: REL9_6_STABLE [b484bffe7] 2018-08-04 19:38:58 -0400
-Branch: REL9_5_STABLE [5ad143cda] 2018-08-04 19:38:59 -0400
--->
- <para>
- Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view
- that isn't just <literal>SELECT * FROM ...</literal>
- (Dean Rasheed, Amit Langote)
- </para>
-
- <para>
- Erroneous expansion of an updatable view could lead to crashes
- or <quote>attribute ... has the wrong type</quote> errors, if the
- view's <literal>SELECT</literal> list doesn't match one-to-one with
- the underlying table's columns.
- Furthermore, this bug could be leveraged to allow updates of columns
- that an attacking user lacks <literal>UPDATE</literal> privilege for,
- if that user has <literal>INSERT</literal> and <literal>UPDATE</literal>
- privileges for some other column(s) of the table.
- Any user could also use it for disclosure of server memory.
- (CVE-2018-10925)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master Release: REL_11_BR [a54e1f158] 2018-06-12 11:13:21 -0700
-Branch: REL_10_STABLE [2ce64caaf] 2018-06-12 11:13:21 -0700
-Branch: REL9_6_STABLE [6a46aba1c] 2018-06-12 11:13:21 -0700
-Branch: REL9_5_STABLE [14b3ec6f3] 2018-06-12 11:13:21 -0700
-Branch: REL9_4_STABLE [817f9f9a8] 2018-06-12 11:13:22 -0700
-Branch: REL9_3_STABLE [9b9b622b2] 2018-06-12 11:13:22 -0700
--->
- <para>
- Ensure that updates to the <structfield>relfrozenxid</structfield>
- and <structfield>relminmxid</structfield> values
- for <quote>nailed</quote> system catalogs are processed in a timely
- fashion (Andres Freund)
- </para>
-
- <para>
- Overoptimistic caching rules could prevent these updates from being
- seen by other sessions, leading to spurious errors and/or data
- corruption. The problem was significantly worse for shared catalogs,
- such as <structname>pg_authid</structname>, because the stale cache
- data could persist into new sessions as well as existing ones.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [3c64dcb1e] 2018-07-05 10:46:18 +0900
-Branch: REL_11_STABLE [9a1bd8271] 2018-07-05 10:46:43 +0900
-Branch: REL_10_STABLE [6716f2f96] 2018-07-05 10:47:01 +0900
-Branch: REL9_6_STABLE [8d68ee6f3] 2018-07-05 10:47:19 +0900
-Branch: REL9_5_STABLE [23eef5cd7] 2018-07-05 10:47:32 +0900
-Branch: REL9_4_STABLE [f352f43d3] 2018-07-05 10:47:50 +0900
-Branch: REL9_3_STABLE [56535dcdc] 2018-07-05 10:48:03 +0900
--->
- <para>
- Fix case where a freshly-promoted standby crashes before having
- completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
- Horiguchi, Pavan Deolasee, Álvaro Herrera)
- </para>
-
- <para>
- This led to a situation where the server did not think it had reached
- a consistent database state during subsequent WAL replay, preventing
- restart.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0905fe891] 2018-07-09 19:26:19 -0400
-Branch: REL_11_STABLE [cfcfbd39b] 2018-07-09 19:26:19 -0400
-Branch: REL_10_STABLE [59b2dcbf4] 2018-07-09 19:26:19 -0400
-Branch: REL9_6_STABLE [568995be6] 2018-07-09 19:26:19 -0400
-Branch: REL9_5_STABLE [7ddac4e8f] 2018-07-09 19:26:19 -0400
-Branch: REL9_4_STABLE [d80ec868f] 2018-07-09 19:26:19 -0400
-Branch: REL9_3_STABLE [e8fe3bb23] 2018-07-09 19:26:19 -0400
--->
- <para>
- Avoid emitting a bogus WAL record when recycling an all-zero btree
- page (Amit Kapila)
- </para>
-
- <para>
- This mistake has been seen to cause assertion failures, and
- potentially it could result in unnecessary query cancellations on hot
- standby servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master Release: REL_11_BR [70b4f82a4] 2018-06-18 10:43:27 +0900
-Branch: REL_10_STABLE [fb28104a4] 2018-06-18 10:43:42 +0900
-Branch: REL9_6_STABLE [5860b22c4] 2018-06-18 10:43:59 +0900
-Branch: REL9_5_STABLE [e41c79548] 2018-06-18 10:44:10 +0900
--->
- <para>
- During WAL replay, guard against corrupted record lengths exceeding
- 1GB (Michael Paquier)
- </para>
-
- <para>
- Treat such a case as corrupt data. Previously, the code would try to
- allocate space and get a hard error, making recovery impossible.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [cbc55da55] 2018-07-09 10:22:34 +0900
-Branch: REL_11_STABLE [5d7c9347e] 2018-07-09 10:25:40 +0900
-Branch: REL_10_STABLE [c030db349] 2018-07-09 10:26:18 +0900
-Branch: REL9_6_STABLE [619dea467] 2018-07-09 10:26:41 +0900
-Branch: REL9_5_STABLE [62203e608] 2018-07-09 10:27:10 +0900
--->
- <para>
- When ending recovery, delay writing the timeline history file as long
- as possible (Heikki Linnakangas)
- </para>
-
- <para>
- This avoids some situations where a failure during recovery cleanup
- (such as a problem with a two-phase state file) led to inconsistent
- timeline state on-disk.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [b41669118] 2018-07-05 02:23:46 +0900
-Branch: REL_11_STABLE [9e53171b1] 2018-07-05 02:25:45 +0900
-Branch: REL_10_STABLE [8463be060] 2018-07-05 02:26:22 +0900
-Branch: REL9_6_STABLE [7da22d866] 2018-07-05 02:27:05 +0900
-Branch: REL9_5_STABLE [614e0729a] 2018-07-05 02:27:46 +0900
-Branch: REL9_4_STABLE [62c2fe644] 2018-07-05 02:46:44 +0900
-Branch: REL9_3_STABLE [7ffe0127e] 2018-07-05 02:52:28 +0900
--->
- <para>
- Improve performance of WAL replay for transactions that drop many
- relations (Fujii Masao)
- </para>
-
- <para>
- This change reduces the number of times that shared buffers are
- scanned, so that it is of most benefit when that setting is large.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master Release: REL_11_BR [a40cff895] 2018-06-26 18:45:45 +1200
-Branch: REL_10_STABLE [88554c091] 2018-06-26 17:17:27 +1200
-Branch: REL9_6_STABLE [35750a38b] 2018-06-26 18:44:31 +1200
-Branch: REL9_5_STABLE [7bcda60d4] 2018-06-26 17:56:20 +1200
-Branch: REL9_4_STABLE [c4ccbcc1a] 2018-06-26 18:23:36 +1200
-Branch: REL9_3_STABLE [12f7d9199] 2018-06-26 18:23:17 +1200
--->
- <para>
- Improve performance of lock releasing in standby server WAL replay
- (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [9a7b7adc1] 2018-07-12 10:19:35 +0900
-Branch: REL_11_STABLE [0414ac6a1] 2018-07-12 10:19:51 +0900
-Branch: REL_10_STABLE [11abea37d] 2018-07-12 10:20:08 +0900
-Branch: REL9_6_STABLE [d5eb1fe0d] 2018-07-12 10:20:14 +0900
-Branch: REL9_5_STABLE [19648375c] 2018-07-12 10:20:21 +0900
-Branch: REL9_4_STABLE [98e2c298c] 2018-07-12 10:20:27 +0900
--->
- <para>
- Make logical WAL senders report streaming state correctly (Simon
- Riggs, Sawada Masahiko)
- </para>
-
- <para>
- The code previously mis-detected whether or not it had caught up with
- the upstream server.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [4f10e7ea7] 2018-07-30 16:30:07 -0400
-Branch: REL_11_STABLE [5dbd0beb8] 2018-07-30 16:30:07 -0400
-Branch: REL_10_STABLE [2c4d0f32e] 2018-07-30 16:30:07 -0400
--->
- <para>
- Ensure that a snapshot is provided when executing data type input
- functions in logical replication subscribers (Minh-Quan Tran,
- Álvaro Herrera)
- </para>
-
- <para>
- This omission led to failures in some cases, such as domains with
- constraints using SQL-language functions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL_11_BR [f49a80c48] 2018-06-26 16:48:10 -0400
-Branch: REL_10_STABLE [b767b3f2e] 2018-06-26 16:38:34 -0400
-Branch: REL9_6_STABLE [da10d6a8a] 2018-06-26 16:38:34 -0400
-Branch: REL9_5_STABLE [4cb6f7837] 2018-06-26 16:38:34 -0400
-Branch: REL9_4_STABLE [962313558] 2018-06-26 16:38:34 -0400
--->
- <para>
- Fix bugs in snapshot handling during logical decoding, allowing wrong
- decoding results in rare cases (Arseny Sher, Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [32df1c9af] 2018-07-16 17:33:22 -0400
-Branch: REL_11_STABLE [9ec9f8f68] 2018-07-16 17:33:35 -0400
-Branch: REL_10_STABLE [4beb25c63] 2018-07-16 17:55:13 -0400
--->
- <para>
- Add subtransaction handling in logical-replication table
- synchronization workers (Amit Khandekar, Robert Haas)
- </para>
-
- <para>
- Previously, table synchronization could misbehave if any
- subtransactions were aborted after modifying a table being
- synchronized.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Geoghegan <pg@bowt.ie>
-Branch: master [b3f919da0] 2018-08-03 15:11:31 -0700
-Branch: REL_11_STABLE [b9612e5cf] 2018-08-03 14:45:02 -0700
-Branch: REL_10_STABLE [c83408aa7] 2018-08-03 14:44:56 -0700
-Branch: REL9_6_STABLE [0a60a291c] 2018-08-03 14:44:44 -0700
-Branch: REL9_5_STABLE [aca225741] 2018-08-03 14:44:38 -0700
-Branch: REL9_4_STABLE [250528cec] 2018-08-03 14:44:33 -0700
-Branch: REL9_3_STABLE [0229e087d] 2018-08-03 14:44:26 -0700
--->
- <para>
- Ensure a table's cached index list is correctly rebuilt after an index
- creation fails partway through (Peter Geoghegan)
- </para>
-
- <para>
- Previously, the failed index's OID could remain in the list, causing
- problems later in the same session.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-Branch: master [309765fa1] 2018-07-19 21:04:17 +0300
-Branch: REL_11_STABLE [608793266] 2018-07-19 23:26:15 +0300
-Branch: REL_10_STABLE [0d26812a4] 2018-07-19 21:12:43 +0300
-Branch: REL9_6_STABLE [44b550e0d] 2018-07-19 21:19:19 +0300
-Branch: REL9_5_STABLE [3c09b032a] 2018-07-19 21:22:07 +0300
-Branch: REL9_4_STABLE [9c6a676c4] 2018-07-19 21:24:53 +0300
--->
- <para>
- Fix mishandling of empty uncompressed posting list pages in GIN
- indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
- </para>
-
- <para>
- This could result in an assertion failure after pg_upgrade of a
- pre-9.4 GIN index (9.4 and later will not create such pages).
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master [2d3067595] 2018-07-25 11:00:29 +1200
-Branch: REL_11_STABLE [f2db5f3bb] 2018-07-25 11:00:42 +1200
-Branch: REL_10_STABLE [46201d603] 2018-07-25 11:00:53 +1200
--->
- <para>
- Pad arrays of unnamed POSIX semaphores to reduce cache line sharing
- (Thomas Munro)
- </para>
-
- <para>
- This reduces contention on many-CPU systems, fixing a performance
- regression (compared to previous releases) on Linux and FreeBSD.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [8ce29bb4f] 2018-07-27 10:53:00 +0530
-Branch: REL_11_STABLE [09a5be587] 2018-07-27 10:56:07 +0530
-Branch: REL_10_STABLE [ff8ce0b79] 2018-07-27 11:05:06 +0530
--->
- <para>
- Ensure that a process doing a parallel index scan will respond to
- signals (Amit Kapila)
- </para>
-
- <para>
- Previously, parallel workers could get stuck waiting for a lock on an
- index page, and not notice requests to abort the query.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [3a01f68e3] 2018-07-04 14:58:25 -0700
-Branch: REL_11_STABLE [0c69db762] 2018-07-04 15:08:32 -0700
-Branch: REL_10_STABLE [009580989] 2018-07-04 14:58:39 -0700
-Branch: REL9_6_STABLE [2adadf018] 2018-07-04 14:58:26 -0700
-Branch: REL9_5_STABLE [f411108c9] 2018-07-04 14:58:26 -0700
-Branch: REL9_4_STABLE [8c8c9f37c] 2018-07-04 14:58:26 -0700
--->
- <para>
- Ensure that <command>VACUUM</command> will respond to signals
- within btree page deletion loops (Andres Freund)
- </para>
-
- <para>
- Corrupted btree indexes could result in an infinite loop here, and
- that previously wasn't interruptible without forcing a crash.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1007b0a12] 2018-07-14 11:59:12 -0400
-Branch: REL_11_STABLE [704e39319] 2018-07-14 11:59:12 -0400
-Branch: REL_10_STABLE [0bb28ca36] 2018-07-14 11:59:12 -0400
--->
- <para>
- Fix hash-join costing mistake introduced with inner_unique
- optimization (David Rowley)
- </para>
-
- <para>
- This could lead to bad plan choices in situations where that
- optimization was applicable.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [a11b3bd37] 2018-05-16 13:46:23 -0400
-Branch: REL_10_STABLE [aada0a764] 2018-05-16 13:46:09 -0400
-Branch: REL9_6_STABLE [ace3c7cc0] 2018-05-16 13:46:09 -0400
-Branch: REL9_5_STABLE [6d7629094] 2018-05-16 13:46:09 -0400
-Branch: REL9_4_STABLE [62e0020ad] 2018-05-16 13:46:09 -0400
-Branch: REL9_3_STABLE [bc711befd] 2018-05-16 13:46:09 -0400
--->
- <para>
- Fix misoptimization of equivalence classes involving composite-type
- columns (Tom Lane)
- </para>
-
- <para>
- This resulted in failure to recognize that an index on a composite
- column could provide the sort order needed for a mergejoin on that
- column.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [07e5a2135] 2018-06-21 10:58:42 -0400
-Branch: REL_10_STABLE [a4c95b0b8] 2018-06-21 10:58:42 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [57cd2b6e6] 2018-07-11 15:25:28 -0400
-Branch: REL_11_STABLE [5b762d96e] 2018-07-11 15:25:28 -0400
-Branch: REL_10_STABLE [c35032027] 2018-07-11 15:25:29 -0400
-Branch: REL9_6_STABLE [4b8860e2d] 2018-07-11 15:25:29 -0400
--->
- <para>
- Fix planner to avoid <quote>ORDER/GROUP BY expression not found in
- targetlist</quote> errors in some queries with set-returning functions
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [b6e3a3a49] 2018-07-10 15:19:40 -0400
-Branch: REL_11_STABLE [e7df94f31] 2018-07-10 15:16:27 -0400
-Branch: REL_10_STABLE [7c644b7d3] 2018-07-10 15:07:28 -0400
--->
- <para>
- Fix handling of partition keys whose data type uses a polymorphic
- btree operator class, such as arrays (Amit Langote, Álvaro
- Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master Release: REL_11_BR [1da162e1f] 2018-05-21 17:27:08 +0100
-Branch: REL_10_STABLE [cf516dc9d] 2018-05-21 17:31:01 +0100
-Branch: REL9_6_STABLE [7a0aa8d12] 2018-05-21 17:32:18 +0100
-Branch: REL9_5_STABLE [3b0fb2529] 2018-05-21 17:32:24 +0100
-Branch: REL9_4_STABLE [769e6fcd1] 2018-05-21 17:32:29 +0100
-Branch: REL9_3_STABLE [89b09db01] 2018-05-21 17:32:34 +0100
--->
- <para>
- Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
- parameters (<literal>$<replaceable>n</replaceable></literal>), as the
- standard expects (Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [240971675] 2018-07-19 15:41:46 -0400
-Branch: REL_11_STABLE [b1af4bcc4] 2018-07-19 15:41:46 -0400
-Branch: REL_10_STABLE [2131d4501] 2018-07-19 15:41:46 -0400
--->
- <para>
- Remove undocumented restriction against duplicate partition key
- columns (Yugo Nagata)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master Release: REL_11_BR [1c7c317cd] 2018-06-20 10:42:25 +0900
-Branch: REL_10_STABLE [5862174ec] 2018-06-20 10:48:28 +0900
--->
- <para>
- Disallow temporary tables from being partitions of non-temporary
- tables (Amit Langote, Michael Paquier)
- </para>
-
- <para>
- While previously allowed, this case didn't work reliably.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [85c9d3475] 2018-08-03 11:02:02 +0530
-Branch: REL_11_STABLE [dac7fe13b] 2018-08-03 11:16:25 +0530
-Branch: REL_10_STABLE [b805b63ac] 2018-08-03 11:27:11 +0530
-Branch: REL9_6_STABLE [19df1702f] 2018-08-03 11:43:01 +0530
-Author: Amit Kapila <akapila@postgresql.org>
-Branch: master [ccc84a956] 2018-08-03 09:11:37 +0530
-Branch: REL_11_STABLE [ef305bd59] 2018-08-03 09:29:45 +0530
-Branch: REL_10_STABLE [3f02b5150] 2018-08-03 09:50:24 +0530
-Branch: REL9_6_STABLE [7124c93fb] 2018-08-03 10:07:56 +0530
--->
- <para>
- Fix <command>EXPLAIN</command>'s accounting for resource usage,
- particularly buffer accesses, in parallel workers
- (Amit Kapila, Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL_11_BR [0c8910a0c] 2018-06-08 16:19:05 -0400
-Branch: REL_10_STABLE [a25c207b2] 2018-06-08 16:27:56 -0400
--->
- <para>
- Fix <command>SHOW ALL</command> to show all settings to roles that are
- members of <literal>pg_read_all_settings</literal>, and also allow
- such roles to see source filename and line number in
- the <structname>pg_settings</structname> view (Laurenz Albe,
- Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [1a31baf61] 2018-05-24 12:38:55 -0400
-Branch: REL_10_STABLE [e8cb8fdfd] 2018-05-24 12:38:55 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [056f52d9c] 2018-05-24 12:07:41 -0400
-Branch: REL_10_STABLE [eb1aa1b46] 2018-05-24 12:07:41 -0400
-Branch: REL9_6_STABLE [3d3165210] 2018-05-24 12:07:41 -0400
-Branch: REL9_5_STABLE [ad73c07b4] 2018-05-24 12:07:41 -0400
-Branch: REL9_4_STABLE [8f2143bc8] 2018-05-24 12:07:41 -0400
-Branch: REL9_3_STABLE [cbb37b2e1] 2018-05-24 12:07:42 -0400
--->
- <para>
- Fix failure to schema-qualify some object names
- in <function>getObjectDescription</function>
- and <function>getObjectIdentity</function> output
- (Kyotaro Horiguchi, Tom Lane)
- </para>
-
- <para>
- Names of collations, conversions, text search objects, publication
- relations, and extended statistics objects were not schema-qualified
- when they should be.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [05ca21b87] 2018-05-15 15:06:53 -0400
-Branch: REL_10_STABLE [17083ab7e] 2018-05-15 15:06:53 -0400
-Branch: REL9_6_STABLE [f92491186] 2018-05-15 15:06:53 -0400
--->
- <para>
- Fix <command>CREATE AGGREGATE</command> type checking so that
- parallelism support functions can be attached to variadic aggregates
- (Alexey Bashtanov)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [ecac23511] 2018-05-22 13:32:52 -0400
-Branch: REL_10_STABLE [c92d1461e] 2018-05-22 13:32:52 -0400
-Branch: REL9_6_STABLE [588edd83e] 2018-05-22 13:32:52 -0400
-Branch: REL9_5_STABLE [7df277827] 2018-05-22 13:32:52 -0400
-Branch: REL9_4_STABLE [d25714d0a] 2018-05-22 13:32:52 -0400
-Branch: REL9_3_STABLE [d78028350] 2018-05-22 13:32:52 -0400
--->
- <para>
- Widen <command>COPY FROM</command>'s current-line-number counter
- from 32 to 64 bits (David Rowley)
- </para>
-
- <para>
- This avoids two problems with input exceeding 4G lines: <literal>COPY
- FROM WITH HEADER</literal> would drop a line every 4G lines, not only
- the first line, and error reports could show a wrong line number.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [0ce5cf2ef] 2018-07-06 16:38:30 -0400
-Branch: REL_11_STABLE [ef6464595] 2018-07-06 16:38:29 -0400
-Branch: REL_10_STABLE [a1f680d96] 2018-07-06 16:38:29 -0400
--->
- <para>
- Allow replication slots to be dropped in single-user mode
- (Álvaro Herrera)
- </para>
-
- <para>
- This use-case was accidentally broken in release 10.0.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [ec4719cd1] 2018-06-21 16:18:39 -0400
-Branch: REL_10_STABLE [b8a1d0302] 2018-06-21 16:18:34 -0400
--->
- <para>
- Fix incorrect results from <function>variance(int4)</function> and
- related aggregates when run in parallel aggregation mode
- (David Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master Release: REL_11_BR [b7f0be9a7] 2018-06-20 12:58:12 -0400
-Branch: REL_10_STABLE [e10bc161f] 2018-06-20 12:58:12 -0400
-Branch: REL_10_STABLE [04ab840b8] 2018-06-20 13:02:46 -0400
--->
- <para>
- Process <literal>TEXT</literal> and <literal>CDATA</literal> nodes
- correctly in <function>xmltable()</function> column expressions
- (Markus Winand)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-Branch: master [8f6ce7fb0] 2018-07-20 08:55:44 +0100
-Branch: REL_11_STABLE [1f919e663] 2018-07-20 08:57:08 +0100
-Branch: REL_10_STABLE [821200405] 2018-07-20 08:58:37 +0100
--->
- <para>
- Cope with possible failure of <application>OpenSSL</application>'s
- <function>RAND_bytes()</function> function
- (Dean Rasheed, Michael Paquier)
- </para>
-
- <para>
- Under rare circumstances, this oversight could result in <quote>could
- not generate random cancel key</quote> failures that could only be
- resolved by restarting the postmaster.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master Release: REL_11_BR [1944cdc98] 2018-03-27 12:32:18 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL_10_STABLE [62038810b] 2018-08-03 11:30:34 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [24986c955] 2018-08-03 12:12:10 -0400
-Branch: REL_11_STABLE [6efc30167] 2018-08-03 12:12:10 -0400
-Branch: REL_10_STABLE [8d00858ba] 2018-08-03 12:12:10 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c7a8f7867] 2018-08-03 12:20:47 -0400
-Branch: REL_11_STABLE [d8b2beb26] 2018-08-03 12:20:47 -0400
-Branch: REL_10_STABLE [ed5d8196c] 2018-08-03 12:20:47 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e3f99e03e] 2018-08-01 12:30:36 -0400
-Branch: REL_11_STABLE [e9bbfe608] 2018-08-01 12:30:36 -0400
-Branch: REL_10_STABLE [71e3b2890] 2018-08-01 12:30:36 -0400
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [b90d97e08] 2018-07-19 20:24:29 +0300
-Branch: REL_11_STABLE [dc961e582] 2018-07-19 20:24:59 +0300
-Branch: REL_10_STABLE [ff4fb4cc1] 2018-07-19 20:25:05 +0300
--->
- <para>
- Fix <application>libpq</application>'s handling of some cases
- where <literal>hostaddr</literal> is specified
- (Hari Babu, Tom Lane, Robert Haas)
- </para>
-
- <para>
- <function>PQhost()</function> gave misleading or incorrect results
- in some cases. Now, it uniformly returns the host name if specified,
- or the host address if only that is specified, or the default host
- name (typically <literal>/tmp</literal>
- or <literal>localhost</literal>) if both parameters are omitted.
- </para>
-
- <para>
- Also, the wrong value might be compared to the server name when
- verifying an SSL certificate.
- </para>
-
- <para>
- Also, the wrong value might be compared to the host name field in
- <filename>~/.pgpass</filename>. Now, that field is compared to the
- host name if specified, or the host address if only that is specified,
- or <literal>localhost</literal> if both parameters are omitted.
- </para>
-
- <para>
- Also, an incorrect error message was reported for an unparseable
- <literal>hostaddr</literal> value.
- </para>
-
- <para>
- Also, when the <literal>host</literal>, <literal>hostaddr</literal>,
- or <literal>port</literal> parameters contain comma-separated
- lists, <application>libpq</application> is now more careful to treat
- empty elements of a list as selecting the default behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-Branch: master Release: REL_11_BR [4c8156d87] 2018-06-18 18:33:53 +1200
-Branch: REL_10_STABLE [3566873f2] 2018-06-26 19:49:52 +1200
-Branch: REL9_6_STABLE [b5b973ef0] 2018-06-26 20:54:09 +1200
-Branch: REL9_5_STABLE [3bc19d0d2] 2018-06-26 20:54:40 +1200
-Branch: REL9_4_STABLE [db05d0b90] 2018-06-26 23:21:39 +1200
-Branch: REL9_3_STABLE [edabd8f5a] 2018-06-26 23:37:49 +1200
--->
- <para>
- Add a string freeing function
- to <application>ecpg</application>'s <filename>pgtypes</filename>
- library, so that cross-module memory management problems can be
- avoided on Windows (Takayuki Tsunakawa)
- </para>
-
- <para>
- On Windows, crashes can ensue if the <function>free</function> call
- for a given chunk of memory is not made from the same DLL
- that <function>malloc</function>'ed the memory.
- The <filename>pgtypes</filename> library sometimes returns strings
- that it expects the caller to free, making it impossible to follow
- this rule. Add a <function>PGTYPESchar_free()</function> function
- that just wraps <function>free</function>, allowing applications
- to follow this rule.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [f586f8638] 2018-05-18 12:52:28 -0400
-Branch: REL_10_STABLE [cf39aebf1] 2018-05-18 12:52:28 -0400
-Branch: REL9_6_STABLE [25caeae8d] 2018-05-18 12:52:28 -0400
-Branch: REL9_5_STABLE [11a110595] 2018-05-18 12:52:28 -0400
-Branch: REL9_4_STABLE [385f4acbf] 2018-05-18 12:52:28 -0400
-Branch: REL9_3_STABLE [63d3e787f] 2018-05-18 12:52:28 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [a6228128f] 2018-05-18 22:42:10 -0400
-Branch: REL_10_STABLE [c964c2147] 2018-05-18 22:42:10 -0400
-Branch: REL9_6_STABLE [4ffd7909c] 2018-05-18 22:42:10 -0400
-Branch: REL9_5_STABLE [95fef6e82] 2018-05-18 22:42:10 -0400
-Branch: REL9_4_STABLE [023aa76e1] 2018-05-18 22:42:10 -0400
-Branch: REL9_3_STABLE [e9f475f99] 2018-05-18 22:42:10 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [06f66cff9] 2018-05-19 14:22:18 -0400
-Branch: REL_10_STABLE [a5be529aa] 2018-05-19 14:22:18 -0400
-Branch: REL9_6_STABLE [22d22e4bd] 2018-05-19 14:22:18 -0400
-Branch: REL9_5_STABLE [7329af6b9] 2018-05-19 14:22:18 -0400
-Branch: REL9_4_STABLE [8109f201d] 2018-05-19 14:22:19 -0400
-Branch: REL9_3_STABLE [91f3bcc9e] 2018-05-19 14:22:19 -0400
--->
- <para>
- Fix <application>ecpg</application>'s support for <type>long
- long</type> variables on Windows, as well as other platforms that
- declare <function>strtoll</function>/<function>strtoull</function>
- nonstandardly or not at all (Dang Minh Huong, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [9a8aa25cc] 2018-05-25 14:31:06 -0400
-Branch: REL_10_STABLE [5a225b0d6] 2018-05-25 14:31:06 -0400
-Branch: REL9_6_STABLE [f9ecb6cab] 2018-05-25 14:31:07 -0400
-Branch: REL9_5_STABLE [004293c66] 2018-05-25 14:31:07 -0400
-Branch: REL9_4_STABLE [98d522a1d] 2018-05-25 14:31:07 -0400
-Branch: REL9_3_STABLE [da757bf0f] 2018-05-25 14:31:07 -0400
--->
- <para>
- Fix misidentification of SQL statement type in PL/pgSQL, when a rule
- change causes a change in the semantics of a statement intra-session
- (Tom Lane)
- </para>
-
- <para>
- This error led to assertion failures, or in rare cases, failure to
- enforce the <literal>INTO STRICT</literal> option as expected.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [50485b3e2] 2018-05-23 19:04:34 -0400
-Branch: REL_10_STABLE [bed74e9d4] 2018-05-23 19:04:34 -0400
-Branch: REL9_6_STABLE [bbaf75ee0] 2018-05-23 19:04:34 -0400
-Branch: REL9_5_STABLE [085791b8a] 2018-05-23 19:04:34 -0400
-Branch: REL9_4_STABLE [09fb2d5d3] 2018-05-23 19:04:34 -0400
-Branch: REL9_3_STABLE [3466b0202] 2018-05-23 19:04:34 -0400
--->
- <para>
- Fix password prompting in client programs so that echo is properly
- disabled on Windows when <literal>stdin</literal> is not the
- terminal (Matthew Stickney)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3eb76b39] 2018-07-31 13:00:14 -0400
-Branch: REL_11_STABLE [a56c11d44] 2018-07-31 13:00:08 -0400
-Branch: REL_10_STABLE [31b29b1b3] 2018-07-31 13:00:08 -0400
-Branch: REL9_6_STABLE [6680d19a8] 2018-07-31 13:00:08 -0400
-Branch: REL9_5_STABLE [12f2d814a] 2018-07-31 13:00:08 -0400
-Branch: REL9_4_STABLE [88adf1add] 2018-07-31 13:00:08 -0400
-Branch: REL9_3_STABLE [461e2e433] 2018-07-31 13:00:08 -0400
--->
- <para>
- Further fix mis-quoting of values for list-valued GUC variables in
- dumps (Tom Lane)
- </para>
-
- <para>
- The previous fix for quoting of <varname>search_path</varname> and
- other list-valued variables in <application>pg_dump</application>
- output turned out to misbehave for empty-string list elements, and it
- risked truncation of long file paths.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c0a552921] 2018-07-30 12:35:49 -0400
-Branch: REL_11_STABLE [f6ef3ed43] 2018-07-30 12:35:49 -0400
-Branch: REL_10_STABLE [96b1d984f] 2018-07-30 12:35:49 -0400
-Branch: REL9_6_STABLE [8c7f64b0e] 2018-07-30 12:35:49 -0400
-Branch: REL9_5_STABLE [b868c08eb] 2018-07-30 12:35:49 -0400
-Branch: REL9_4_STABLE [addf9e1bd] 2018-07-30 12:35:49 -0400
--->
- <para>
- Fix <application>pg_dump</application>'s failure to
- dump <literal>REPLICA IDENTITY</literal> properties for constraint
- indexes (Tom Lane)
- </para>
-
- <para>
- Manually created unique indexes were properly marked, but not those
- created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
- KEY</literal> constraints.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-Branch: master [244142d32] 2018-07-28 15:01:55 -0400
-Branch: REL_11_STABLE [113224848] 2018-07-28 15:01:55 -0400
-Branch: REL_10_STABLE [9a13e7f0f] 2018-07-28 15:01:55 -0400
-Branch: REL9_6_STABLE [a326ca75b] 2018-07-28 15:01:55 -0400
-Branch: REL9_5_STABLE [260fe9f2b] 2018-07-28 15:01:55 -0400
-Branch: REL9_4_STABLE [f87878106] 2018-07-28 15:01:55 -0400
-Branch: REL9_3_STABLE [a5c84e0b7] 2018-07-28 15:01:55 -0400
-Branch: master [b6d6488a3] 2018-07-31 18:10:06 -0400
-Branch: REL_11_STABLE [920001633] 2018-07-31 18:10:06 -0400
-Branch: REL_10_STABLE [d8dd8d221] 2018-07-31 18:10:06 -0400
-Branch: REL9_6_STABLE [764e21db0] 2018-07-31 18:10:06 -0400
-Branch: REL9_5_STABLE [92a11a0d8] 2018-07-31 18:10:06 -0400
-Branch: REL9_4_STABLE [12dd07008] 2018-07-31 18:10:06 -0400
-Branch: REL9_3_STABLE [a1d383ab5] 2018-07-31 18:10:06 -0400
-Branch: REL9_3_STABLE [dfc71a1b2] 2018-07-31 19:06:32 -0400
--->
- <para>
- Make <application>pg_upgrade</application> check that the old server
- was shut down cleanly (Bruce Momjian)
- </para>
-
- <para>
- The previous check could be fooled by an immediate-mode shutdown.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [e3b7f7cc5] 2018-06-18 15:55:06 -0400
-Branch: REL_10_STABLE [7594b7a53] 2018-06-18 15:55:06 -0400
-Branch: REL9_6_STABLE [1bebfb9b6] 2018-06-18 15:55:06 -0400
-Branch: REL9_5_STABLE [645929c54] 2018-06-18 15:55:06 -0400
--->
- <para>
- Fix <filename>contrib/hstore_plperl</filename> to look through Perl
- scalar references, and to not crash if it doesn't find a hash
- reference where it expects one (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [28a1ae534] 2018-07-13 18:45:30 -0400
-Branch: REL_11_STABLE [dbd7f4e7c] 2018-07-13 18:45:30 -0400
-Branch: REL_10_STABLE [1f47eb08c] 2018-07-13 18:45:30 -0400
-Branch: REL9_6_STABLE [330cad2c4] 2018-07-13 18:45:30 -0400
-Branch: REL9_5_STABLE [ac6b69c19] 2018-07-13 18:45:30 -0400
-Branch: REL9_4_STABLE [f8e8be7f2] 2018-07-13 18:45:30 -0400
-Branch: REL9_3_STABLE [cbbe75fe6] 2018-07-13 18:45:30 -0400
--->
- <para>
- Fix crash in <filename>contrib/ltree</filename>'s
- <function>lca()</function> function when the input array is empty
- (Pierre Ducroquet)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [81256cd05] 2018-05-21 00:32:28 -0400
-Branch: REL_10_STABLE [28782d7e3] 2018-05-21 00:32:39 -0400
-Branch: REL9_6_STABLE [1545ca9a7] 2018-05-21 00:32:44 -0400
-Branch: REL9_5_STABLE [ced0cdc76] 2018-05-21 00:32:48 -0400
-Branch: REL9_4_STABLE [5517367e9] 2018-05-21 00:32:52 -0400
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master Release: REL_11_BR [6cb337241] 2018-06-25 11:19:05 +0900
-Branch: REL_10_STABLE [6eec6724f] 2018-06-25 11:20:19 +0900
-Branch: REL9_6_STABLE [7fdf56b0a] 2018-06-25 11:20:50 +0900
-Branch: REL9_5_STABLE [910e2aca1] 2018-06-25 11:21:49 +0900
-Branch: REL9_4_STABLE [79b5b101f] 2018-06-25 11:22:02 +0900
-Branch: REL9_3_STABLE [f53ed82b7] 2018-06-25 11:22:24 +0900
-Author: Michael Paquier <michael@paquier.xyz>
-Branch: master [5a23c74b6] 2018-08-05 05:31:18 +0900
-Branch: REL_11_STABLE [58673b4a5] 2018-08-05 05:31:56 +0900
-Branch: REL_10_STABLE [7124e6452] 2018-08-05 05:32:12 +0900
-Branch: REL9_6_STABLE [f5b4bb881] 2018-08-05 05:32:27 +0900
-Branch: REL9_5_STABLE [afd5fde85] 2018-08-05 05:32:37 +0900
-Branch: REL9_4_STABLE [e69a3ac4a] 2018-08-05 05:32:44 +0900
-Branch: REL9_3_STABLE [69599cc49] 2018-08-05 05:32:54 +0900
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master Release: REL_11_BR [cfb758b6d] 2018-05-18 17:54:18 +0200
-Branch: REL_10_STABLE [29ce50091] 2018-05-18 17:53:12 +0200
-Branch: REL9_6_STABLE [830e8e360] 2018-05-18 17:53:15 +0200
-Branch: REL9_5_STABLE [714d8e5fa] 2018-05-18 17:53:17 +0200
-Branch: REL9_4_STABLE [b5f096d50] 2018-05-18 17:53:19 +0200
-Branch: REL9_3_STABLE [048caa556] 2018-05-18 17:53:20 +0200
--->
- <para>
- Fix various error-handling code paths in which an incorrect error code
- might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [dddfc4cb2] 2018-04-03 16:26:05 -0400
-Branch: REL_10_STABLE [c74f48a4e] 2018-07-09 17:23:31 -0400
-Branch: REL9_6_STABLE [ccc286da1] 2018-07-09 17:23:31 -0400
-Branch: REL9_5_STABLE [6532ca57a] 2018-07-09 17:23:31 -0400
-Branch: REL9_4_STABLE [dd4e83674] 2018-07-09 17:23:32 -0400
-Branch: REL9_3_STABLE [f6f75539d] 2018-07-09 17:23:32 -0400
--->
- <para>
- Rearrange makefiles to ensure that programs link to freshly-built
- libraries (such as <filename>libpq.so</filename>) rather than ones
- that might exist in the system library directories (Tom Lane)
- </para>
-
- <para>
- This avoids problems when building on platforms that supply old copies
- of <productname>PostgreSQL</productname> libraries.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master Release: REL_11_BR [234bb985c] 2018-05-09 13:56:22 -0400
-Branch: REL_10_STABLE [aba2f5522] 2018-05-09 13:55:42 -0400
-Branch: REL9_6_STABLE [22e524d97] 2018-05-09 13:55:48 -0400
-Branch: REL9_5_STABLE [777918e34] 2018-05-09 13:55:54 -0400
-Branch: REL9_4_STABLE [32453bc5a] 2018-05-09 13:56:00 -0400
-Branch: REL9_3_STABLE [3f36e4fc5] 2018-05-09 13:56:06 -0400
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018e for DST law changes in North Korea, plus historical
- corrections for Czechoslovakia.
- </para>
-
- <para>
- This update includes a redefinition of <quote>daylight savings</quote>
- in Ireland, as well as for some past years in Namibia and
- Czechoslovakia. In those jurisdictions, legally standard time is
- observed in summer, and daylight savings time in winter, so that the
- daylight savings offset is one hour behind standard time not one hour
- ahead. This does not affect either the actual UTC offset or the
- timezone abbreviations in use; the only known effect is that
- the <structfield>is_dst</structfield> column in
- the <structname>pg_timezone_names</structname> view will now be true
- in winter and false in summer in these cases.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-4">
- <title>Release 10.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-05-10</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.3.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.4</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you use the <filename>adminpack</filename> extension,
- you should update it as per the first changelog entry below.
- </para>
-
- <para>
- Also, if the function marking mistakes mentioned in the second and
- third changelog entries below affect you, you will want to take steps
- to correct your database catalogs.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.3,
- see <xref linkend="release-10-3"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Stephen Frost <sfrost@snowman.net>
-Branch: master [7b347409f] 2018-05-07 10:10:33 -0400
-Branch: REL_10_STABLE [20f01fc45] 2018-05-07 10:10:41 -0400
-Branch: REL9_6_STABLE [53b79ab4f] 2018-05-07 10:10:45 -0400
--->
- <para>
- Remove public execute privilege
- from <filename>contrib/adminpack</filename>'s
- <function>pg_logfile_rotate()</function> function (Stephen Frost)
- </para>
-
- <para>
- <function>pg_logfile_rotate()</function> is a deprecated wrapper
- for the core function <function>pg_rotate_logfile()</function>.
- When that function was changed to rely on SQL privileges for access
- control rather than a hard-coded superuser
- check, <function>pg_logfile_rotate()</function> should have been
- updated as well, but the need for this was missed. Hence,
- if <filename>adminpack</filename> is installed, any user could
- request a logfile rotation, creating a minor security issue.
- </para>
-
- <para>
- After installing this update, administrators should
- update <filename>adminpack</filename> by performing
- <literal>ALTER EXTENSION adminpack UPDATE</literal> in each
- database in which <filename>adminpack</filename> is installed.
- (CVE-2018-1115)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [11002f8af] 2018-03-30 18:14:51 -0400
-Branch: REL_10_STABLE [283262cd9] 2018-03-30 18:14:51 -0400
-Branch: REL9_6_STABLE [91d82317d] 2018-03-30 18:14:51 -0400
-Branch: REL9_5_STABLE [ea83c7e66] 2018-03-30 18:14:51 -0400
-Branch: REL9_4_STABLE [b7537ffb1] 2018-03-30 18:14:51 -0400
-Branch: REL9_3_STABLE [485857d44] 2018-03-30 18:14:51 -0400
--->
- <para>
- Fix incorrect volatility markings on a few built-in functions
- (Thomas Munro, Tom Lane)
- </para>
-
- <para>
- The functions
- <function>query_to_xml</function>,
- <function>cursor_to_xml</function>,
- <function>cursor_to_xmlschema</function>,
- <function>query_to_xmlschema</function>, and
- <function>query_to_xml_and_xmlschema</function>
- should be marked volatile because they execute user-supplied queries
- that might contain volatile operations. They were not, leading to a
- risk of incorrect query optimization. This has been repaired for new
- installations by correcting the initial catalog data, but existing
- installations will continue to contain the incorrect markings.
- Practical use of these functions seems to pose little hazard, but in
- case of trouble, it can be fixed by manually updating these
- functions' <structname>pg_proc</structname> entries, for example
- <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean,
- boolean, text) VOLATILE</literal>. (Note that that will need to be
- done in each database of the installation.) Another option is
- to <application>pg_upgrade</application> the database to a version
- containing the corrected initial data.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [11002f8af] 2018-03-30 18:14:51 -0400
-Branch: REL_10_STABLE [283262cd9] 2018-03-30 18:14:51 -0400
-Branch: REL9_6_STABLE [91d82317d] 2018-03-30 18:14:51 -0400
--->
- <para>
- Fix incorrect parallel-safety markings on a few built-in functions
- (Thomas Munro, Tom Lane)
- </para>
-
- <para>
- The functions
- <function>brin_summarize_new_values</function>,
- <function>brin_summarize_range</function>,
- <function>brin_desummarize_range</function>,
- <function>gin_clean_pending_list</function>,
- <function>cursor_to_xml</function>,
- <function>cursor_to_xmlschema</function>,
- <function>ts_rewrite</function>,
- <function>ts_stat</function>,
- <function>binary_upgrade_create_empty_extension</function>, and
- <function>pg_import_system_collations</function>
- should be marked parallel-unsafe; some because they perform database
- modifications directly, and others because they execute user-supplied
- queries that might do so. They were marked parallel-restricted
- instead, leading to a risk of unexpected query errors. This has been
- repaired for new installations by correcting the initial catalog
- data, but existing installations will continue to contain the
- incorrect markings. Practical use of these functions seems to pose
- little hazard unless <varname>force_parallel_mode</varname> is turned
- on. In case of trouble, it can be fixed by manually updating these
- functions' <structname>pg_proc</structname> entries, for example
- <literal>ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass)
- PARALLEL UNSAFE</literal>. (Note that that will need to be done in
- each database of the installation.) Another option is
- to <application>pg_upgrade</application> the database to a version
- containing the corrected initial data.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0408e1ed5] 2018-04-11 17:41:22 -0400
-Branch: REL_10_STABLE [5a11bf970] 2018-04-11 17:41:23 -0400
-Branch: REL9_6_STABLE [8bba10f7e] 2018-04-11 17:41:25 -0400
-Branch: REL9_5_STABLE [3767216fb] 2018-04-11 17:41:26 -0400
-Branch: REL9_4_STABLE [5b3ed6b78] 2018-04-11 17:41:27 -0400
-Branch: REL9_3_STABLE [7448e7e23] 2018-04-11 17:41:28 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d1e907929] 2018-04-11 18:11:29 -0400
-Branch: REL_10_STABLE [08e6cda1c] 2018-04-11 18:11:29 -0400
-Branch: REL9_6_STABLE [060bb38d0] 2018-04-11 18:11:30 -0400
-Branch: REL9_5_STABLE [efbe36a2c] 2018-04-11 18:11:30 -0400
-Branch: REL9_4_STABLE [6943fb927] 2018-04-11 18:11:30 -0400
-Branch: REL9_3_STABLE [66d4b6bb8] 2018-04-11 18:11:30 -0400
--->
- <para>
- Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed
- TOAST entries (Pavan Deolasee)
- </para>
-
- <para>
- Once the OID counter has wrapped around, it's possible to assign a
- TOAST value whose OID matches a previously deleted entry in the same
- TOAST table. If that entry were not yet vacuumed away, this resulted
- in <quote>unexpected chunk number 0 (expected 1) for toast
- value <replaceable>nnnnn</replaceable></quote> errors, which would
- persist until the dead entry was removed
- by <command>VACUUM</command>. Fix by not selecting such OIDs when
- creating a new TOAST entry.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [cfbecf810] 2018-04-06 11:42:28 -0400
-Branch: REL_10_STABLE [29ab1e24a] 2018-04-06 11:52:38 -0400
--->
- <para>
- Correctly enforce any <literal>CHECK</literal> constraints on
- individual partitions during <command>COPY</command> to a partitioned
- table (Etsuro Fujita)
- </para>
-
- <para>
- Previously, only constraints declared for the partitioned table as a
- whole were checked.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [4df58f7ed] 2018-04-23 15:29:11 -0400
-Branch: REL_10_STABLE [1222db999] 2018-04-23 15:29:12 -0400
--->
- <para>
- Accept <literal>TRUE</literal> and <literal>FALSE</literal> as
- partition bound values (Amit Langote)
- </para>
-
- <para>
- Previously, only string-literal values were accepted for a boolean
- partitioning column. But then <application>pg_dump</application>
- would print such values as <literal>TRUE</literal>
- or <literal>FALSE</literal>, leading to dump/reload failures.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [a4d56f583] 2018-04-12 15:08:10 -0300
-Branch: REL_10_STABLE [5f11c6ec6] 2018-04-12 15:08:25 -0300
--->
- <para>
- Fix memory management for partition key comparison functions
- (Álvaro Herrera, Amit Langote)
- </para>
-
- <para>
- This error could lead to crashes when using user-defined operator
- classes for partition keys.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [6666ee49f] 2018-03-19 17:45:53 -0300
-Branch: REL_10_STABLE [e3faddf53] 2018-03-19 17:43:55 -0300
--->
- <para>
- Fix possible crash when a query inserts tuples in several partitions
- of a partitioned table, and those partitions don't have identical row
- types (Etsuro Fujita, Amit Langote)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d04900de7] 2018-03-13 13:24:27 -0400
-Branch: REL_10_STABLE [1bfb56723] 2018-03-13 13:24:27 -0400
-Branch: REL9_6_STABLE [c2c4bc628] 2018-03-13 13:24:27 -0400
-Branch: REL9_5_STABLE [c9414e786] 2018-03-13 13:24:27 -0400
-Branch: REL9_4_STABLE [25a2ba35e] 2018-03-13 13:24:27 -0400
-Branch: REL9_3_STABLE [d44ce7b1a] 2018-03-13 13:24:27 -0400
--->
- <para>
- Change <command>ANALYZE</command>'s algorithm for updating
- <structname>pg_class</structname>.<structfield>reltuples</structfield>
- (David Gould)
- </para>
-
- <para>
- Previously, pages not actually scanned by <command>ANALYZE</command>
- were assumed to retain their old tuple density. In a large table
- where <command>ANALYZE</command> samples only a small fraction of the
- pages, this meant that the overall tuple density estimate could not
- change very much, so that <structfield>reltuples</structfield> would
- change nearly proportionally to changes in the table's physical size
- (<structfield>relpages</structfield>) regardless of what was actually
- happening in the table. This has been observed to result
- in <structfield>reltuples</structfield> becoming so much larger than
- reality as to effectively shut off autovacuuming. To fix, assume
- that <command>ANALYZE</command>'s sample is a statistically unbiased
- sample of the table (as it should be), and just extrapolate the
- density observed within those pages to the whole table.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [5564c1181] 2018-03-05 19:37:19 -0300
-Branch: REL_10_STABLE [911e6236b] 2018-03-05 19:37:19 -0300
--->
- <para>
- Include extended-statistics objects in the set of table properties
- duplicated by <command>CREATE TABLE ... LIKE ... INCLUDING
- ALL</command> (David Rowley)
- </para>
-
- <para>
- Also add an <literal>INCLUDING STATISTICS</literal> option, to allow
- finer-grained control over whether this happens.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [377b5ac48] 2018-03-13 09:41:30 -0400
-Branch: REL_10_STABLE [c32f44c4a] 2018-03-13 09:41:36 -0400
--->
- <para>
- Fix <command>CREATE TABLE ... LIKE</command> with <type>bigint</type>
- identity columns (Peter Eisentraut)
- </para>
-
- <para>
- On platforms where <type>long</type> is 32 bits (which includes
- 64-bit Windows as well as most 32-bit machines), copied sequence
- parameters would be truncated to 32 bits.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1dec82068] 2018-04-18 12:07:37 -0400
-Branch: REL_10_STABLE [94a898f69] 2018-04-18 12:07:37 -0400
-Branch: REL9_6_STABLE [69e3a548e] 2018-04-18 12:07:37 -0400
-Branch: REL9_5_STABLE [82acf3eb7] 2018-04-18 12:07:38 -0400
-Branch: REL9_4_STABLE [7490ce725] 2018-04-18 12:07:38 -0400
--->
- <para>
- Avoid deadlocks in concurrent <command>CREATE INDEX
- CONCURRENTLY</command> commands that are run
- under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE
- READ</literal> transaction isolation (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6fbd5cce2] 2018-03-19 17:23:21 -0400
-Branch: REL_10_STABLE [1568156d8] 2018-03-19 17:23:23 -0400
-Branch: REL9_6_STABLE [ebcf34d46] 2018-03-19 17:23:07 -0400
-Branch: REL9_5_STABLE [c553e4a50] 2018-03-19 17:23:07 -0400
-Branch: REL9_4_STABLE [b6ba94ec4] 2018-03-19 17:23:07 -0400
--->
- <para>
- Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8f5ac4404] 2018-03-17 14:59:49 -0400
-Branch: REL_10_STABLE [ee7bf0fd9] 2018-03-17 14:59:31 -0400
-Branch: REL9_6_STABLE [12d18b487] 2018-03-17 14:59:31 -0400
-Branch: REL9_5_STABLE [7de7ddb27] 2018-03-17 14:59:31 -0400
-Branch: REL9_4_STABLE [0a0721f84] 2018-03-17 14:59:31 -0400
-Branch: REL9_3_STABLE [5b77c11da] 2018-03-17 14:59:31 -0400
--->
- <para>
- Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail
- when the referenced cursor uses an index-only-scan plan (Yugo Nagata,
- Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e5d83995e] 2018-04-19 15:49:30 -0400
-Branch: REL_10_STABLE [68fab04f7] 2018-04-19 15:49:12 -0400
-Branch: REL9_6_STABLE [0c141fcaa] 2018-04-19 15:49:12 -0400
-Branch: REL9_5_STABLE [e4e43a16b] 2018-04-19 15:49:12 -0400
-Branch: REL9_4_STABLE [a347d5210] 2018-04-19 15:49:12 -0400
-Branch: REL9_3_STABLE [e1d4398c0] 2018-04-19 15:49:12 -0400
-Branch: REL9_6_STABLE [306d6e59f] 2018-04-19 18:29:39 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c792c7db4] 2018-04-20 15:19:16 -0400
-Branch: REL_10_STABLE [8b6294c7a] 2018-04-20 15:19:16 -0400
-Branch: REL9_6_STABLE [64ad85860] 2018-04-20 15:19:17 -0400
-Branch: REL9_5_STABLE [80e12a621] 2018-04-20 15:19:17 -0400
-Branch: REL9_4_STABLE [58fec9526] 2018-04-20 15:19:17 -0400
-Branch: REL9_3_STABLE [9680c120e] 2018-04-20 15:19:17 -0400
--->
- <para>
- Fix incorrect planning of join clauses pushed into parameterized
- paths (Andrew Gierth, Tom Lane)
- </para>
-
- <para>
- This error could result in misclassifying a condition as
- a <quote>join filter</quote> for an outer join when it should be a
- plain <quote>filter</quote> condition, leading to incorrect join
- output.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b5febc1d1] 2018-03-01 15:35:03 -0500
-Branch: REL_10_STABLE [147b59971] 2018-03-01 15:35:03 -0500
-Branch: REL9_6_STABLE [3f26be83e] 2018-03-01 15:35:03 -0500
-Branch: REL9_5_STABLE [be55bfc93] 2018-03-01 15:35:03 -0500
--->
- <para>
- Fix possibly incorrect generation of an index-only-scan plan when the
- same table column appears in multiple index columns, and only some of
- those index columns use operator classes that can return the column
- value (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [4a4e2442a] 2018-03-11 18:10:42 -0400
-Branch: REL_10_STABLE [e2ed3c4a3] 2018-03-11 18:10:42 -0400
-Branch: REL9_6_STABLE [976e5844e] 2018-03-11 18:10:42 -0400
-Branch: REL9_5_STABLE [106d58805] 2018-03-11 18:10:42 -0400
-Branch: REL9_4_STABLE [e556fb137] 2018-03-11 18:10:42 -0400
-Branch: REL9_3_STABLE [925581d89] 2018-03-11 18:10:43 -0400
--->
- <para>
- Fix misoptimization of <literal>CHECK</literal> constraints having
- provably-NULL subclauses of
- top-level <literal>AND</literal>/<literal>OR</literal> conditions
- (Tom Lane, Dean Rasheed)
- </para>
-
- <para>
- This could, for example, allow constraint exclusion to exclude a
- child table that should not be excluded from a query.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Gierth <rhodiumtoad@postgresql.org>
-Branch: master [d2d79887e] 2018-03-21 11:39:28 +0000
-Branch: REL_10_STABLE [cf21c4649] 2018-03-21 11:41:53 +0000
--->
- <para>
- Prevent planner crash when a query has multiple <literal>GROUPING
- SETS</literal>, none of which can be implemented by sorting (Andrew
- Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c2d4eb1b1] 2018-03-28 13:26:57 -0400
-Branch: REL_10_STABLE [c98f218fb] 2018-03-28 13:26:43 -0400
-Branch: REL9_6_STABLE [90decdba3] 2018-03-28 13:26:43 -0400
-Branch: REL9_5_STABLE [e4ff71158] 2018-03-28 13:26:43 -0400
--->
- <para>
- Fix executor crash due to double free in some <literal>GROUPING
- SETS</literal> usages (Peter Geoghegan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e98a4de7d] 2018-02-27 15:56:51 -0500
-Branch: REL_10_STABLE [b9dac4a6e] 2018-02-27 15:56:51 -0500
--->
- <para>
- Fix misexecution of self-joins on transition tables (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b1b71f165] 2018-04-20 17:15:31 -0400
-Branch: REL_10_STABLE [fab4ecacc] 2018-04-20 17:15:31 -0400
-Branch: REL9_6_STABLE [c76d0eed2] 2018-04-20 17:15:31 -0400
-Branch: REL9_5_STABLE [168df1b84] 2018-04-20 17:15:31 -0400
--->
- <para>
- Avoid crash if a table rewrite event trigger is added concurrently
- with a command that could call such a trigger (Álvaro Herrera,
- Andrew Gierth, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [8f9be261f] 2018-05-03 20:08:29 +0300
-Branch: REL_10_STABLE [ee492e3de] 2018-05-03 20:09:02 +0300
-Branch: REL9_6_STABLE [d9b3bc552] 2018-05-03 20:09:28 +0300
-Branch: REL9_5_STABLE [d3fc427f4] 2018-05-03 20:09:47 +0300
-Branch: REL9_4_STABLE [6bd659f19] 2018-05-03 20:10:11 +0300
-Branch: REL9_3_STABLE [540e7a6e5] 2018-05-03 20:10:34 +0300
--->
- <para>
- Avoid failure if a query-cancel or session-termination interrupt
- occurs while committing a prepared transaction (Stas Kelvich)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9e17bdb8a] 2018-03-16 16:03:45 -0400
-Branch: REL_10_STABLE [bdc7f686d] 2018-03-16 16:03:45 -0400
-Branch: REL9_6_STABLE [5149dc934] 2018-03-16 16:03:45 -0400
-Branch: REL9_5_STABLE [c17a58967] 2018-03-16 16:03:45 -0400
-Branch: REL9_4_STABLE [2709549ec] 2018-03-16 16:03:45 -0400
-Branch: REL9_3_STABLE [574386ddc] 2018-03-16 16:03:45 -0400
--->
- <para>
- Fix query-lifespan memory leakage in repeatedly executed hash joins
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [0b1d1a038] 2018-03-02 17:40:48 -0500
-Branch: REL_10_STABLE [76ec45756] 2018-03-02 17:40:48 -0500
-Branch: REL9_6_STABLE [96d2df840] 2018-03-02 17:40:48 -0500
--->
- <para>
- Fix possible leak or double free of visibility map buffer pins
- (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [d2599ecfc] 2018-05-04 18:24:45 -0300
-Branch: REL_10_STABLE [e1d634758] 2018-05-04 18:23:58 -0300
-Branch: REL9_6_STABLE [3a11485a5] 2018-05-04 18:23:30 -0300
--->
- <para>
- Avoid spuriously marking pages as all-visible (Dan Wood,
- Pavan Deolasee, Álvaro Herrera)
- </para>
-
- <para>
- This could happen if some tuples were locked (but not deleted). While
- queries would still function correctly, vacuum would normally ignore
- such pages, with the long-term effect that the tuples were never
- frozen. In recent releases this would eventually result in errors
- such as <quote>found multixact <replaceable>nnnnn</replaceable> from
- before relminmxid <replaceable>nnnnn</replaceable></quote>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [477ad05e1] 2018-03-01 18:07:46 -0300
-Branch: REL_10_STABLE [aad956ada] 2018-03-01 18:07:46 -0300
-Branch: REL9_6_STABLE [0ddaaa4cf] 2018-03-01 18:07:46 -0300
-Branch: REL9_5_STABLE [491bbc36e] 2018-03-01 18:07:46 -0300
-Branch: REL9_4_STABLE [3ee23834e] 2018-03-01 18:07:46 -0300
-Branch: REL9_3_STABLE [650f3863f] 2018-03-01 18:07:46 -0300
--->
- <para>
- Fix overly strict sanity check
- in <function>heap_prepare_freeze_tuple</function>
- (Álvaro Herrera)
- </para>
-
- <para>
- This could result in incorrect <quote>cannot freeze committed
- xmax</quote> failures in databases that have
- been <application>pg_upgrade</application>'d from 9.2 or earlier.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [25b692568] 2018-02-27 13:28:02 -0500
-Branch: REL_10_STABLE [b45f821e2] 2018-02-27 13:27:38 -0500
-Branch: REL9_6_STABLE [06f47297e] 2018-02-27 13:27:38 -0500
-Branch: REL9_5_STABLE [2ee44e10d] 2018-02-27 13:27:38 -0500
-Branch: REL9_4_STABLE [5ccb77586] 2018-02-27 13:27:38 -0500
-Branch: REL9_3_STABLE [9bc33ef5e] 2018-02-27 13:27:38 -0500
--->
- <para>
- Prevent dangling-pointer dereference when a C-coded before-update row
- trigger returns the <quote>old</quote> tuple (Rushabh Lathia)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [38f7831d7] 2018-03-13 12:28:35 -0400
-Branch: REL_10_STABLE [4460964ae] 2018-03-13 12:28:36 -0400
-Branch: REL9_6_STABLE [4b0e71705] 2018-03-13 12:28:37 -0400
-Branch: REL9_5_STABLE [231329a17] 2018-03-13 12:28:38 -0400
-Branch: REL9_4_STABLE [95f08d32d] 2018-03-13 12:28:39 -0400
-Branch: REL9_3_STABLE [5328b6135] 2018-03-13 12:28:40 -0400
--->
- <para>
- Reduce locking during autovacuum worker scheduling (Jeff Janes)
- </para>
-
- <para>
- The previous behavior caused drastic loss of potential worker
- concurrency in databases with many tables.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [a820b4c32] 2018-04-11 23:39:48 +0300
-Branch: REL_10_STABLE [89c2ab340] 2018-04-11 23:40:03 +0300
-Branch: REL9_6_STABLE [74dc05e01] 2018-04-11 23:40:13 +0300
-Branch: REL9_5_STABLE [fd2efda5d] 2018-04-11 23:40:19 +0300
-Branch: REL9_4_STABLE [310d1379d] 2018-04-11 23:40:27 +0300
-Branch: REL9_3_STABLE [dfc383cf3] 2018-04-11 23:40:31 +0300
--->
- <para>
- Ensure client hostname is copied while copying
- <structname>pg_stat_activity</structname> data to local memory
- (Edmund Horner)
- </para>
-
- <para>
- Previously the supposedly-local snapshot contained a pointer into
- shared memory, allowing the client hostname column to change
- unexpectedly if any existing session disconnected.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [811969b21] 2018-04-11 23:39:49 +0300
-Branch: REL_10_STABLE [93b3d43dc] 2018-04-11 23:52:11 +0300
--->
- <para>
- Handle <structname>pg_stat_activity</structname> information for
- auxiliary processes correctly (Edmund Horner)
- </para>
-
- <para>
- The <structfield>application_name</structfield>,
- <structfield>client_hostname</structfield>,
- and <structfield>query</structfield> fields might show incorrect
- data for such processes.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [65a69dfa0] 2018-04-12 18:39:51 -0400
-Branch: REL_10_STABLE [40132187e] 2018-04-12 18:39:51 -0400
-Branch: REL9_6_STABLE [0f439c8dd] 2018-04-12 18:39:51 -0400
-Branch: REL9_5_STABLE [906e44d4d] 2018-04-12 18:39:51 -0400
-Branch: REL9_4_STABLE [f71d803c8] 2018-04-12 18:39:51 -0400
-Branch: REL9_3_STABLE [ac8ea0f27] 2018-04-12 18:39:52 -0400
--->
- <para>
- Fix incorrect processing of multiple compound affixes
- in <literal>ispell</literal> dictionaries (Arthur Zakirov)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b15e8f71d] 2018-04-16 16:06:58 -0400
-Branch: REL_10_STABLE [3397c6727] 2018-04-16 16:06:47 -0400
-Branch: REL9_6_STABLE [d90b2904c] 2018-04-16 16:06:47 -0400
-Branch: REL9_5_STABLE [93053aca5] 2018-04-16 16:06:47 -0400
-Branch: REL9_4_STABLE [608d1f971] 2018-04-16 16:06:47 -0400
-Branch: REL9_3_STABLE [cf73a5b34] 2018-04-16 16:06:47 -0400
--->
- <para>
- Fix collation-aware searches (that is, indexscans using inequality
- operators) in SP-GiST indexes on text columns (Tom Lane)
- </para>
-
- <para>
- Such searches would return the wrong set of rows in most non-C
- locales.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [467963c3e] 2018-03-19 23:59:30 -0400
-Branch: REL_10_STABLE [d18a88acf] 2018-03-19 23:59:17 -0400
-Branch: REL9_6_STABLE [57ef2da43] 2018-03-19 23:59:17 -0400
--->
- <para>
- Prevent query-lifespan memory leakage with SP-GiST operator classes
- that use traversal values (Anton Dignös)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [649f17925] 2018-03-22 13:24:05 -0400
-Branch: REL_10_STABLE [bf14575c8] 2018-03-22 13:23:48 -0400
-Branch: REL9_6_STABLE [db35bf507] 2018-03-22 13:23:48 -0400
-Branch: REL9_5_STABLE [eee190da7] 2018-03-22 13:23:48 -0400
-Branch: REL9_4_STABLE [7f6f8ccd9] 2018-03-22 13:23:48 -0400
-Branch: REL9_3_STABLE [46f80803a] 2018-03-22 13:23:48 -0400
--->
- <para>
- Count the number of index tuples correctly during initial build of an
- SP-GiST index (Tomas Vondra)
- </para>
-
- <para>
- Previously, the tuple count was reported to be the same as that of
- the underlying table, which is wrong if the index is partial.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [81b9b5ce4] 2018-03-02 11:22:42 -0500
-Branch: REL_10_STABLE [ccd650430] 2018-03-02 11:22:42 -0500
-Branch: REL9_6_STABLE [529137cac] 2018-03-02 11:22:42 -0500
-Branch: REL9_5_STABLE [46d98da43] 2018-03-02 11:22:42 -0500
-Branch: REL9_4_STABLE [947f06c62] 2018-03-02 11:22:42 -0500
-Branch: REL9_3_STABLE [6b56f0752] 2018-03-02 11:22:42 -0500
--->
- <para>
- Count the number of index tuples correctly during vacuuming of a
- GiST index (Andrey Borodin)
- </para>
-
- <para>
- Previously it reported the estimated number of heap tuples,
- which might be inaccurate, and is certainly wrong if the
- index is partial.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-Branch: master [066871980] 2018-05-05 01:34:53 +0300
-Branch: REL_10_STABLE [ca572db22] 2018-05-05 01:35:09 +0300
-Branch: REL9_6_STABLE [7b7521d65] 2018-05-05 01:35:12 +0300
-Branch: REL9_5_STABLE [4ea8f7d45] 2018-05-05 01:35:15 +0300
-Branch: REL9_4_STABLE [c06380e97] 2018-05-05 01:35:18 +0300
--->
- <para>
- Fix a corner case where a streaming standby gets stuck at a WAL
- continuation record (Kyotaro Horiguchi)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [8aa75e138] 2018-03-06 18:34:29 -0300
-Branch: REL_10_STABLE [cee1dd1ee] 2018-03-06 16:20:54 -0300
-Branch: REL9_6_STABLE [8e5c2afa9] 2018-03-06 16:20:13 -0300
-Branch: REL9_5_STABLE [d4429d50a] 2018-03-06 16:20:03 -0300
-Branch: REL9_4_STABLE [6d30e3a2b] 2018-03-06 16:10:23 -0300
--->
- <para>
- In logical decoding, avoid possible double processing of WAL data
- when a walsender restarts (Craig Ringer)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [24c0a6c64] 2018-03-14 21:34:26 -0300
-Branch: REL_10_STABLE [3c3450e74] 2018-03-14 21:34:21 -0300
--->
- <para>
- Fix logical replication to not assume that type OIDs match between
- the local and remote servers (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [58d9acc18] 2018-03-03 20:31:35 -0500
-Branch: REL_10_STABLE [bfade0e51] 2018-03-03 20:31:35 -0500
-Branch: REL9_6_STABLE [e2108f581] 2018-03-03 20:31:35 -0500
-Branch: REL9_5_STABLE [ad3e3d731] 2018-03-03 20:31:35 -0500
-Branch: REL9_4_STABLE [165fa27fe] 2018-03-03 20:31:35 -0500
-Branch: REL9_3_STABLE [0bea99bd9] 2018-03-03 20:31:35 -0500
--->
- <para>
- Allow <function>scalarltsel</function>
- and <function>scalargtsel</function> to be used on non-core datatypes
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d25c2ee9c] 2018-04-13 12:53:45 -0400
-Branch: REL_10_STABLE [d014b38df] 2018-04-13 12:53:45 -0400
-Branch: REL9_6_STABLE [131f6a958] 2018-04-13 12:53:46 -0400
-Branch: REL9_5_STABLE [2278e94ae] 2018-04-13 12:53:46 -0400
-Branch: REL9_4_STABLE [3dd36aa4b] 2018-04-13 12:53:46 -0400
-Branch: REL9_3_STABLE [bbec33c2d] 2018-04-13 12:53:46 -0400
--->
- <para>
- Reduce <application>libpq</application>'s memory consumption when a
- server error is reported after a large amount of query output has
- been collected (Tom Lane)
- </para>
-
- <para>
- Discard the previous output before, not after, processing the error
- message. On some platforms, notably Linux, this can make a
- difference in the application's subsequent memory footprint.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [b32fad52e] 2018-03-13 16:22:28 +0100
-Branch: REL_10_STABLE [fe65f5931] 2018-03-13 16:23:25 +0100
-Branch: REL9_6_STABLE [44a36a8d9] 2018-03-12 23:53:39 +0100
-Branch: REL9_5_STABLE [95f026021] 2018-03-12 23:53:46 +0100
-Branch: REL9_4_STABLE [bd7eb6fe6] 2018-03-12 23:54:22 +0100
-Branch: REL9_3_STABLE [042badc37] 2018-03-12 23:54:29 +0100
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [db2fc801f] 2018-03-14 00:51:17 +0100
-Branch: REL_10_STABLE [8559b40c5] 2018-03-14 00:50:39 +0100
-Branch: REL9_6_STABLE [8e3f3ab5b] 2018-03-14 00:51:58 +0100
-Branch: REL9_5_STABLE [837d4f739] 2018-03-14 00:52:11 +0100
-Branch: REL9_4_STABLE [fcc15bf38] 2018-03-14 00:52:21 +0100
-Branch: REL9_3_STABLE [09f4ca92b] 2018-03-14 00:52:45 +0100
--->
- <para>
- Fix double-free crashes in <application>ecpg</application>
- (Patrick Krecker, Jeevan Ladhe)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [51057feaa] 2018-02-27 16:46:52 -0500
-Branch: REL_10_STABLE [fda3e6578] 2018-02-27 16:46:52 -0500
-Branch: REL9_6_STABLE [7ee8005ce] 2018-02-27 16:46:52 -0500
-Branch: REL9_5_STABLE [f171cbe0d] 2018-02-27 16:46:52 -0500
-Branch: REL9_4_STABLE [49f9014c8] 2018-02-27 16:46:52 -0500
-Branch: REL9_3_STABLE [87b7e1e88] 2018-02-27 16:46:52 -0500
--->
- <para>
- Fix <application>ecpg</application> to handle <type>long long
- int</type> variables correctly in MSVC builds (Michael Meskes,
- Andrew Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [742869946] 2018-03-21 20:03:28 -0400
-Branch: REL_10_STABLE [66e92878a] 2018-03-21 20:03:28 -0400
-Branch: REL9_6_STABLE [8132f0f38] 2018-03-21 20:03:28 -0400
-Branch: REL9_5_STABLE [a35d72923] 2018-03-21 20:03:28 -0400
-Branch: REL9_4_STABLE [67e02cde7] 2018-03-21 20:03:28 -0400
-Branch: REL9_3_STABLE [be677bb5a] 2018-03-21 20:03:29 -0400
--->
- <para>
- Fix mis-quoting of values for list-valued GUC variables in dumps
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- The <varname>local_preload_libraries</varname>,
- <varname>session_preload_libraries</varname>,
- <varname>shared_preload_libraries</varname>,
- and <varname>temp_tablespaces</varname> variables were not correctly
- quoted in <application>pg_dump</application> output. This would
- cause problems if settings for these variables appeared in
- <command>CREATE FUNCTION ... SET</command> or <command>ALTER
- DATABASE/ROLE ... SET</command> clauses.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [8d2814f27] 2018-03-18 13:08:25 +0100
-Branch: REL_10_STABLE [e7d3a37d9] 2018-03-18 13:11:27 +0100
-Branch: REL9_6_STABLE [59743deca] 2018-03-18 13:11:40 +0100
-Branch: REL9_5_STABLE [24ff0fe87] 2018-03-18 13:11:49 +0100
-Branch: REL9_4_STABLE [af5fbb128] 2018-03-18 13:11:58 +0100
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [6336b6dfc] 2018-04-25 18:50:29 -0700
-Branch: REL_10_STABLE [c7cc9b7d4] 2018-04-25 18:50:32 -0700
-Branch: REL9_6_STABLE [32c247629] 2018-04-25 18:50:33 -0700
-Branch: REL9_5_STABLE [24f1e9ca0] 2018-04-25 18:50:33 -0700
-Branch: REL9_4_STABLE [bb532859f] 2018-04-25 18:50:34 -0700
--->
- <para>
- Fix <application>pg_recvlogical</application> to not fail against
- pre-v10 <productname>PostgreSQL</productname> servers
- (Michael Paquier)
- </para>
-
- <para>
- A previous fix caused <application>pg_recvlogical</application> to
- issue a command regardless of server version, but it should only be
- issued to v10 and later servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [09e96b3f3] 2018-03-29 04:00:21 +0900
-Branch: REL_10_STABLE [f1e07d576] 2018-03-29 04:01:43 +0900
-Branch: REL9_6_STABLE [52c32d8d8] 2018-03-29 04:02:08 +0900
-Branch: REL9_5_STABLE [b33e38cb1] 2018-03-29 04:02:34 +0900
--->
- <para>
- Ensure that <application>pg_rewind</application> deletes files on the
- target server if they are deleted from the source server during the
- run (Takayuki Tsunakawa)
- </para>
-
- <para>
- Failure to do this could result in data inconsistency on the target,
- particularly if the file in question is a WAL segment.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: master [2f3e2340c] 2018-03-06 02:08:18 +0900
-Branch: REL_10_STABLE [bca696ab0] 2018-03-06 02:09:12 +0900
-Branch: REL9_6_STABLE [7aba4f23f] 2018-03-06 02:10:41 +0900
-Branch: REL9_5_STABLE [cb5c141ed] 2018-03-06 02:12:06 +0900
--->
- <para>
- Fix <application>pg_rewind</application> to handle tables in
- non-default tablespaces correctly (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2dbee9f19] 2018-03-17 15:38:15 -0400
-Branch: REL_10_STABLE [04c76acab] 2018-03-17 15:38:15 -0400
-Branch: REL9_6_STABLE [5917297bf] 2018-03-17 15:38:15 -0400
-Branch: REL9_5_STABLE [b3fade55c] 2018-03-17 15:38:15 -0400
-Branch: REL9_4_STABLE [092401b14] 2018-03-17 15:38:15 -0400
-Branch: REL9_3_STABLE [f1f7a85d8] 2018-03-17 15:38:15 -0400
--->
- <para>
- Fix overflow handling in <application>PL/pgSQL</application>
- integer <command>FOR</command> loops (Tom Lane)
- </para>
-
- <para>
- The previous coding failed to detect overflow of the loop variable
- on some non-gcc compilers, leading to an infinite loop.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [fa03769e4] 2018-05-03 13:13:09 -0400
-Branch: master [7d8679975] 2018-05-03 20:29:54 -0400
-Branch: REL_10_STABLE [8f1787a8f] 2018-05-05 23:03:44 -0400
-Branch: REL9_6_STABLE [ab7825ead] 2018-05-05 23:34:41 -0400
-Branch: REL9_5_STABLE [b812d6372] 2018-05-05 23:48:19 -0400
-Branch: REL9_4_STABLE [af9e0d5cd] 2018-05-05 23:53:05 -0400
-Branch: REL9_3_STABLE [e7f904715] 2018-05-05 23:54:04 -0400
--->
- <para>
- Adjust <application>PL/Python</application> regression tests to pass
- under Python 3.7 (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [966268c76] 2018-05-04 15:22:48 -0400
-Branch: REL_10_STABLE [56a45646d] 2018-05-04 15:32:31 -0400
-Branch: REL9_6_STABLE [a9fbf550b] 2018-05-04 15:33:06 -0400
-Branch: REL9_5_STABLE [c1f3638d2] 2018-05-04 15:33:18 -0400
-Branch: REL9_4_STABLE [134db37d2] 2018-05-04 15:51:31 -0400
-Branch: REL9_3_STABLE [af39c1da7] 2018-05-04 15:56:01 -0400
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [2b9bdda74] 2018-05-06 07:37:05 -0400
-Branch: REL_10_STABLE [0e6114be8] 2018-05-06 07:39:05 -0400
-Branch: REL9_6_STABLE [289bafdbc] 2018-05-06 07:39:37 -0400
-Branch: REL9_5_STABLE [3b17d4b9d] 2018-05-06 07:39:51 -0400
-Branch: REL9_4_STABLE [1eb24720c] 2018-05-06 07:40:04 -0400
-Branch: REL9_3_STABLE [a75b01c61] 2018-05-06 07:40:25 -0400
--->
- <para>
- Support testing <application>PL/Python</application> and related
- modules when building with Python 3 and MSVC (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c35b47286] 2018-03-22 13:14:07 -0400
-Branch: REL_10_STABLE [76e2b5ae4] 2018-03-22 13:13:58 -0400
-Branch: REL9_6_STABLE [df9040155] 2018-03-22 13:13:58 -0400
--->
- <para>
- Fix errors in initial build of <filename>contrib/bloom</filename>
- indexes (Tomas Vondra, Tom Lane)
- </para>
-
- <para>
- Fix possible omission of the table's last tuple from the index.
- Count the number of index tuples correctly, in case it is a partial
- index.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [43e949086] 2018-02-28 18:33:45 -0500
-Branch: REL_10_STABLE [aac6286d8] 2018-02-28 18:33:45 -0500
-Branch: REL9_6_STABLE [11e7700e5] 2018-02-28 18:33:45 -0500
-Branch: REL9_5_STABLE [679df2b8d] 2018-02-28 18:33:45 -0500
-Branch: REL9_4_STABLE [d07f79a9c] 2018-02-28 18:33:45 -0500
-Branch: REL9_3_STABLE [10102c91e] 2018-02-28 18:33:45 -0500
--->
- <para>
- Rename internal <function>b64_encode</function>
- and <function>b64_decode</function> functions to avoid conflict with
- Solaris 11.4 built-in functions (Rainer Orth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b45f6613e] 2018-05-04 12:26:25 -0400
-Branch: REL_10_STABLE [b49f4e69a] 2018-05-04 12:26:34 -0400
-Branch: REL9_6_STABLE [7a83323f2] 2018-05-04 12:26:39 -0400
-Branch: REL9_5_STABLE [4e0e9e59b] 2018-05-04 12:26:43 -0400
-Branch: REL9_4_STABLE [2d123b310] 2018-05-04 12:26:48 -0400
-Branch: REL9_3_STABLE [9469ebc71] 2018-05-04 12:26:52 -0400
--->
- <para>
- Sync our copy of the timezone library with IANA tzcode release 2018e
- (Tom Lane)
- </para>
-
- <para>
- This fixes the <application>zic</application> timezone data compiler
- to cope with negative daylight-savings offsets. While
- the <productname>PostgreSQL</productname> project will not
- immediately ship such timezone data, <application>zic</application>
- might be used with timezone data obtained directly from IANA, so it
- seems prudent to update <application>zic</application> now.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [df629586e] 2018-04-29 15:50:08 -0400
-Branch: REL_10_STABLE [783e8f56d] 2018-04-29 15:50:23 -0400
-Branch: REL9_6_STABLE [2acbeea48] 2018-04-29 15:50:31 -0400
-Branch: REL9_5_STABLE [eaed0d230] 2018-04-29 15:50:37 -0400
-Branch: REL9_4_STABLE [37c02b2b0] 2018-04-29 15:50:43 -0400
-Branch: REL9_3_STABLE [adcd0c2be] 2018-04-29 15:50:50 -0400
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018d for DST law changes in Palestine and Antarctica (Casey
- Station), plus historical corrections for Portugal and its colonies,
- as well as Enderbury, Jamaica, Turks & Caicos Islands, and
- Uruguay.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-3">
- <title>Release 10.3</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-03-01</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.2.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.3</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you run an installation in which not all users are mutually
- trusting, or if you maintain an application or extension that is
- intended for use in arbitrary situations, it is strongly recommended
- that you read the documentation changes described in the first changelog
- entry below, and take suitable steps to ensure that your installation or
- code is secure.
- </para>
-
- <para>
- Also, the changes described in the second changelog entry below may
- cause functions used in index expressions or materialized views to fail
- during auto-analyze, or when reloading from a dump. After upgrading,
- monitor the server logs for such problems, and fix affected functions.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.2,
- see <xref linkend="release-10-2"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [5770172cb] 2018-02-26 07:39:44 -0800
-Branch: REL_10_STABLE [ee0d1966e] 2018-02-26 07:39:47 -0800
-Branch: REL9_6_STABLE [70396dbe3] 2018-02-26 07:39:48 -0800
-Branch: REL9_5_STABLE [1f47ea7b8] 2018-02-26 07:39:48 -0800
-Branch: REL9_4_STABLE [f28955e38] 2018-02-26 07:39:48 -0800
-Branch: REL9_3_STABLE [41ee473a4] 2018-02-26 07:39:48 -0800
--->
- <para>
- Document how to configure installations and applications to guard
- against search-path-dependent trojan-horse attacks from other users
- (Noah Misch)
- </para>
-
- <para>
- Using a <varname>search_path</varname> setting that includes any
- schemas writable by a hostile user enables that user to capture
- control of queries and then run arbitrary SQL code with the
- permissions of the attacked user. While it is possible to write
- queries that are proof against such hijacking, it is notationally
- tedious, and it's very easy to overlook holes. Therefore, we now
- recommend configurations in which no untrusted schemas appear in
- one's search path. Relevant documentation appears in
- <xref linkend="ddl-schemas-patterns"/> (for database administrators and users),
- <xref linkend="libpq-connect"/> (for application authors),
- <xref linkend="extend-extensions-style"/> (for extension authors), and
- <xref linkend="sql-createfunction"/> (for authors
- of <literal>SECURITY DEFINER</literal> functions).
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [582edc369] 2018-02-26 07:39:44 -0800
-Branch: REL_10_STABLE [10d598354] 2018-02-26 07:39:47 -0800
-Branch: REL9_6_STABLE [e170b8c8c] 2018-02-26 07:39:48 -0800
-Branch: REL9_5_STABLE [91f3ffc52] 2018-02-26 07:39:48 -0800
-Branch: REL9_4_STABLE [928bca1a3] 2018-02-26 07:39:48 -0800
-Branch: REL9_3_STABLE [3db38b0ce] 2018-02-26 07:39:48 -0800
-Author: Noah Misch <noah@leadboat.com>
-Branch: REL9_4_STABLE [461c32b55] 2018-02-26 07:39:48 -0800
-Branch: REL9_3_STABLE [de8ffd666] 2018-02-26 07:39:48 -0800
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3d2aed664] 2018-02-26 10:18:21 -0500
-Branch: REL_10_STABLE [b8a2908f0] 2018-02-26 10:18:22 -0500
-Branch: REL9_6_STABLE [815172ba8] 2018-02-26 10:18:22 -0500
-Branch: REL9_5_STABLE [a8fc37a63] 2018-02-26 10:18:22 -0500
-Branch: REL9_4_STABLE [9f6e5296a] 2018-02-26 10:18:22 -0500
-Branch: REL9_3_STABLE [fe8b95b7e] 2018-02-26 10:18:22 -0500
--->
- <para>
- Avoid use of insecure <varname>search_path</varname> settings
- in <application>pg_dump</application> and other client programs
- (Noah Misch, Tom Lane)
- </para>
-
- <para>
- <application>pg_dump</application>,
- <application>pg_upgrade</application>,
- <application>vacuumdb</application> and
- other <productname>PostgreSQL</productname>-provided applications were
- themselves vulnerable to the type of hijacking described in the previous
- changelog entry; since these applications are commonly run by
- superusers, they present particularly attractive targets. To make them
- secure whether or not the installation as a whole has been secured,
- modify them to include only the <structname>pg_catalog</structname>
- schema in their <varname>search_path</varname> settings.
- Autovacuum worker processes now do the same, as well.
- </para>
-
- <para>
- In cases where user-provided functions are indirectly executed by
- these programs — for example, user-provided functions in index
- expressions — the tighter <varname>search_path</varname> may
- result in errors, which will need to be corrected by adjusting those
- user-provided functions to not assume anything about what search path
- they are invoked under. That has always been good practice, but now
- it will be necessary for correct behavior.
- (CVE-2018-1058)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [bc1adc651] 2018-02-23 22:13:21 -0500
-Branch: REL_10_STABLE [b9bf23abb] 2018-02-23 22:09:26 -0500
--->
- <para>
- Prevent logical replication from trying to ship changes for
- unpublishable relations (Peter Eisentraut)
- </para>
-
- <para>
- A publication marked <literal>FOR ALL TABLES</literal> would
- incorrectly ship changes in materialized views
- and <structname>information_schema</structname> tables, which are
- supposed to be omitted from the change stream.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [159efe4af] 2018-02-19 16:00:31 -0500
-Branch: REL_10_STABLE [517e0fe86] 2018-02-19 16:00:18 -0500
-Branch: REL9_6_STABLE [795f2112e] 2018-02-19 16:00:18 -0500
-Branch: REL9_5_STABLE [340d63bfb] 2018-02-19 16:00:18 -0500
-Branch: REL9_4_STABLE [e11b6488e] 2018-02-19 16:00:18 -0500
-Branch: REL9_3_STABLE [ea6d67cf8] 2018-02-19 16:00:18 -0500
--->
- <para>
- Fix misbehavior of concurrent-update rechecks with CTE references
- appearing in subplans (Tom Lane)
- </para>
-
- <para>
- If a CTE (<literal>WITH</literal> clause reference) is used in an
- InitPlan or SubPlan, and the query requires a recheck due to trying
- to update or lock a concurrently-updated row, incorrect results could
- be obtained.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9afd513df] 2018-02-23 13:47:33 -0500
-Branch: REL_10_STABLE [c458970ad] 2018-02-23 13:47:33 -0500
-Branch: REL9_6_STABLE [e7c02a54a] 2018-02-23 13:47:33 -0500
-Branch: REL9_5_STABLE [7dc5f316f] 2018-02-23 13:47:33 -0500
-Branch: REL9_4_STABLE [f6dd08489] 2018-02-23 13:47:33 -0500
-Branch: REL9_3_STABLE [71a0d0c5a] 2018-02-23 13:47:33 -0500
--->
- <para>
- Fix planner failures with overlapping mergejoin clauses in an outer
- join (Tom Lane)
- </para>
-
- <para>
- These mistakes led to <quote>left and right pathkeys do not match in
- mergejoin</quote> or <quote>outer pathkeys do not match
- mergeclauses</quote> planner errors in corner cases.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [38b41f182] 2018-02-21 18:40:24 -0500
-Branch: REL_10_STABLE [5ab5d21aa] 2018-02-21 18:40:24 -0500
-Branch: REL9_6_STABLE [66e203c85] 2018-02-21 18:40:24 -0500
-Branch: REL9_5_STABLE [9936f1499] 2018-02-21 18:40:24 -0500
-Branch: REL9_4_STABLE [2d12c5593] 2018-02-21 18:40:24 -0500
-Branch: REL9_3_STABLE [d3b0a23a2] 2018-02-21 18:40:24 -0500
--->
- <para>
- Repair <application>pg_upgrade</application>'s failure to
- preserve <structfield>relfrozenxid</structfield> for materialized
- views (Tom Lane, Andres Freund)
- </para>
-
- <para>
- This oversight could lead to data corruption in materialized views
- after an upgrade, manifesting as <quote>could not access status of
- transaction</quote> or <quote>found xmin from before
- relfrozenxid</quote> errors. The problem would be more likely to
- occur in seldom-refreshed materialized views, or ones that were
- maintained only with <command>REFRESH MATERIALIZED VIEW
- CONCURRENTLY</command>.
- </para>
-
- <para>
- If such corruption is observed, it can be repaired by refreshing the
- materialized view (without <literal>CONCURRENTLY</literal>).
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3486bcf9e] 2018-02-20 11:23:42 -0500
-Branch: REL_10_STABLE [6753f6c41] 2018-02-20 11:23:34 -0500
--->
- <para>
- Fix incorrect <application>pg_dump</application> output for some
- non-default sequence limit values (Alexey Bashtanov)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [5c9f2564f] 2018-02-11 13:24:15 -0500
-Branch: REL_10_STABLE [1298fccef] 2018-02-11 13:24:15 -0500
--->
- <para>
- Fix <application>pg_dump</application>'s mishandling
- of <literal>STATISTICS</literal> objects (Tom Lane)
- </para>
-
- <para>
- An extended statistics object's schema was mislabeled in the dump's
- table of contents, possibly leading to the wrong results in a
- schema-selective restore. Its ownership was not correctly restored,
- either. Also, change the logic so that statistics objects are
- dumped/restored, or not, as independent objects rather than tying
- them to the dump/restore decision for the table they are on. The
- original definition could not scale to the planned future extension to
- cross-table statistics.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e748e902d] 2018-02-14 14:47:18 -0500
-Branch: REL_10_STABLE [4081e1136] 2018-02-14 14:47:18 -0500
-Branch: REL9_6_STABLE [0a2381d13] 2018-02-14 14:47:18 -0500
-Branch: REL9_5_STABLE [db1c597f3] 2018-02-14 14:47:18 -0500
-Branch: REL9_4_STABLE [bd8718637] 2018-02-14 14:47:18 -0500
-Branch: REL9_3_STABLE [457e9e88e] 2018-02-14 14:47:18 -0500
--->
- <para>
- Fix incorrect reporting of PL/Python function names in
- error <literal>CONTEXT</literal> stacks (Tom Lane)
- </para>
-
- <para>
- An error occurring within a nested PL/Python function call (that is,
- one reached via a SPI query from another PL/Python function) would
- result in a stack trace showing the inner function's name twice,
- rather than the expected results. Also, an error in a nested
- PL/Python <literal>DO</literal> block could result in a null pointer
- dereference crash on some platforms.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8af87f411] 2018-02-23 14:39:17 -0500
-Branch: REL_10_STABLE [0222e897d] 2018-02-23 14:39:18 -0500
-Branch: REL9_6_STABLE [be87cd2a0] 2018-02-23 14:39:20 -0500
-Branch: REL9_5_STABLE [753875ed4] 2018-02-23 14:39:21 -0500
-Branch: REL9_4_STABLE [3ba503bde] 2018-02-23 14:39:22 -0500
-Branch: REL9_3_STABLE [a7a6051cf] 2018-02-23 14:39:23 -0500
--->
- <para>
- Allow <filename>contrib/auto_explain</filename>'s
- <varname>log_min_duration</varname> setting to range up
- to <literal>INT_MAX</literal>, or about 24 days instead of 35 minutes
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [935dee9ad] 2018-02-09 15:54:45 -0500
-Author: Andres Freund <andres@anarazel.de>
-Branch: REL_10_STABLE [2ff2baa22] 2018-02-22 12:54:45 -0800
-Branch: REL9_6_STABLE [83fce670e] 2018-02-22 12:58:43 -0800
--->
- <para>
- Mark assorted GUC variables as <literal>PGDLLIMPORT</literal>, to
- ease porting extension modules to Windows (Metin Doslu)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-2">
- <title>Release 10.2</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2018-02-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.1.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.2</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However,
- if you use <filename>contrib/cube</filename>'s <literal>~></literal>
- operator, see the entry below about that.
- </para>
-
- <para>
- Also, if you are upgrading from a version earlier than 10.1,
- see <xref linkend="release-10-1"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3492a0af0] 2018-02-05 10:37:30 -0500
-Branch: REL_10_STABLE [fe921a360] 2018-02-05 10:37:30 -0500
--->
- <para>
- Fix processing of partition keys containing multiple expressions
- (Álvaro Herrera, David Rowley)
- </para>
-
- <para>
- This error led to crashes or, with carefully crafted input, disclosure
- of arbitrary backend memory.
- (CVE-2018-1052)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a926eb84e] 2018-02-05 10:58:27 -0500
-Branch: REL_10_STABLE [6ba52aeb2] 2018-02-05 10:58:27 -0500
-Branch: REL9_6_STABLE [1341e017d] 2018-02-05 10:58:27 -0500
-Branch: REL9_5_STABLE [17aa02368] 2018-02-05 10:58:27 -0500
-Branch: REL9_4_STABLE [c3456208d] 2018-02-05 10:58:27 -0500
-Branch: REL9_3_STABLE [9c59e48a2] 2018-02-05 10:58:27 -0500
--->
- <para>
- Ensure that all temporary files made
- by <application>pg_upgrade</application> are non-world-readable
- (Tom Lane, Noah Misch)
- </para>
-
- <para>
- <application>pg_upgrade</application> normally restricts its
- temporary files to be readable and writable only by the calling user.
- But the temporary file containing <literal>pg_dumpall -g</literal>
- output would be group- or world-readable, or even writable, if the
- user's <literal>umask</literal> setting allows. In typical usage on
- multi-user machines, the <literal>umask</literal> and/or the working
- directory's permissions would be tight enough to prevent problems;
- but there may be people using <application>pg_upgrade</application>
- in scenarios where this oversight would permit disclosure of database
- passwords to unfriendly eyes.
- (CVE-2018-1053)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [9c2f0a6c3] 2017-12-14 18:20:47 -0800
-Branch: REL_10_STABLE [1224383e8] 2017-12-14 18:20:48 -0800
-Branch: REL9_6_STABLE [937494c0e] 2017-12-14 18:20:48 -0800
-Branch: REL9_5_STABLE [32c0295b1] 2017-12-14 18:20:48 -0800
-Branch: REL9_4_STABLE [4eff5a8c9] 2017-12-14 18:20:48 -0800
-Branch: REL9_3_STABLE [387abe870] 2017-12-14 18:20:48 -0800
--->
- <para>
- Fix vacuuming of tuples that were updated while key-share locked
- (Andres Freund, Álvaro Herrera)
- </para>
-
- <para>
- In some cases <command>VACUUM</command> would fail to remove such
- tuples even though they are now dead, leading to assorted data
- corruption scenarios.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [ad25a6b1f] 2018-02-01 15:23:45 -0500
-Branch: REL_10_STABLE [b94988fad] 2018-02-01 15:31:31 -0500
--->
- <para>
- Fix failure to mark a hash index's metapage dirty after
- adding a new overflow page, potentially leading to index corruption
- (Lixian Zou, Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [3b2787e1f] 2017-11-16 14:19:27 -0500
-Branch: REL_10_STABLE [c8df4831e] 2017-11-16 15:24:19 -0500
-Branch: REL9_6_STABLE [19648ce55] 2017-11-16 15:26:49 -0500
--->
- <para>
- Ensure that vacuum will always clean up the pending-insertions list of
- a GIN index (Masahiko Sawada)
- </para>
-
- <para>
- This is necessary to ensure that dead index entries get removed.
- The old code got it backwards, allowing vacuum to skip the cleanup if
- some other process were running cleanup concurrently, thus risking
- invalid entries being left behind in the index.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [272c2ab9f] 2018-01-09 17:06:31 -0300
-Branch: REL_10_STABLE [37dd11281] 2018-01-09 17:08:10 -0300
-Branch: REL9_6_STABLE [012683866] 2018-01-09 17:07:47 -0300
-Branch: REL9_5_STABLE [38a23790e] 2018-01-09 17:07:36 -0300
-Branch: REL9_4_STABLE [c61879640] 2018-01-09 17:07:24 -0300
-Branch: REL9_3_STABLE [469fa9ad6] 2018-01-09 17:07:00 -0300
--->
- <para>
- Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
- Asim Praveen, Ashwin Agrawal)
- </para>
-
- <para>
- These errors could result in misbehavior under concurrent load.
- The potential consequences have not been characterized fully.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [90947674f] 2018-01-12 12:24:50 -0500
-Branch: REL_10_STABLE [d3ca1a6c3] 2018-01-12 12:24:50 -0500
-Branch: REL9_6_STABLE [6520d4a96] 2018-01-12 12:24:50 -0500
-Branch: REL9_5_STABLE [ff99d7761] 2018-01-12 12:24:50 -0500
--->
- <para>
- Fix incorrect query results from cases involving flattening of
- subqueries whose outputs are used in <literal>GROUPING SETS</literal>
- (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [3ccdc6f9a] 2018-01-31 15:43:11 -0500
-Branch: REL_10_STABLE [86fba2865] 2018-01-31 16:08:39 -0500
--->
- <para>
- Fix handling of list partitioning constraints for partition keys of
- boolean or array types (Amit Langote)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [680d54050] 2018-01-12 15:46:37 -0500
-Branch: REL_10_STABLE [55e5eb4d9] 2018-01-12 15:46:37 -0500
-Branch: REL9_6_STABLE [c2a7044a5] 2018-01-12 15:46:37 -0500
-Branch: REL9_5_STABLE [a99922f96] 2018-01-12 15:46:37 -0500
-Branch: REL9_4_STABLE [8b0e5e7e7] 2018-01-12 15:46:38 -0500
-Branch: REL9_3_STABLE [4e7170058] 2018-01-12 15:46:38 -0500
--->
- <para>
- Avoid unnecessary failure in a query on an inheritance tree that
- occurs concurrently with some child table being removed from the tree
- by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [54eff5311] 2018-01-02 19:16:16 -0300
-Branch: REL_10_STABLE [6d2a9ae0e] 2018-01-02 19:16:16 -0300
-Branch: REL9_6_STABLE [fb7b43903] 2018-01-02 19:16:16 -0300
-Branch: REL9_5_STABLE [82f1c3b7d] 2018-01-02 19:16:16 -0300
-Branch: REL9_4_STABLE [47a3a1317] 2018-01-02 19:16:16 -0300
--->
- <para>
- Fix spurious deadlock failures when multiple sessions are
- running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [ad337c76b] 2017-12-27 18:25:37 +0300
-Branch: REL_10_STABLE [bdbf29aae] 2017-12-27 18:26:58 +0300
--->
- <para>
- During <command>VACUUM FULL</command>, update the table's size fields
- in <structname>pg_class</structname> sooner (Amit Kapila)
- </para>
-
- <para>
- This prevents poor behavior when rebuilding hash indexes on the
- table, since those use the <structname>pg_class</structname>
- statistics to govern the initial hash size.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c4c2885cb] 2017-12-22 12:08:06 -0500
-Branch: REL_10_STABLE [c252ccda7] 2017-12-22 12:08:18 -0500
--->
- <para>
- Fix
- <literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>
- over zero columns (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [005ac298b] 2017-12-08 12:13:04 -0500
-Branch: REL_10_STABLE [a2c6cf366] 2017-12-08 12:25:41 -0500
--->
- <para>
- Disallow identity columns on typed tables and partitions
- (Michael Paquier)
- </para>
-
- <para>
- These cases will be treated as unsupported features for now.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [2d2d06b7e] 2017-12-08 09:18:18 -0500
-Branch: REL_10_STABLE [ee5b59549] 2017-12-08 09:39:55 -0500
-Branch: master [533c5d8bd] 2018-02-02 14:39:10 -0500
-Branch: REL_10_STABLE [1597948c9] 2018-02-02 15:06:52 -0500
--->
- <para>
- Fix assorted failures to apply the correct default value when
- inserting into an identity column (Michael Paquier, Peter Eisentraut)
- </para>
-
- <para>
- In several contexts, notably <command>COPY</command>
- and <command>ALTER TABLE ADD COLUMN</command>, the expected default
- value was not applied and instead a null value was inserted.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9a785ad57] 2017-11-27 17:54:07 -0500
-Branch: REL_10_STABLE [a57aa430b] 2017-11-27 17:54:09 -0500
-Branch: REL9_6_STABLE [06ba53096] 2017-11-27 17:54:10 -0500
-Branch: REL9_5_STABLE [39f180fdd] 2017-11-27 17:54:11 -0500
--->
- <para>
- Fix failures when an inheritance tree contains foreign child tables
- (Etsuro Fujita)
- </para>
-
- <para>
- A mix of regular and foreign tables in an inheritance tree resulted in
- creation of incorrect plans for <command>UPDATE</command>
- and <command>DELETE</command> queries. This led to visible failures in
- some cases, notably when there are row-level triggers on a foreign
- child table.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [9b63c13f0] 2017-11-25 14:15:48 -0500
-Branch: REL_10_STABLE [5dc7faa91] 2017-11-25 14:15:48 -0500
-Branch: REL9_6_STABLE [497e79b96] 2017-11-25 14:15:48 -0500
-Branch: REL9_5_STABLE [ae6ed0784] 2017-11-25 14:15:48 -0500
-Branch: REL9_4_STABLE [2e105cf6d] 2017-11-25 14:15:48 -0500
-Branch: REL9_3_STABLE [d538f6568] 2017-11-25 14:15:48 -0500
--->
- <para>
- Repair failure with correlated sub-<literal>SELECT</literal>
- inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
- subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [bb94ce4d2] 2018-01-23 16:50:34 -0500
-Branch: REL_10_STABLE [c5e59bb60] 2018-01-23 16:50:34 -0500
-Branch: REL9_6_STABLE [ae3699a6a] 2018-01-23 16:50:35 -0500
-Branch: REL9_5_STABLE [8a2228b2f] 2018-01-23 16:50:35 -0500
-Branch: REL9_4_STABLE [54e1599c7] 2018-01-23 16:50:35 -0500
-Branch: REL9_3_STABLE [b100a5274] 2018-01-23 16:50:35 -0500
--->
- <para>
- Fix <quote>could not devise a query plan for the given query</quote>
- planner failure for some cases involving nested <literal>UNION
- ALL</literal> inside a lateral subquery (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ecc27d55f] 2017-12-04 11:51:43 -0500
-Branch: REL_10_STABLE [bf2b317f1] 2017-12-04 11:51:43 -0500
--->
- <para>
- Allow functional dependency statistics to be used for boolean columns
- (Tom Lane)
- </para>
-
- <para>
- Previously, although extended statistics could be declared and
- collected on boolean columns, the planner failed to apply them.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [df3a66e28] 2017-11-25 11:48:09 -0500
-Branch: REL_10_STABLE [b9fc2d0b9] 2017-11-25 11:48:09 -0500
--->
- <para>
- Avoid underestimating the number of groups emitted by subqueries
- containing set-returning functions in their grouping columns (Tom Lane)
- </para>
-
- <para>
- Cases similar to <literal>SELECT DISTINCT unnest(foo)</literal> got a
- lower output rowcount estimate in 10.0 than they did in earlier
- releases, possibly resulting in unfavorable plan choices. Restore the
- prior estimation behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Simon Riggs <simon@2ndQuadrant.com>
-Branch: master [7e17a6889] 2017-11-22 16:28:14 +1100
-Branch: REL_10_STABLE [7015bb389] 2017-11-28 09:37:22 +0000
--->
- <para>
- Fix use of triggers in logical replication workers (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [df9f682c7] 2018-01-05 12:17:10 -0300
-Branch: REL_10_STABLE [a19c262f3] 2018-01-05 12:17:10 -0300
-Branch: REL9_6_STABLE [9a5e4a6e0] 2018-01-05 12:17:10 -0300
-Branch: REL9_5_STABLE [132cd58d6] 2018-01-05 12:17:10 -0300
-Branch: REL9_4_STABLE [f68c49f86] 2018-01-05 12:17:10 -0300
--->
- <para>
- Fix logical decoding to correctly clean up disk files for crashed
- transactions (Atsushi Torikoshi)
- </para>
-
- <para>
- Logical decoding may spill WAL records to disk for transactions
- generating many WAL records. Normally these files are cleaned up
- after the transaction's commit or abort record arrives; but if
- no such record is ever seen, the removal code misbehaved.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [0fedb4ea6] 2017-12-14 11:13:14 -0500
-Branch: REL_10_STABLE [14c15b1f4] 2017-12-14 11:29:34 -0500
-Branch: REL9_6_STABLE [c28e0b1e0] 2017-12-14 11:31:13 -0500
-Branch: REL9_5_STABLE [87056267e] 2017-12-14 11:32:00 -0500
-Branch: REL9_4_STABLE [f5c7e0cdd] 2017-12-14 11:32:25 -0500
--->
- <para>
- Fix walsender timeout failure and failure to respond to interrupts
- when processing a large transaction (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8a906204a] 2018-01-09 12:09:30 -0500
-Branch: REL_10_STABLE [1f5adbd79] 2018-01-09 12:09:30 -0500
--->
- <para>
- Fix race condition during replication origin drop that could allow the
- dropping process to wait indefinitely (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Simon Riggs <simon@2ndQuadrant.com>
-Branch: master [6668a54eb] 2018-01-06 11:48:21 +0000
-Branch: REL_10_STABLE [76e117dbe] 2018-01-28 16:14:31 +0000
--->
- <para>
- Allow members of the <literal>pg_read_all_stats</literal> role to see
- walsender statistics in the <structname>pg_stat_replication</structname>
- view (Feike Steenbergen)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [d02974e32] 2017-12-29 16:28:32 +0100
-Branch: REL_10_STABLE [b38c3d58e] 2017-12-29 16:22:43 +0100
--->
- <para>
- Show walsenders that are sending base backups as active in
- the <structname>pg_stat_activity</structname> view (Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [38d485fda] 2018-01-30 16:50:30 -0500
-Branch: REL_10_STABLE [167a22b2a] 2018-01-30 17:05:35 -0500
--->
- <para>
- Fix reporting of <literal>scram-sha-256</literal> authentication
- method in the <structname>pg_hba_file_rules</structname> view
- (Michael Paquier)
- </para>
-
- <para>
- Previously this was printed as <literal>scram-sha256</literal>,
- possibly confusing users as to the correct spelling.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Joe Conway <mail@joeconway.com>
-Branch: master [752714dd9] 2017-11-26 09:49:40 -0800
-Branch: REL_10_STABLE [9e051b674] 2017-11-26 09:50:00 -0800
-Branch: REL9_6_STABLE [997015ef2] 2017-11-26 09:50:15 -0800
-Branch: REL9_5_STABLE [db714c62b] 2017-11-26 09:50:27 -0800
-Branch: REL9_4_STABLE [d8d9c97cd] 2017-11-26 09:50:42 -0800
-Branch: REL9_3_STABLE [69e5b1e9c] 2017-11-26 09:50:53 -0800
--->
- <para>
- Fix <function>has_sequence_privilege()</function> to
- support <literal>WITH GRANT OPTION</literal> tests,
- as other privilege-testing functions do (Joe Conway)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [2918fcedb] 2017-11-11 11:10:53 -0800
-Branch: REL_10_STABLE [30a5e940a] 2017-11-11 11:11:15 -0800
-Branch: REL9_6_STABLE [46fb15f48] 2017-11-11 11:11:19 -0800
-Branch: REL9_5_STABLE [e7083dfce] 2017-11-11 11:11:21 -0800
-Branch: REL9_4_STABLE [2f4061aff] 2017-11-11 11:11:24 -0800
-Branch: REL9_3_STABLE [d8406b9de] 2017-11-11 11:11:28 -0800
-Branch: master [4b865aee2] 2017-11-11 13:07:46 -0800
-Branch: REL_10_STABLE [075ced2a4] 2017-11-11 13:07:54 -0800
-Branch: REL9_6_STABLE [742471ef9] 2017-11-11 13:07:55 -0800
-Branch: REL9_5_STABLE [739f1f6ac] 2017-11-11 13:07:55 -0800
-Branch: REL9_4_STABLE [e48fb50d8] 2017-11-11 13:07:55 -0800
-Branch: REL9_3_STABLE [f5260d5ad] 2017-11-11 13:07:55 -0800
--->
- <para>
- In databases using UTF8 encoding, ignore any XML declaration that
- asserts a different encoding (Pavel Stehule, Noah Misch)
- </para>
-
- <para>
- We always store XML strings in the database encoding, so allowing
- libxml to act on a declaration of another encoding gave wrong results.
- In encodings other than UTF8, we don't promise to support non-ASCII
- XML data anyway, so retain the previous behavior for bug compatibility.
- This change affects only <function>xpath()</function> and related
- functions; other XML code paths already acted this way.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [ae65f6066] 2017-11-21 13:56:24 -0500
-Branch: REL_10_STABLE [5b2a87707] 2017-11-21 14:03:51 -0500
-Branch: REL9_6_STABLE [7c84bc0b3] 2017-11-21 14:30:33 -0500
-Branch: REL9_5_STABLE [c703aa625] 2017-11-21 14:34:26 -0500
-Branch: REL9_4_STABLE [294136d42] 2017-11-21 14:38:29 -0500
-Branch: REL9_3_STABLE [aa3a78c3d] 2017-11-21 14:45:29 -0500
--->
- <para>
- Provide for forward compatibility with future minor protocol versions
- (Robert Haas, Badrul Chowdhury)
- </para>
-
- <para>
- Up to now, <productname>PostgreSQL</productname> servers simply
- rejected requests to use protocol versions newer than 3.0, so that
- there was no functional difference between the major and minor parts
- of the protocol version number. Allow clients to request versions 3.x
- without failing, sending back a message showing that the server only
- understands 3.0. This makes no difference at the moment, but
- back-patching this change should allow speedier introduction of future
- minor protocol upgrades.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: REL_10_STABLE [218b024a7] 2017-12-08 10:17:46 -0500
--->
- <para>
- Allow a client that supports SCRAM channel binding (such as v11 or
- later <application>libpq</application>) to connect to a v10 server
- (Michael Paquier)
- </para>
-
- <para>
- v10 does not have this feature, and the connection-time negotiation
- about whether to use it was done incorrectly.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [aced5a92b] 2018-01-05 19:21:30 -0500
-Branch: REL_10_STABLE [1c77e9908] 2018-01-05 19:21:30 -0500
--->
- <para>
- Avoid live-lock in <function>ConditionVariableBroadcast()</function>
- (Tom Lane, Thomas Munro)
- </para>
-
- <para>
- Given repeatedly-unlucky timing, a process attempting to awaken all
- waiters for a condition variable could loop indefinitely. Due to the
- limited usage of condition variables in v10, this affects only
- parallel index scans and some operations on replication slots.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [59d1e2b95] 2017-12-21 09:24:30 -0500
-Branch: REL_10_STABLE [f3decdc94] 2017-12-21 09:24:48 -0500
--->
- <para>
- Clean up waits for condition variables correctly during subtransaction
- abort (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [80259d4db] 2018-01-09 12:34:57 -0500
-Branch: REL_10_STABLE [d56a5f994] 2018-01-09 12:34:46 -0500
--->
- <para>
- Ensure that child processes that are waiting for a condition variable
- will exit promptly if the postmaster process dies (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [fd7c0fa73] 2017-12-18 12:22:31 -0500
-Branch: REL_10_STABLE [b70ea4c75] 2017-12-18 12:31:10 -0500
--->
- <para>
- Fix crashes in parallel queries using more than one Gather node
- (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [884a60840] 2017-12-13 16:15:44 -0500
-Branch: REL_10_STABLE [192ffe1cb] 2017-12-13 16:09:00 -0500
--->
- <para>
- Fix hang in parallel index scan when processing a deleted or half-dead
- index page (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [c6755e233] 2017-11-28 11:44:59 -0500
-Branch: REL_10_STABLE [ec7629dfb] 2017-11-28 11:49:01 -0500
--->
- <para>
- Avoid crash if parallel bitmap heap scan is unable to allocate a
- shared memory segment (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [28724fd90] 2017-12-06 08:58:27 -0500
-Branch: REL_10_STABLE [a8ef4e81e] 2017-12-06 09:01:21 -0500
-Branch: REL9_6_STABLE [b75644066] 2017-12-06 09:04:02 -0500
-Branch: REL9_5_STABLE [0426a77ce] 2017-12-06 09:06:25 -0500
-Branch: REL9_4_STABLE [facd94e72] 2017-12-06 09:08:30 -0500
-Branch: master [2badb5afb] 2018-01-23 11:03:03 -0500
-Branch: REL_10_STABLE [383e4268f] 2018-01-23 11:13:42 -0500
-Branch: REL9_6_STABLE [2843c01a5] 2018-01-23 11:13:50 -0500
--->
- <para>
- Cope with failure to start a parallel worker process
- (Amit Kapila, Robert Haas)
- </para>
-
- <para>
- Parallel query previously tended to hang indefinitely if a worker
- could not be started, as the result of <literal>fork()</literal>
- failure or other low-probability problems.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [445dbd82a] 2017-11-28 12:15:38 -0500
-Branch: REL_10_STABLE [dba6e75c1] 2017-11-28 12:19:19 -0500
--->
- <para>
- Avoid unnecessary failure when no parallel workers can be obtained
- during parallel query startup (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [8526bcb2d] 2017-12-19 12:21:56 -0500
-Branch: REL_10_STABLE [72567f617] 2017-12-19 12:44:21 -0500
-Branch: REL9_6_STABLE [2157a61b5] 2018-01-04 12:46:00 -0500
--->
- <para>
- Fix collection of <command>EXPLAIN</command> statistics from parallel
- workers (Amit Kapila, Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [f94eec490] 2017-12-20 17:26:50 -0500
-Branch: REL_10_STABLE [7be0d775a] 2017-12-20 17:27:25 -0500
--->
- <para>
- Ensure that query strings passed to parallel workers are correctly
- null-terminated (Thomas Munro)
- </para>
-
- <para>
- This prevents emitting garbage in postmaster log output from such
- workers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [751804998] 2017-11-14 15:03:55 -0500
-Branch: REL_10_STABLE [619a8c47d] 2017-11-14 17:49:49 -0500
-Branch: REL9_6_STABLE [4a15f87d2] 2017-11-14 17:49:49 -0500
-Branch: REL9_5_STABLE [d4e38489f] 2017-11-14 17:49:49 -0500
--->
- <para>
- Avoid unsafe alignment assumptions when working
- with <type>__int128</type> (Tom Lane)
- </para>
-
- <para>
- Typically, compilers assume that <type>__int128</type> variables are
- aligned on 16-byte boundaries, but our memory allocation
- infrastructure isn't prepared to guarantee that, and increasing the
- setting of MAXALIGN seems infeasible for multiple reasons. Adjust the
- code to allow use of <type>__int128</type> only when we can tell the
- compiler to assume lesser alignment. The only known symptom of this
- problem so far is crashes in some parallel aggregation queries.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [35a528062] 2018-01-28 13:39:07 -0500
-Branch: REL_10_STABLE [1b2a3860d] 2018-01-28 13:39:07 -0500
-Branch: REL9_6_STABLE [4e9fb4bfe] 2018-01-28 13:39:07 -0500
-Branch: REL9_5_STABLE [e194f1383] 2018-01-28 13:39:07 -0500
-Branch: REL9_4_STABLE [06efc5cf5] 2018-01-28 13:39:07 -0500
-Branch: REL9_3_STABLE [c03fc8462] 2018-01-28 13:39:07 -0500
--->
- <para>
- Prevent stack-overflow crashes when planning extremely deeply
- nested set operations
- (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2e668c522] 2018-01-27 13:52:24 -0500
-Branch: REL_10_STABLE [78433f41f] 2018-01-27 13:52:24 -0500
--->
- <para>
- Avoid crash during an EvalPlanQual recheck of an indexscan that is the
- inner child of a merge join (Tom Lane)
- </para>
-
- <para>
- This could only happen during an update or <command>SELECT FOR
- UPDATE</command> of a join, when there is a concurrent update of some
- selected row.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [414cd434f] 2017-11-28 23:40:11 -0300
-Branch: REL_10_STABLE [d4607590b] 2017-11-28 23:42:42 -0300
--->
- <para>
- Fix crash in autovacuum when extended statistics are defined
- for a table but can't be computed (Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [0c98d0dd5] 2017-11-10 14:21:32 -0500
-Branch: REL_10_STABLE [f9e2885d5] 2017-11-10 14:27:51 -0500
-Branch: REL9_6_STABLE [d380d080f] 2017-11-10 14:29:13 -0500
-Branch: REL9_5_STABLE [9efd83bfd] 2017-11-10 14:30:06 -0500
-Branch: REL9_4_STABLE [0bcdab58e] 2017-11-10 14:30:34 -0500
-Branch: REL9_3_STABLE [62906461c] 2017-11-10 14:30:48 -0500
--->
- <para>
- Fix null-pointer crashes for some types of LDAP URLs appearing
- in <filename>pg_hba.conf</filename> (Thomas Munro)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [ab9f2c429] 2018-01-29 11:24:57 -0800
-Branch: REL_10_STABLE [d1aac2998] 2018-01-29 11:24:57 -0800
-Branch: master [c068f8772] 2018-01-29 11:24:57 -0800
-Branch: REL_10_STABLE [d18d4bca8] 2018-01-29 11:24:57 -0800
-Branch: REL_10_STABLE [c0fda304d] 2018-01-29 11:24:57 -0800
--->
- <para>
- Prevent out-of-memory failures due to excessive growth of simple hash
- tables (Tomas Vondra, Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [3c1e9fd23] 2018-01-10 17:13:47 -0500
-Branch: REL_10_STABLE [08adf688f] 2018-01-10 17:13:29 -0500
-Branch: REL9_6_STABLE [122605194] 2018-01-10 17:13:29 -0500
-Branch: REL9_5_STABLE [10bcd4165] 2018-01-10 17:13:29 -0500
-Branch: REL9_4_STABLE [493cdc8ee] 2018-01-10 17:13:29 -0500
-Branch: REL9_3_STABLE [45bfef7fb] 2018-01-10 17:13:29 -0500
--->
- <para>
- Fix sample <function>INSTR()</function> functions in the PL/pgSQL
- documentation (Yugo Nagata, Tom Lane)
- </para>
-
- <para>
- These functions are stated to
- be <trademark class="registered">Oracle</trademark> compatible, but
- they weren't exactly. In particular, there was a discrepancy in the
- interpretation of a negative third parameter: Oracle thinks that a
- negative value indicates the last place where the target substring can
- begin, whereas our functions took it as the last place where the
- target can end. Also, Oracle throws an error for a zero or negative
- fourth parameter, whereas our functions returned zero.
- </para>
-
- <para>
- The sample code has been adjusted to match Oracle's behavior more
- precisely. Users who have copied this code into their applications
- may wish to update their copies.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [2b792ab09] 2018-01-22 12:06:18 -0500
-Branch: REL_10_STABLE [46246fd9d] 2018-01-22 12:06:18 -0500
-Branch: REL9_6_STABLE [52cc1b484] 2018-01-22 12:06:19 -0500
-Branch: REL9_5_STABLE [367e2b230] 2018-01-22 12:06:19 -0500
-Branch: REL9_4_STABLE [da83ca7d9] 2018-01-22 12:06:19 -0500
-Branch: REL9_3_STABLE [ef115621c] 2018-01-22 12:06:19 -0500
--->
- <para>
- Fix <application>pg_dump</application> to make ACL (permissions),
- comment, and security label entries reliably identifiable in archive
- output formats (Tom Lane)
- </para>
-
- <para>
- The <quote>tag</quote> portion of an ACL archive entry was usually
- just the name of the associated object. Make it start with the object
- type instead, bringing ACLs into line with the convention already used
- for comment and security label archive entries. Also, fix the
- comment and security label entries for the whole database, if present,
- to make their tags start with <literal>DATABASE</literal> so that they
- also follow this convention. This prevents false matches in code that
- tries to identify large-object-related entries by seeing if the tag
- starts with <literal>LARGE OBJECT</literal>. That could have resulted
- in misclassifying entries as data rather than schema, with undesirable
- results in a schema-only or data-only dump.
- </para>
-
- <para>
- Note that this change has user-visible results in the output
- of <command>pg_restore --list</command>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [3e68686e2] 2018-01-03 12:40:32 -0800
-Branch: REL_10_STABLE [e3fdb7c00] 2018-01-03 12:39:59 -0800
-Branch: REL9_6_STABLE [ceee51e38] 2018-01-03 12:39:59 -0800
-Branch: REL9_5_STABLE [ea4cbf8f1] 2018-01-03 12:39:59 -0800
--->
- <para>
- Rename <application>pg_rewind</application>'s
- <function>copy_file_range</function> function to avoid conflict
- with new Linux system call of that name (Andres Freund)
- </para>
-
- <para>
- This change prevents build failures with newer glibc versions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [649aeb123] 2018-01-13 14:57:49 +0100
-Branch: REL_10_STABLE [8b89b7aac] 2018-01-15 10:00:56 +0100
-Branch: REL9_6_STABLE [f082ef836] 2018-01-15 10:01:15 +0100
-Branch: REL9_5_STABLE [4eae1e6f5] 2018-01-15 10:02:03 +0100
-Branch: REL9_4_STABLE [2c1c4b060] 2018-01-15 10:02:16 +0100
-Branch: REL9_3_STABLE [a0f5890a6] 2018-01-15 10:02:23 +0100
--->
- <para>
- In <application>ecpg</application>, detect indicator arrays that do
- not have the correct length and report an error (David Rader)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Teodor Sigaev <teodor@sigaev.ru>
-Branch: master [563a053bd] 2018-01-11 14:41:14 +0300
-Branch: REL_10_STABLE [b8279a783] 2018-01-11 14:42:16 +0300
-Branch: REL9_6_STABLE [bda5281fd] 2018-01-11 14:43:13 +0300
--->
- <para>
- Change the behavior of <filename>contrib/cube</filename>'s
- <type>cube</type> <literal>~></literal> <type>int</type>
- operator to make it compatible with KNN search (Alexander Korotkov)
- </para>
-
- <para>
- The meaning of the second argument (the dimension selector) has been
- changed to make it predictable which value is selected even when
- dealing with cubes of varying dimensionalities.
- </para>
-
- <para>
- This is an incompatible change, but since the point of the operator
- was to be used in KNN searches, it seems rather useless as-is.
- After installing this update, any expression indexes or materialized
- views using this operator will need to be reindexed/refreshed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d3f4e8a8a] 2017-11-25 14:42:10 -0500
-Branch: REL_10_STABLE [ddba32005] 2017-11-25 14:42:25 -0500
-Branch: REL9_6_STABLE [630aceda5] 2017-11-25 14:42:32 -0500
-Branch: REL9_5_STABLE [47226971e] 2017-11-25 14:42:36 -0500
-Branch: REL9_4_STABLE [5c38ddebd] 2017-11-25 14:42:41 -0500
-Branch: REL9_3_STABLE [6e9ac0a2e] 2017-11-25 14:42:46 -0500
--->
- <para>
- Avoid triggering a libc assertion
- in <filename>contrib/hstore</filename>, due to use
- of <function>memcpy()</function> with equal source and destination
- pointers (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [39cfe8619] 2018-01-04 14:59:00 -0500
-Branch: REL_10_STABLE [5ad1b1728] 2018-01-04 14:59:00 -0500
-Branch: REL9_6_STABLE [ad592f4a6] 2018-01-04 14:59:00 -0500
-Branch: master [18869e202] 2018-01-04 16:00:21 -0500
-Branch: REL_10_STABLE [0dc5dfcd7] 2018-01-04 15:59:30 -0500
--->
- <para>
- Fix incorrect display of tuples' null bitmaps
- in <filename>contrib/pageinspect</filename> (Maksim Milyutin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [b0313f9cc] 2018-01-26 09:56:33 -0500
-Branch: REL_10_STABLE [51fc1b09a] 2018-01-26 09:59:14 -0500
--->
- <para>
- Fix incorrect output from <filename>contrib/pageinspect</filename>'s
- <function>hash_page_items()</function> function (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [4bbf6edfb] 2018-01-17 16:18:39 -0500
-Branch: REL_10_STABLE [3f05a30b5] 2018-01-17 16:57:53 -0500
-Branch: REL9_6_STABLE [4a81c0229] 2018-01-17 17:09:20 -0500
-Branch: master [99f6a17dd] 2018-01-30 14:44:30 -0500
-Branch: REL_10_STABLE [92123c6ea] 2018-01-30 14:47:02 -0500
-Branch: REL9_6_STABLE [d397f558d] 2018-01-30 14:55:14 -0500
--->
- <para>
- In <filename>contrib/postgres_fdw</filename>, avoid
- <quote>outer pathkeys do not match mergeclauses</quote>
- planner error when constructing a plan involving a remote join
- (Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [e9f2703ab] 2018-01-12 16:52:49 -0500
-Branch: REL_10_STABLE [67854bc59] 2018-01-12 16:52:49 -0500
--->
- <para>
- In <filename>contrib/postgres_fdw</filename>, avoid planner failure
- when there are duplicate <literal>GROUP BY</literal> entries
- (Jeevan Chalke)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [ac3b96268] 2017-11-17 12:46:52 -0500
-Branch: REL_10_STABLE [6313995c2] 2017-11-17 12:47:11 -0500
-Branch: REL9_6_STABLE [0d9243903] 2017-11-17 12:47:21 -0500
-Branch: REL9_5_STABLE [9508d422b] 2017-11-17 12:47:29 -0500
-Branch: REL9_4_STABLE [7d98dc133] 2017-11-17 12:47:36 -0500
-Branch: REL9_3_STABLE [77b76fea9] 2017-11-17 12:47:44 -0500
--->
- <para>
- Provide modern examples of how to auto-start Postgres on macOS
- (Tom Lane)
- </para>
-
- <para>
- The scripts in <filename>contrib/start-scripts/osx</filename> use
- infrastructure that's been deprecated for over a decade, and which no
- longer works at all in macOS releases of the last couple of years.
- Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
- containing scripts that use the newer <application>launchd</application>
- infrastructure.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [99d5a3ffb] 2018-01-03 15:36:54 -0500
-Branch: REL_10_STABLE [0fb69340b] 2018-01-03 15:33:12 -0500
-Branch: REL9_6_STABLE [85cdcde1f] 2018-01-03 15:33:32 -0500
-Branch: REL9_5_STABLE [d329d2d3e] 2018-01-03 15:33:47 -0500
-Branch: REL9_4_STABLE [2d03daa7b] 2018-01-03 15:34:02 -0500
-Branch: REL9_3_STABLE [5404145c5] 2018-01-03 15:34:21 -0500
--->
- <para>
- Fix incorrect selection of configuration-specific libraries for
- OpenSSL on Windows (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [84c4313c6] 2017-11-23 20:22:04 -0800
-Branch: REL_10_STABLE [f16a0958d] 2017-11-23 20:22:24 -0800
-Branch: REL9_6_STABLE [1695ce068] 2017-11-23 20:24:53 -0800
-Branch: REL9_5_STABLE [da8eae56e] 2017-11-23 20:25:08 -0800
-Branch: REL9_4_STABLE [558f62079] 2017-11-23 20:29:48 -0800
-Branch: REL9_3_STABLE [83e6b1434] 2017-11-23 20:32:01 -0800
-Branch: master [7e0c574ee] 2017-12-09 00:58:55 -0800
-Branch: REL_10_STABLE [e2cc65050] 2017-12-09 00:58:58 -0800
-Branch: REL9_6_STABLE [055532bad] 2017-12-09 00:58:58 -0800
-Branch: REL9_5_STABLE [470de6a24] 2017-12-09 00:58:59 -0800
-Branch: REL9_4_STABLE [d78c3ca0e] 2017-12-09 00:58:59 -0800
-Branch: REL9_3_STABLE [70dc7ad58] 2017-12-09 00:58:59 -0800
--->
- <para>
- Support linking to MinGW-built versions of libperl (Noah Misch)
- </para>
-
- <para>
- This allows building PL/Perl with some common Perl distributions for
- Windows.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [65a00f303] 2017-12-08 18:06:05 -0800
-Branch: REL_10_STABLE [9b5c99790] 2017-12-08 18:06:22 -0800
-Branch: REL9_6_STABLE [140fa2fba] 2017-12-08 18:06:25 -0800
-Branch: REL9_5_STABLE [1c1a572d0] 2017-12-08 18:06:29 -0800
-Branch: REL9_4_STABLE [aed8d41af] 2017-12-08 18:13:49 -0800
-Branch: REL9_3_STABLE [188689942] 2017-12-08 18:14:08 -0800
--->
- <para>
- Fix MSVC build to test whether 32-bit libperl
- needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
- </para>
-
- <para>
- Available Perl distributions are inconsistent about what they expect,
- and lack any reliable means of reporting it, so resort to a build-time
- test on what the library being used actually does.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [cbfffee41] 2017-11-12 14:31:00 -0800
-Branch: REL_10_STABLE [d6387e27e] 2017-11-12 14:31:04 -0800
-Branch: REL9_6_STABLE [8c92e66f1] 2017-11-12 14:31:04 -0800
-Branch: REL9_5_STABLE [b2df91f2f] 2017-11-12 14:31:04 -0800
-Branch: REL9_4_STABLE [e17b38db6] 2017-11-12 14:31:04 -0800
-Branch: REL9_3_STABLE [1c065901e] 2017-11-12 14:31:05 -0800
--->
- <para>
- On Windows, install the crash dump handler earlier in postmaster
- startup (Takayuki Tsunakawa)
- </para>
-
- <para>
- This may allow collection of a core dump for some early-startup
- failures that did not produce a dump before.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [e02571b73] 2017-11-12 13:03:15 -0800
-Branch: REL_10_STABLE [dcbec53f4] 2017-11-12 13:03:28 -0800
-Branch: REL9_6_STABLE [fd5da32fc] 2017-11-12 13:03:28 -0800
-Branch: REL9_5_STABLE [d74db7a35] 2017-11-12 13:03:28 -0800
-Branch: REL9_4_STABLE [19cf9e96a] 2017-11-12 13:03:29 -0800
-Branch: REL9_3_STABLE [30e99efe8] 2017-11-12 13:05:55 -0800
--->
- <para>
- On Windows, avoid encoding-conversion-related crashes when emitting
- messages very early in postmaster startup (Takayuki Tsunakawa)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [84669c9b0] 2017-11-20 18:05:17 -0500
-Branch: REL_10_STABLE [ae772bbf9] 2017-11-20 18:05:02 -0500
-Branch: REL9_6_STABLE [fa9a69d3d] 2017-11-20 18:05:02 -0500
-Branch: REL9_5_STABLE [2cfafabe6] 2017-11-20 18:05:02 -0500
-Branch: REL9_4_STABLE [13f2bdb63] 2017-11-20 18:05:03 -0500
-Branch: REL9_3_STABLE [1056dd0e9] 2017-11-20 18:05:03 -0500
--->
- <para>
- Use our existing Motorola 68K spinlock code on OpenBSD as
- well as NetBSD (David Carlier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3bd00c01] 2017-11-20 18:05:17 -0500
-Branch: REL_10_STABLE [1ecf7eeb8] 2017-11-20 17:57:46 -0500
-Branch: REL9_6_STABLE [940bafa75] 2017-11-20 17:57:46 -0500
-Branch: REL9_5_STABLE [516cea4bb] 2017-11-20 17:57:46 -0500
-Branch: REL9_4_STABLE [8bd8b4b77] 2017-11-20 17:57:46 -0500
-Branch: REL9_3_STABLE [0245c75f4] 2017-11-20 17:57:46 -0500
--->
- <para>
- Add support for spinlocks on Motorola 88K (David Carlier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [41fc04ff9] 2018-01-27 16:42:28 -0500
-Branch: REL_10_STABLE [2d71b2700] 2018-01-27 16:42:36 -0500
-Branch: REL9_6_STABLE [462402be8] 2018-01-27 16:42:44 -0500
-Branch: REL9_5_STABLE [b00e7555e] 2018-01-27 16:42:49 -0500
-Branch: REL9_4_STABLE [fa86a32f9] 2018-01-27 16:42:55 -0500
-Branch: REL9_3_STABLE [e5e2cc6f8] 2018-01-27 16:43:00 -0500
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2018c for DST law changes in Brazil, Sao Tome and Principe,
- plus historical corrections for Bolivia, Japan, and South Sudan.
- The <literal>US/Pacific-New</literal> zone has been removed (it was
- only an alias for <literal>America/Los_Angeles</literal> anyway).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10-1">
- <title>Release 10.1</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-11-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 10.0.
- For information about new features in major release 10, see
- <xref linkend="release-10"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 10.1</title>
-
- <para>
- A dump/restore is not required for those running 10.X.
- </para>
-
- <para>
- However, if you use BRIN indexes, see the fourth changelog entry below.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-Branch: master [87b2ebd35] 2017-11-06 09:19:22 +0000
-Branch: REL_10_STABLE [3f8089572] 2017-11-06 09:17:44 +0000
-Branch: REL9_6_STABLE [1f23d1cd2] 2017-11-06 09:16:24 +0000
-Branch: REL9_5_STABLE [045a18888] 2017-11-06 09:15:11 +0000
--->
- <para>
- Ensure that <literal>INSERT ... ON CONFLICT DO UPDATE</literal> checks
- table permissions and RLS policies in all cases (Dean Rasheed)
- </para>
-
- <para>
- The update path of <literal>INSERT ... ON CONFLICT DO UPDATE</literal>
- requires <literal>SELECT</literal> permission on the columns of the
- arbiter index, but it failed to check for that in the case of an
- arbiter specified by constraint name.
- In addition, for a table with row level security enabled, it failed to
- check updated rows against the table's <literal>SELECT</literal>
- policies (regardless of how the arbiter index was specified).
- (CVE-2017-15099)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [b57422871] 2017-11-06 10:29:37 -0500
-Branch: REL_10_STABLE [c30f082d2] 2017-11-06 10:29:38 -0500
-Branch: REL9_6_STABLE [38e825632] 2017-11-06 10:29:39 -0500
-Branch: REL9_5_STABLE [d5fe5fb23] 2017-11-06 10:29:40 -0500
-Branch: REL9_4_STABLE [70846ee05] 2017-11-06 10:29:41 -0500
-Branch: REL9_3_STABLE [c0c8807de] 2017-11-06 10:29:42 -0500
--->
- <para>
- Fix crash due to rowtype mismatch
- in <function>json{b}_populate_recordset()</function>
- (Michael Paquier, Tom Lane)
- </para>
-
- <para>
- These functions used the result rowtype specified in the <literal>FROM
- ... AS</literal> clause without checking that it matched the actual
- rowtype of the supplied tuple value. If it didn't, that would usually
- result in a crash, though disclosure of server memory contents seems
- possible as well.
- (CVE-2017-15098)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [dfc015dcf] 2017-11-06 07:11:10 -0800
-Branch: REL_10_STABLE [6b0b983f7] 2017-11-06 07:11:13 -0800
-Branch: REL9_6_STABLE [b7d6f7507] 2017-11-06 07:11:13 -0800
-Branch: REL9_5_STABLE [ed546dd06] 2017-11-06 07:11:13 -0800
-Branch: REL9_4_STABLE [29d067051] 2017-11-06 07:11:13 -0800
-Branch: REL9_3_STABLE [b50029768] 2017-11-06 07:11:13 -0800
-Branch: REL9_2_STABLE [eda780281] 2017-11-06 07:11:13 -0800
--->
- <para>
- Fix sample server-start scripts to become <literal>$PGUSER</literal>
- before opening <literal>$PGLOG</literal> (Noah Misch)
- </para>
-
- <para>
- Previously, the postmaster log file was opened while still running as
- root. The database owner could therefore mount an attack against
- another system user by making <literal>$PGLOG</literal> be a symbolic
- link to some other file, which would then become corrupted by appending
- log messages.
- </para>
-
- <para>
- By default, these scripts are not installed anywhere. Users who have
- made use of them will need to manually recopy them, or apply the same
- changes to their modified versions. If the
- existing <literal>$PGLOG</literal> file is root-owned, it will need to
- be removed or renamed out of the way before restarting the server with
- the corrected script.
- (CVE-2017-12172)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [ec42a1dcb] 2017-11-03 17:23:13 +0100
-Branch: REL_10_STABLE [37a856567] 2017-11-03 17:23:13 +0100
-Branch: REL9_6_STABLE [bd8e2b3cf] 2017-11-03 17:23:13 +0100
-Branch: REL9_5_STABLE [cf0612aa2] 2017-11-03 17:23:13 +0100
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [1b890562b] 2017-11-03 20:45:36 +0100
-Branch: REL_10_STABLE [b17870d75] 2017-11-03 20:47:44 +0100
--->
- <para>
- Fix BRIN index summarization to handle concurrent table extension
- correctly (Álvaro Herrera)
- </para>
-
- <para>
- Previously, a race condition allowed some table rows to be omitted from
- the index. It may be necessary to reindex existing BRIN indexes to
- recover from past occurrences of this problem.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [62a16572d] 2017-11-02 12:54:55 -0400
-Branch: REL_10_STABLE [97ba7b8c8] 2017-11-02 12:54:22 -0400
-Branch: REL9_6_STABLE [a43cd427e] 2017-11-02 12:54:23 -0400
-Branch: REL9_5_STABLE [43276abc6] 2017-11-02 12:54:23 -0400
--->
- <para>
- Fix possible failures during concurrent updates of a BRIN index
- (Tom Lane)
- </para>
-
- <para>
- These race conditions could result in errors like <quote>invalid index
- offnum</quote> or <quote>inconsistent range map</quote>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [a9fce6672] 2017-11-03 12:27:59 -0400
-Branch: REL_10_STABLE [a14b52c61] 2017-11-03 12:28:08 -0400
--->
- <para>
- Prevent logical replication from setting non-replicated columns to
- nulls when replicating an <command>UPDATE</command> (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [360fd1a7b] 2017-10-12 10:26:55 -0400
-Branch: REL_10_STABLE [7cde649ab] 2017-10-12 10:26:54 -0400
--->
- <para>
- Fix logical replication to fire <literal>BEFORE ROW DELETE</literal>
- triggers when expected (Masahiko Sawada)
- </para>
-
- <para>
- Previously, that failed to happen unless the table also had
- a <literal>BEFORE ROW UPDATE</literal> trigger.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [1518d0784] 2017-10-06 19:18:58 -0400
-Branch: REL_10_STABLE [485d49dbc] 2017-10-06 19:18:58 -0400
-Branch: REL9_6_STABLE [185279da3] 2017-10-06 19:18:58 -0400
-Branch: REL9_5_STABLE [13d2ed921] 2017-10-06 19:18:59 -0400
-Branch: REL9_4_STABLE [bfb69b1e5] 2017-10-06 19:18:59 -0400
--->
- <para>
- Fix crash when logical decoding is invoked from a SPI-using function,
- in particular any function written in a PL language
- (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [7421f4b89] 2017-10-16 17:56:54 -0400
-Branch: REL_10_STABLE [799037099] 2017-10-16 17:56:43 -0400
--->
- <para>
- Ignore CTEs when looking up the target table for
- <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>,
- and prevent matching schema-qualified target table names to trigger
- transition table names (Thomas Munro)
- </para>
-
- <para>
- This restores the pre-v10 behavior for CTEs attached to DML commands.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [c3dfe0fec] 2017-10-16 15:24:36 -0400
-Branch: REL_10_STABLE [72e9cc971] 2017-10-16 15:24:36 -0400
--->
- <para>
- Avoid evaluating an aggregate function's argument expression(s) at rows
- where its <literal>FILTER</literal> test fails (Tom Lane)
- </para>
-
- <para>
- This restores the pre-v10 (and SQL-standard) behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [08f1e1f0a] 2017-10-26 12:17:40 -0400
-Branch: REL_10_STABLE [6a81ba1d4] 2017-10-26 12:17:40 -0400
-Branch: REL9_6_STABLE [37b4e0fe9] 2017-10-26 12:17:40 -0400
--->
- <para>
- Fix incorrect query results when multiple <literal>GROUPING
- SETS</literal> columns contain the same simple variable (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [a1c2c430d] 2017-10-06 14:28:42 -0400
-Branch: REL_10_STABLE [0c25e9652] 2017-10-06 14:28:42 -0400
--->
- <para>
- Fix query-lifespan memory leakage while evaluating a set-returning
- function in a <command>SELECT</command>'s target list (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [682ce911f] 2017-10-27 22:22:39 +0200
-Branch: REL_10_STABLE [a87c0c763] 2017-10-29 20:48:51 +0530
--->
- <para>
- Allow parallel execution of prepared statements with generic plans
- (Amit Kapila, Kuntal Ghosh)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [639c1a6bb] 2017-10-27 16:04:01 +0200
-Branch: REL_10_STABLE [965a16fa9] 2017-10-27 16:04:10 +0200
-Branch: REL9_6_STABLE [036b6bd50] 2017-10-27 16:12:16 +0200
--->
- <para>
- Fix incorrect parallelization decisions for nested queries
- (Amit Kapila, Kuntal Ghosh)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [846fcc851] 2017-10-29 12:58:40 +0530
-Branch: REL_10_STABLE [69125c883] 2017-10-29 13:04:37 +0530
-Branch: REL9_6_STABLE [f74f871b8] 2017-10-29 13:14:37 +0530
--->
- <para>
- Fix parallel query handling to not fail when a recently-used role is
- dropped (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-Branch: master [6393613b6] 2017-10-13 15:02:45 -0400
-Branch: REL_10_STABLE [a3b1c2218] 2017-10-13 15:05:14 -0400
--->
- <para>
- Fix crash in parallel execution of a bitmap scan having a BitmapAnd
- plan node below a BitmapOr node (Dilip Kumar)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [f3c6e8a27] 2017-10-25 07:13:11 -0400
-Branch: REL_10_STABLE [fb17082d7] 2017-10-25 07:14:21 -0400
-Branch: REL9_6_STABLE [5c3a1bbb4] 2017-10-25 07:19:59 -0400
-Branch: REL9_5_STABLE [5c8dcd322] 2017-10-25 07:20:37 -0400
-Branch: REL9_4_STABLE [7f89fc418] 2017-10-25 07:20:48 -0400
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [18fc4ecf4] 2017-10-25 07:34:00 -0400
-Branch: REL_10_STABLE [06d5ba0d4] 2017-10-25 07:40:33 -0400
-Branch: REL9_6_STABLE [98efa5ebf] 2017-10-25 07:48:36 -0400
-Branch: REL9_5_STABLE [3cc5f0550] 2017-10-25 07:49:13 -0400
-Branch: REL9_4_STABLE [9cb28e98b] 2017-10-25 07:52:45 -0400
--->
- <para>
- Fix <function>json_build_array()</function>,
- <function>json_build_object()</function>, and their <type>jsonb</type>
- equivalents to handle explicit <literal>VARIADIC</literal> arguments
- correctly (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [be72b9c37] 2017-10-30 15:52:02 +0100
-Branch: REL_10_STABLE [52ca7572c] 2017-10-30 15:52:13 +0100
--->
- <para>
- Fix autovacuum's <quote>work item</quote> logic to prevent possible
- crashes and silent loss of work items (Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d5b760ecb] 2017-10-27 17:28:54 -0400
-Branch: REL_10_STABLE [ddde3b4f3] 2017-10-27 17:10:21 -0400
-Branch: REL9_6_STABLE [7e5e8b36d] 2017-10-27 17:10:21 -0400
-Branch: REL9_5_STABLE [acd3287e4] 2017-10-27 17:10:21 -0400
-Branch: REL9_4_STABLE [66104119e] 2017-10-27 17:10:21 -0400
-Branch: REL9_3_STABLE [9d15b8b36] 2017-10-27 17:10:21 -0400
-Branch: REL9_2_STABLE [80e79718d] 2017-10-27 17:10:21 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [d76886c2d] 2017-10-27 18:16:24 -0400
-Branch: REL_10_STABLE [291a31c42] 2017-10-27 18:16:25 -0400
-Branch: REL9_6_STABLE [21daada10] 2017-10-27 18:16:25 -0400
-Branch: REL9_5_STABLE [1f81c2cd5] 2017-10-27 18:16:25 -0400
-Branch: REL9_4_STABLE [d01d97c25] 2017-10-27 18:16:25 -0400
-Branch: REL9_3_STABLE [e06b9e9dc] 2017-10-27 18:16:25 -0400
-Branch: REL9_2_STABLE [a4c11c103] 2017-10-27 18:16:25 -0400
--->
- <para>
- Fix corner-case crashes when columns have been added to the end of a
- view (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [f3ea3e3e8] 2017-10-23 13:57:45 -0400
-Branch: REL_10_STABLE [df4aa6e4e] 2017-10-23 13:57:45 -0400
-Branch: REL9_6_STABLE [285b850d5] 2017-10-23 13:57:45 -0400
-Branch: REL9_5_STABLE [aa0518301] 2017-10-23 13:57:45 -0400
-Branch: REL9_4_STABLE [d8a3be52f] 2017-10-23 13:57:45 -0400
-Branch: REL9_3_STABLE [dde99de11] 2017-10-23 13:57:46 -0400
-Branch: REL9_2_STABLE [900a9fd64] 2017-10-23 13:57:46 -0400
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [6784d7a1d] 2017-10-27 12:19:09 -0400
-Branch: REL_10_STABLE [8be102242] 2017-10-27 12:19:11 -0400
-Branch: REL9_6_STABLE [cf0331a54] 2017-10-27 12:18:57 -0400
-Branch: REL9_5_STABLE [37fb01cb0] 2017-10-27 12:18:57 -0400
-Branch: REL9_4_STABLE [376ac922d] 2017-10-27 12:18:57 -0400
-Branch: REL9_3_STABLE [be203c36a] 2017-10-27 12:18:57 -0400
-Branch: REL9_2_STABLE [adcfa7bd1] 2017-10-27 12:18:57 -0400
--->
- <para>
- Record proper dependencies when a view or rule
- contains <structname>FieldSelect</structname>
- or <structname>FieldStore</structname> expression nodes (Tom Lane)
- </para>
-
- <para>
- Lack of these dependencies could allow a column or data
- type <command>DROP</command> to go through when it ought to fail,
- thereby causing later uses of the view or rule to get errors.
- This patch does not do anything to protect existing views/rules,
- only ones created in the future.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [36ea99c84] 2017-10-20 17:12:27 -0400
-Branch: REL_10_STABLE [7a5f8de55] 2017-10-20 17:12:27 -0400
-Branch: REL9_6_STABLE [b1752c3a7] 2017-10-20 17:12:27 -0400
-Branch: REL9_5_STABLE [63fbc51e3] 2017-10-20 17:12:27 -0400
-Branch: REL9_4_STABLE [d1ced6114] 2017-10-20 17:12:27 -0400
-Branch: REL9_3_STABLE [7c70a129e] 2017-10-20 17:12:27 -0400
-Branch: REL9_2_STABLE [0270ad1f7] 2017-10-20 17:12:28 -0400
--->
- <para>
- Correctly detect hashability of range data types (Tom Lane)
- </para>
-
- <para>
- The planner mistakenly assumed that any range type could be hashed
- for use in hash joins or hash aggregation, but actually it must check
- whether the range's subtype has hash support. This does not affect any
- of the built-in range types, since they're all hashable anyway.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [e9ef11ac8] 2017-10-12 17:23:47 +0200
-Branch: REL_10_STABLE [a01a3d931] 2017-10-12 17:32:48 +0200
--->
- <para>
- Correctly ignore <structname>RelabelType</structname> expression nodes
- when examining functional-dependency statistics (David Rowley)
- </para>
-
- <para>
- This allows, e.g., extended statistics on <type>varchar</type> columns
- to be used properly.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [52328727b] 2017-10-11 22:18:10 -0400
-Branch: REL_10_STABLE [604723d29] 2017-10-11 22:18:01 -0400
-Branch: REL9_6_STABLE [96cfc7e19] 2017-10-11 22:18:01 -0400
--->
- <para>
- Prevent sharing transition states between ordered-set aggregates
- (David Rowley)
- </para>
-
- <para>
- This causes a crash with the built-in ordered-set aggregates, and
- probably with user-written ones as well. v11 and later will include
- provisions for dealing with such cases safely, but in released
- branches, just disable the optimization.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: master [f67661665] 2017-10-11 14:02:41 -0700
-Branch: REL_10_STABLE [61ace8fe7] 2017-10-11 14:02:41 -0700
-Branch: REL9_6_STABLE [0da46d75e] 2017-10-11 14:02:41 -0700
--->
- <para>
- Prevent <varname>idle_in_transaction_session_timeout</varname> from
- being ignored when a <varname>statement_timeout</varname> occurred
- earlier (Lukas Fittl)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [118e99c3d] 2017-10-11 14:28:33 -0400
-Branch: REL_10_STABLE [f4cdf781a] 2017-10-11 14:28:33 -0400
-Branch: REL9_6_STABLE [36c687a22] 2017-10-11 14:28:33 -0400
-Branch: REL9_5_STABLE [69bc245d9] 2017-10-11 14:28:33 -0400
-Branch: REL9_4_STABLE [0e84f7075] 2017-10-11 14:28:33 -0400
-Branch: REL9_3_STABLE [7573d122f] 2017-10-11 14:28:33 -0400
-Branch: REL9_2_STABLE [525b09ada] 2017-10-11 14:28:34 -0400
--->
- <para>
- Fix low-probability loss of <command>NOTIFY</command> messages due to
- XID wraparound (Marko Tiikkaja, Tom Lane)
- </para>
-
- <para>
- If a session executed no queries, but merely listened for
- notifications, for more than 2 billion transactions, it started to miss
- some notifications from concurrently-committing transactions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [643c27e36] 2017-10-08 15:25:26 -0400
-Branch: REL_10_STABLE [c3723317d] 2017-10-08 15:25:26 -0400
-Branch: REL9_6_STABLE [13a8924ec] 2017-10-08 15:25:26 -0400
--->
- <para>
- Reduce the frequency of data flush requests during bulk file copies to
- avoid performance problems on macOS, particularly with its new APFS
- file system (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [bab3a714b] 2017-11-05 09:25:52 -0800
-Branch: REL_10_STABLE [2168f37c4] 2017-11-05 09:25:59 -0800
-Branch: REL9_6_STABLE [1cac62dac] 2017-11-05 09:26:28 -0800
-Branch: REL9_5_STABLE [7932891ab] 2017-11-05 09:26:43 -0800
-Branch: REL9_4_STABLE [2a2e2e85e] 2017-11-05 09:26:47 -0800
--->
- <para>
- Allow <command>COPY</command>'s <literal>FREEZE</literal> option to
- work when the transaction isolation level is <literal>REPEATABLE
- READ</literal> or higher (Noah Misch)
- </para>
-
- <para>
- This case was unintentionally broken by a previous bug fix.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [305cf1fd7] 2017-10-12 15:20:16 -0400
-Branch: REL_10_STABLE [d48bf6a94] 2017-10-12 15:20:04 -0400
-Branch: REL9_6_STABLE [aa1e9b3a4] 2017-10-12 15:20:04 -0400
--->
- <para>
- Fix <function>AggGetAggref()</function> to return the
- correct <structname>Aggref</structname> nodes to aggregate final
- functions whose transition calculations have been merged (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [080351466] 2017-10-31 13:40:23 -0400
-Branch: REL_10_STABLE [9cf2b854a] 2017-10-31 13:40:23 -0400
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [51f4d3ed7] 2017-11-01 19:16:14 -0700
-Branch: REL_10_STABLE [f4e13963c] 2017-11-01 19:16:17 -0700
--->
- <para>
- Fix insufficient schema-qualification in some new queries
- in <application>pg_dump</application>
- and <application>psql</application>
- (Vitaly Burovoy, Tom Lane, Noah Misch)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [471d55859] 2017-10-22 16:45:16 -0400
-Branch: REL_10_STABLE [852e3224e] 2017-10-22 16:45:26 -0400
--->
- <para>
- Avoid use of <literal>@></literal> operator
- in <application>psql</application>'s queries for <command>\d</command>
- (Tom Lane)
- </para>
-
- <para>
- This prevents problems when the <application>parray_gin</application>
- extension is installed, since that defines a conflicting operator.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [067a2259f] 2017-11-01 10:20:05 -0400
-Branch: REL_10_STABLE [dd12b5307] 2017-11-01 21:41:45 -0400
-Branch: REL9_6_STABLE [4ba0ffaae] 2017-11-01 21:44:55 -0400
-Branch: REL9_5_STABLE [3064f0e25] 2017-11-01 21:45:11 -0400
--->
- <para>
- Fix <application>pg_basebackup</application>'s matching of tablespace
- paths to canonicalize both paths before comparing (Michael Paquier)
- </para>
-
- <para>
- This is particularly helpful on Windows.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [db6986f47] 2017-10-25 19:32:24 -0400
-Branch: REL_10_STABLE [51e9fffba] 2017-10-25 19:32:24 -0400
-Branch: REL9_6_STABLE [7dc66a2f6] 2017-10-25 19:32:24 -0400
-Branch: REL9_5_STABLE [ee02c1c89] 2017-10-25 19:32:24 -0400
-Branch: REL9_4_STABLE [9f7afb25b] 2017-10-25 19:32:24 -0400
-Branch: REL9_3_STABLE [6dd7a1207] 2017-10-25 19:32:24 -0400
-Branch: REL9_2_STABLE [caeae886e] 2017-10-25 19:32:25 -0400
--->
- <para>
- Fix <application>libpq</application> to not require user's home
- directory to exist (Tom Lane)
- </para>
-
- <para>
- In v10, failure to find the home directory while trying to
- read <filename>~/.pgpass</filename> was treated as a hard error,
- but it should just cause that file to not be found. Both v10 and
- previous release branches made the same mistake when
- reading <filename>~/.pg_service.conf</filename>, though this was less
- obvious since that file is not sought unless a service name is
- specified.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [0af98a95c] 2017-10-26 10:16:04 +0200
-Branch: REL_10_STABLE [65ba1b5c2] 2017-10-26 10:39:37 +0200
-Branch: REL9_6_STABLE [41753604b] 2017-10-26 10:39:46 +0200
-Branch: REL9_5_STABLE [9b01a21fc] 2017-10-26 10:39:54 +0200
-Branch: REL9_4_STABLE [c6a396888] 2017-10-26 10:40:03 +0200
--->
- <para>
- In ecpglib, correctly handle backslashes in string literals depending
- on whether <varname>standard_conforming_strings</varname> is set
- (Tsunakawa Takayuki)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [63d6b97fd] 2017-11-01 13:32:18 +0100
-Branch: REL_10_STABLE [e4381c039] 2017-11-01 13:40:27 +0100
-Branch: REL9_6_STABLE [e0ec1cbff] 2017-11-01 13:40:50 +0100
-Branch: REL9_5_STABLE [d2e6bd13a] 2017-11-01 13:41:00 +0100
-Branch: REL9_4_STABLE [18647e21d] 2017-11-01 13:41:12 +0100
-Branch: REL9_3_STABLE [d64a4d368] 2017-11-01 13:41:21 +0100
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [6976a4f05] 2017-11-02 20:49:47 +0100
-Branch: REL_10_STABLE [ee46980a7] 2017-11-02 20:51:00 +0100
-Branch: REL9_6_STABLE [049dab009] 2017-11-02 20:51:13 +0100
-Branch: REL9_5_STABLE [b6d95939e] 2017-11-02 20:51:23 +0100
-Branch: REL9_4_STABLE [ad24e7bc2] 2017-11-02 20:51:34 +0100
-Branch: REL9_3_STABLE [7a35507ac] 2017-11-02 20:51:44 +0100
-Author: Michael Meskes <meskes@postgresql.org>
-Branch: master [7164991ca] 2017-11-03 11:15:14 +0100
-Branch: REL_10_STABLE [c63568b06] 2017-11-03 12:41:39 +0100
-Branch: REL9_6_STABLE [6cf68e223] 2017-11-03 12:41:23 +0100
-Branch: REL9_5_STABLE [90d61bd1d] 2017-11-03 12:41:11 +0100
-Branch: REL9_4_STABLE [946f16518] 2017-11-03 12:40:54 +0100
-Branch: REL9_3_STABLE [deb429b51] 2017-11-03 12:40:42 +0100
--->
- <para>
- Make ecpglib's Informix-compatibility mode ignore fractional digits in
- integer input strings, as expected (Gao Zengqi, Michael Meskes)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Noah Misch <noah@leadboat.com>
-Branch: master [c66b438db] 2017-11-05 18:51:08 -0800
-Branch: REL_10_STABLE [937f67800] 2017-11-05 18:51:15 -0800
-Branch: REL9_6_STABLE [971983f42] 2017-11-05 18:52:38 -0800
-Branch: REL9_5_STABLE [014c5cd87] 2017-11-05 18:54:52 -0800
--->
- <para>
- Fix missing temp-install prerequisites
- for <literal>check</literal>-like Make targets (Noah Misch)
- </para>
-
- <para>
- Some non-default test procedures that are meant to work
- like <literal>make check</literal> failed to ensure that the temporary
- installation was up to date.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: master [8df4ce1ea] 2017-10-23 18:15:36 -0400
-Branch: REL_10_STABLE [0cde56247] 2017-10-23 18:15:42 -0400
-Branch: REL9_6_STABLE [fae550e52] 2017-10-23 18:15:47 -0400
-Branch: REL9_5_STABLE [1e57d85cd] 2017-10-23 18:15:51 -0400
-Branch: REL9_4_STABLE [ba67fac85] 2017-10-23 18:15:56 -0400
-Branch: REL9_3_STABLE [da82bb1d8] 2017-10-23 18:16:00 -0400
-Branch: REL9_2_STABLE [7e8d84c36] 2017-10-23 18:16:04 -0400
--->
- <para>
- Update time zone data files to <application>tzdata</application>
- release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
- Sudan, Tonga, and Turks & Caicos Islands, plus historical
- corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland,
- Namibia, and Pago Pago.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Peter Eisentraut <peter_e@gmx.net>
-Branch: master [49df45acd] 2017-11-03 14:14:02 -0400
-Branch: REL_10_STABLE [5159626af] 2017-11-03 14:14:16 -0400
--->
- <para>
- In the documentation, restore HTML anchors to being upper-case strings
- (Peter Eisentraut)
- </para>
-
- <para>
- Due to a toolchain change, the 10.0 user manual had lower-case strings
- for intrapage anchors, thus breaking some external links into our
- website documentation. Return to our previous convention of using
- upper-case strings.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-10">
- <title>Release 10</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2017-10-05</para>
- </formalpara>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- Major enhancements in <productname>PostgreSQL</productname> 10 include:
- </para>
-
- <!-- Items in this list summarize one or more items below -->
-
- <itemizedlist>
-
- <listitem><para>Logical replication using publish/subscribe</para></listitem>
- <listitem><para>Declarative table partitioning</para></listitem>
- <listitem><para>Improved query parallelism</para></listitem>
- <listitem><para>Significant general performance improvements</para></listitem>
- <listitem><para>Stronger password authentication based on SCRAM-SHA-256</para></listitem>
- <listitem><para>Improved monitoring and control</para></listitem>
- </itemizedlist>
-
- <para>
- The above items are explained in more detail in the sections below.
- </para>
-
- </sect2>
-
- <sect2>
-
- <title>Migration to Version 10</title>
-
- <para>
- A dump/restore using <xref linkend="app-pg-dumpall"/>, or use of <xref
- linkend="pgupgrade"/>, is required for those wishing to migrate data
- from any previous release.
- </para>
-
- <para>
- Version 10 contains a number of changes that may affect compatibility
- with previous releases. Observe the following incompatibilities:
- </para>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-04-03 [ea69a0dea] Expand hash indexes more gradually.
-2017-05-19 [a95410e2e] pg_upgrade: Handle hash index upgrades more smoothly.
-2017-08-04 [620b49a16] hash: Increase the number of possible overflow bitmaps b
--->
- <para>
- Hash indexes must be rebuilt after <application>pg_upgrade</application>-ing
- from any previous major <productname>PostgreSQL</productname> version (Mithun
- Cy, Robert Haas, Amit Kapila)
- </para>
-
- <para>
- Major hash index improvements necessitated this requirement.
- <application>pg_upgrade</application> will create a script to assist with this.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-20 [f82ec32ac] Rename "pg_xlog" directory to "pg_wal"
-2017-03-17 [88e66d193] Rename "pg_clog" directory to "pg_xact".
--->
- <para>
- Rename write-ahead log directory <filename>pg_xlog</filename>
- to <link linkend="wal"><filename>pg_wal</filename></link>, and rename transaction
- status directory <filename>pg_clog</filename> to <filename>pg_xact</filename>
- (Michael Paquier)
- </para>
-
- <para>
- Users have occasionally thought that these directories contained only
- inessential log files, and proceeded to remove write-ahead log files
- or transaction status files manually, causing irrecoverable data
- loss. These name changes are intended to discourage such errors in
- future.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-09 [806091c96] Remove all references to "xlog" from SQL-callable functi
-2017-02-09 [85c11324c] Rename user-facing tools with "xlog" in the name to say
-2017-02-09 [62e8b3875] Rename command line options for ongoing xlog -> wal conv
-2017-02-15 [0dfa89ba2] Replace reference to "xlog-method" with "wal-method" in
--->
- <para>
- Rename <acronym>SQL</acronym> functions, tools, and options that reference
- <quote>xlog</quote> to <quote>wal</quote> (Robert Haas)
- </para>
-
- <para>
- For example, <function>pg_switch_xlog()</function> becomes
- <function>pg_switch_wal()</function>, <application>pg_receivexlog</application>
- becomes <application>pg_receivewal</application>, and <option>--xlogdir</option>
- becomes <option>--waldir</option>. This is for consistency with the
- change of the <filename>pg_xlog</filename> directory name; in general,
- the <quote>xlog</quote> terminology is no longer used in any user-facing
- places.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-05-11 [d10c626de] Rename WAL-related functions and views to use "lsn" not
--->
- <para>
- Rename <acronym>WAL</acronym>-related functions and views to use <literal>lsn</literal>
- instead of <literal>location</literal> (David Rowley)
- </para>
-
- <para>
- There was previously an inconsistent mixture of the two terminologies.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-16 [d43a619c6] Fix check_srf_call_placement() to handle VALUES cases co
-2017-01-18 [69f4b9c85] Move targetlist SRF handling from expression evaluation
-2017-01-18 [f13a1277a] Doc: improve documentation of new SRF-in-tlist behavior.
-2017-06-13 [0436f6bde] Disallow set-returning functions inside CASE or COALESCE
--->
- <para>
- Change the implementation of set-returning functions appearing in
- a query's <literal>SELECT</literal> list (Andres Freund)
- </para>
-
- <para>
- Set-returning functions are now evaluated before evaluation of scalar
- expressions in the <literal>SELECT</literal> list, much as though they had
- been placed in a <literal>LATERAL FROM</literal>-clause item. This allows
- saner semantics for cases where multiple set-returning functions are
- present. If they return different numbers of rows, the shorter results
- are extended to match the longest result by adding nulls. Previously
- the results were cycled until they all terminated at the same time,
- producing a number of rows equal to the least common multiple of the
- functions' periods. In addition, set-returning functions are now
- disallowed within <literal>CASE</literal> and <literal>COALESCE</literal> constructs.
- For more information
- see <xref linkend="xfunc-sql-functions-returning-set"/>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-22 [906bfcad7] Improve handling of "UPDATE ... SET (column_list) = row_
--->
- <para>
- Use standard row constructor syntax in <literal>UPDATE ... SET
- (<replaceable>column_list</replaceable>) = <replaceable>row_constructor</replaceable></literal>
- (Tom Lane)
- </para>
-
- <para>
- The <replaceable>row_constructor</replaceable> can now begin with the
- keyword <literal>ROW</literal>; previously that had to be omitted.
- If just one column name appears in
- the <replaceable>column_list</replaceable>, then
- the <replaceable>row_constructor</replaceable> now must use
- the <literal>ROW</literal> keyword, since otherwise it is not a valid
- row constructor but just a parenthesized expression.
- Also, an occurrence
- of <literal><replaceable>table_name</replaceable>.*</literal> within
- the <replaceable>row_constructor</replaceable> is now expanded into
- multiple columns, as occurs in other uses
- of <replaceable>row_constructor</replaceable>s.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-04 [c30f1770a] Apply ALTER ... SET NOT NULL recursively in ALTER ... AD
--->
- <para>
- When <command>ALTER TABLE ... ADD PRIMARY KEY</command> marks
- columns <literal>NOT NULL</literal>, that change now propagates to
- inheritance child tables as well (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-09-16 [54d4d0ff6] Fix SQL-spec incompatibilities in new transition table f
-2017-09-17 [5cc234931] Ensure that BEFORE STATEMENT triggers fire the right num
--->
- <para>
- Prevent statement-level triggers from firing more than once per
- statement (Tom Lane)
- </para>
-
- <para>
- Cases involving writable CTEs updating the same table updated by the
- containing statement, or by another writable CTE, fired <literal>BEFORE
- STATEMENT</literal> or <literal>AFTER STATEMENT</literal> triggers more than once.
- Also, if there were statement-level triggers on a table affected by a
- foreign key enforcement action (such as <literal>ON DELETE CASCADE</literal>),
- they could fire more than once per outer SQL statement. This is
- contrary to the SQL standard, so change it.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-20 [1753b1b02] Add pg_sequence system catalog
-2016-11-18 [67dc4ccbb] Add pg_sequences view
-2017-05-15 [f8dc1985f] Fix ALTER SEQUENCE locking
-2017-06-01 [3d79013b9] Make ALTER SEQUENCE, including RESTART, fully transactio
-2017-09-29 [5cc5987ce] psql: Update \d sequence display
--->
- <para>
- Move sequences' metadata fields into a new <link
- linkend="catalog-pg-sequence"><structname>pg_sequence</structname></link>
- system catalog (Peter Eisentraut)
- </para>
-
- <para>
- A sequence relation now stores only the fields that can be modified
- by <function>nextval()</function>, that
- is <structfield>last_value</structfield>, <structfield>log_cnt</structfield>,
- and <structfield>is_called</structfield>. Other sequence properties, such as
- the starting value and increment, are kept in a corresponding row of
- the <structname>pg_sequence</structname> catalog.
- <command>ALTER SEQUENCE</command> updates are now fully transactional,
- implying that the sequence is locked until commit.
- The <function>nextval()</function> and <function>setval()</function> functions
- remain nontransactional.
- </para>
-
- <para>
- The main incompatibility introduced by this change is that selecting
- from a sequence relation now returns only the three fields named
- above. To obtain the sequence's other properties, applications must
- look into <structname>pg_sequence</structname>. The new system
- view <link linkend="view-pg-sequences"><structname>pg_sequences</structname></link>
- can also be used for this purpose; it provides column names that are
- more compatible with existing code.
- </para>
-
- <para>
- Also, sequences created for <literal>SERIAL</literal> columns now generate
- positive 32-bit wide values, whereas previous versions generated 64-bit
- wide values. This has no visible effect if the values are only stored in
- a column.
- </para>
-
- <para>
- The output of <application>psql</application>'s <command>\d</command> command for a
- sequence has been redesigned, too.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-04 [9a4d51077] Make wal streaming the default mode for pg_basebackup
--->
- <para>
- Make <application><xref linkend="app-pgbasebackup"/></application> stream the
- <acronym>WAL</acronym> needed to restore the backup by default (Magnus
- Hagander)
- </para>
-
- <para>
- This changes <application>pg_basebackup</application>'s
- <option>-X</option>/<option>--wal-method</option> default to <literal>stream</literal>.
- An option value <literal>none</literal> has been added to reproduce the old
- behavior. The <application>pg_basebackup</application> option <option>-x</option>
- has been removed (instead, use <literal>-X fetch</literal>).
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-13 [8df9bd0b4] Change logical replication pg_hba.conf use
--->
- <para>
- Change how logical replication
- uses <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
- (Peter Eisentraut)
- </para>
-
- <para>
- In previous releases, a logical replication connection required
- the <literal>replication</literal> keyword in the database column. As
- of this release, logical replication matches a normal entry with a
- database name or keywords such as <literal>all</literal>. Physical
- replication continues to use the <literal>replication</literal> keyword.
- Since built-in logical replication is new in this release, this
- change only affects users of third-party logical replication plugins.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-14 [05cd12ed5] pg_ctl: Change default to wait for all actions
--->
- <para>
- Make all <application><xref linkend="app-pg-ctl"/></application> actions wait
- for completion by default (Peter Eisentraut)
- </para>
-
- <para>
- Previously some <application>pg_ctl</application> actions didn't wait for
- completion, and required the use of <option>-w</option> to do so.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [3371e4d9b] Change default of log_directory to 'log'
--->
- <para>
- Change the default value of the <xref linkend="guc-log-directory"/>
- server parameter from <filename>pg_log</filename> to <filename>log</filename>
- (Andreas Karlsson)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-31 [c0a15e07c] Always use 2048 bit DH parameters for OpenSSL ephemeral
--->
- <para>
- Add configuration option <xref linkend="guc-ssl-dh-params-file"/> to
- specify file name for custom OpenSSL DH parameters (Heikki Linnakangas)
- </para>
-
- <para>
- This replaces the hardcoded, undocumented file
- name <filename>dh1024.pem</filename>. Note that <filename>dh1024.pem</filename> is
- no longer examined by default; you must set this option if you want
- to use custom DH parameters.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-31 [c0a15e07c] Always use 2048 bit DH parameters for OpenSSL ephemeral
--->
- <para>
- Increase the size of the default DH parameters used for OpenSSL
- ephemeral DH ciphers to 2048 bits (Heikki Linnakangas)
- </para>
-
- <para>
- The size of the compiled-in DH parameters has been increased from
- 1024 to 2048 bits, making DH key exchange more resistant to
- brute-force attacks. However, some old SSL implementations, notably
- some revisions of Java Runtime Environment version 6, will not accept
- DH parameters longer than 1024 bits, and hence will not be able to
- connect over SSL. If it's necessary to support such old clients, you
- can use custom 1024-bit DH parameters instead of the compiled-in
- defaults. See <xref linkend="guc-ssl-dh-params-file"/>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-05-08 [eb61136dc] Remove support for password_encryption='off' / 'plain'.
--->
- <para>
- Remove the ability to store unencrypted passwords on the server
- (Heikki Linnakangas)
- </para>
-
- <para>
- The <xref linkend="guc-password-encryption"/> server parameter
- no longer supports <literal>off</literal> or <literal>plain</literal>.
- The <literal>UNENCRYPTED</literal> option is no longer supported in
- <command>CREATE/ALTER USER ... PASSWORD</command>. Similarly, the
- <option>--unencrypted</option> option has been removed
- from <application>createuser</application>. Unencrypted passwords migrated from
- older versions will be stored encrypted in this release. The default
- setting for <varname>password_encryption</varname> is still
- <literal>md5</literal>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-15 [51ee6f316] Replace min_parallel_relation_size with two new GUCs.
--->
- <para>
- Add <xref linkend="guc-min-parallel-table-scan-size"/>
- and <xref linkend="guc-min-parallel-index-scan-size"/> server
- parameters to control parallel queries (Amit Kapila, Robert Haas)
- </para>
-
- <para>
- These replace <varname>min_parallel_relation_size</varname>, which was
- found to be too generic.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-20 [a69dfe5f4] Don't downcase entries within shared_preload_libraries e
--->
- <para>
- Don't downcase unquoted text
- within <xref linkend="guc-shared-preload-libraries"/> and related
- server parameters (QL Zhuo)
- </para>
-
- <para>
- These settings are really lists of file names, but they were
- previously treated as lists of SQL identifiers, which have different
- parsing rules.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-23 [e13486eba] Remove sql_inheritance GUC.
--->
- <para>
- Remove <varname>sql_inheritance</varname> server parameter (Robert Haas)
- </para>
-
- <para>
- Changing this setting from the default value caused queries referencing
- parent tables to not include child tables. The <acronym>SQL</acronym>
- standard requires them to be included, however, and this has been the
- default since <productname>PostgreSQL</productname> 7.1.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-26 [94aceed31] Support multi-dimensional arrays in PL/python.
-2016-10-26 [cfd9c87a5] Only treat Python Lists as array dimensions.
--->
- <para>
- Allow multi-dimensional arrays to be passed into PL/Python functions,
- and returned as nested Python lists (Alexey Grishchenko, Dave Cramer,
- Heikki Linnakangas)
- </para>
-
- <para>
- This feature requires a backwards-incompatible change to the handling
- of arrays of composite types in PL/Python. Previously, you could
- return an array of composite values by writing, e.g., <literal>[[col1,
- col2], [col1, col2]]</literal>; but now that is interpreted as a
- two-dimensional array. Composite types in arrays must now be written
- as Python tuples, not lists, to resolve the ambiguity; that is,
- write <literal>[(col1, col2), (col1, col2)]</literal> instead.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-27 [817f2a586] Remove PL/Tcl's "module" facility.
--->
- <para>
- Remove PL/Tcl's <quote>module</quote> auto-loading facility (Tom Lane)
- </para>
-
- <para>
- This functionality has been replaced by new server
- parameters <xref linkend="guc-pltcl-start-proc"/>
- and <xref linkend="guc-pltclu-start-proc"/>, which are easier to use
- and more similar to features available in other PLs.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-12 [64f3524e2] Remove pg_dump/pg_dumpall support for dumping from pre-8
--->
- <para>
- Remove <application>pg_dump</application>/<application>pg_dumpall</application> support
- for dumping from pre-8.0 servers (Tom Lane)
- </para>
-
- <para>
- Users needing to dump from pre-8.0 servers will need to use dump
- programs from <productname>PostgreSQL</productname> 9.6 or earlier. The
- resulting output should still load successfully into newer servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-23 [b6aa17e0a] De-support floating-point timestamps.
--->
- <para>
- Remove support for floating-point timestamps and intervals (Tom Lane)
- </para>
-
- <para>
- This removes configure's <option>--disable-integer-datetimes</option>
- option. Floating-point timestamps have few advantages and have not
- been the default since <productname>PostgreSQL</productname> 8.3.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-11 [2f1eaf87e] Drop server support for FE/BE protocol version 1.0.
--->
- <para>
- Remove server support for client/server protocol version 1.0 (Tom Lane)
- </para>
-
- <para>
- This protocol hasn't had client support
- since <productname>PostgreSQL</productname> 6.3.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-13 [7ada2d31f] Remove contrib/tsearch2.
--->
- <para>
- Remove <filename>contrib/tsearch2</filename> module (Robert Haas)
- </para>
-
- <para>
- This module provided compatibility with the version of full text
- search that shipped in pre-8.3 <productname>PostgreSQL</productname> releases.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [50c956add] Remove createlang and droplang
--->
- <para>
- Remove <application>createlang</application> and <application>droplang</application>
- command-line applications (Peter Eisentraut)
- </para>
-
- <para>
- These had been deprecated since <productname>PostgreSQL</productname> 9.1.
- Instead, use <command>CREATE EXTENSION</command> and <command>DROP
- EXTENSION</command> directly.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-30 [5ded4bd21] Remove support for version-0 calling conventions.
--->
- <para>
- Remove support for version-0 function calling conventions (Andres
- Freund)
- </para>
-
- <para>
- Extensions providing C-coded functions must now conform to version 1
- calling conventions. Version 0 has been deprecated since 2001.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <para>
- Below you will find a detailed account of the changes between
- <productname>PostgreSQL</productname> 10 and the previous major
- release.
- </para>
-
- <sect3>
- <title>Server</title>
-
- <sect4>
- <title>Parallel Queries</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-02-15 [569174f1b] btree: Support parallel index scans.
-2017-02-15 [5262f7a4f] Add optimizer and executor support for parallel index sc
-2017-02-19 [0414b26ba] Add optimizer and executor support for parallel index-on
--->
- <para>
- Support parallel B-tree index scans (Rahila Syed, Amit Kapila,
- Robert Haas, Rafia Sabih)
- </para>
-
- <para>
- This change allows B-tree index pages to be searched by separate
- parallel workers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-08 [98e6e8904] tidbitmap: Support shared iteration.
-2017-03-08 [f35742ccb] Support parallel bitmap heap scans.
--->
- <para>
- Support parallel bitmap heap scans (Dilip Kumar)
- </para>
-
- <para>
- This allows a single index scan to dispatch parallel workers to
- process different areas of the heap.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [3bc7dafa9] Consider parallel merge joins.
--->
- <para>
- Allow merge joins to be performed in parallel (Dilip Kumar)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-14 [5e6d8d2bb] Allow parallel workers to execute subplans.
--->
- <para>
- Allow non-correlated subqueries to be run in parallel (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-09 [355d3993c] Add a Gather Merge executor node.
--->
- <para>
- Improve ability of parallel workers to return pre-sorted data
- (Rushabh Lathia)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-24 [61c2e1a95] Improve access to parallel query from procedural languag
--->
- <para>
- Increase parallel query usage in procedural language functions
- (Robert Haas, Rafia Sabih)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-02 [b460f5d66] Add max_parallel_workers GUC.
-2016-12-05 [2b959d495] Reduce the default for max_worker_processes back to 8.
--->
- <para>
- Add <xref linkend="guc-max-parallel-workers"/> server parameter
- to limit the number of worker processes that can be used for
- query parallelism (Julien Rouhaud)
- </para>
-
- <para>
- This parameter can be set lower than <xref
- linkend="guc-max-worker-processes"/> to reserve worker processes
- for purposes other than parallel queries.
- </para>
- </listitem>
-
- <listitem>
-<!--
-This was disabled in the PG 9.6 branch so there is no commit here.
--->
- <para>
- Enable parallelism by default by changing the default setting
- of <xref linkend="guc-max-parallel-workers-per-gather"/> to
- <literal>2</literal>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Indexes</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-02-27 [30df93f69] hash: Refactor overflow page allocation.
-2017-03-14 [c11453ce0] hash: Add write-ahead logging support.
-2017-02-27 [b0f18cb77] hash: Refactor bucket squeeze code.
--->
- <para>
- Add write-ahead logging support to hash indexes (Amit Kapila)
- </para>
-
- <para>
- This makes hash indexes crash-safe and replicatable.
- The former warning message about their use is removed.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-30 [6d46f4783] Improve hash index bucket split behavior.
-2017-02-07 [293e24e50] Cache hash index's metapage in rel->rd_amcache.
-2017-03-15 [6977b8b7f] Port single-page btree vacuum logic to hash indexes.
-2017-04-03 [ea69a0dea] Expand hash indexes more gradually.
-2017-08-04 [620b49a16] hash: Increase the number of possible overflow bitmaps b
--->
- <para>
- Improve hash index performance (Amit Kapila, Mithun Cy, Ashutosh
- Sharma)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-23 [77e290682] Create an SP-GiST opclass for inet/cidr.
--->
- <para>
- Add <acronym>SP-GiST</acronym> index support for <type>INET</type> and
- <type>CIDR</type> data types (Emre Hasegeli)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-01 [7526e1022] BRIN auto-summarization
--->
- <para>
- Add option to allow <acronym>BRIN</acronym> index summarization to happen
- more aggressively (Álvaro Herrera)
- </para>
-
- <para>
- A new <link linkend="sql-createindex"><command>CREATE
- INDEX</command></link> option enables auto-summarization of the
- previous <acronym>BRIN</acronym> page range when a new page
- range is created.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-01 [c655899ba] BRIN de-summarization
--->
- <para>
- Add functions to remove and re-add <acronym>BRIN</acronym>
- summarization for <acronym>BRIN</acronym> index ranges (Álvaro
- Herrera)
- </para>
-
- <para>
- The new <acronym>SQL</acronym> function <link
- linkend="functions-admin-index-table"><function>brin_summarize_range()</function></link>
- updates <acronym>BRIN</acronym> index summarization for a specified
- range and <function>brin_desummarize_range()</function> removes it.
- This is helpful to update summarization of a range that is now
- smaller due to <command>UPDATE</command>s and <command>DELETE</command>s.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [7e534adcd] Fix BRIN cost estimation
--->
- <para>
- Improve accuracy in determining if a <acronym>BRIN</acronym> index scan
- is beneficial (David Rowley, Emre Hasegeli)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-09 [b1328d78f] Invent PageIndexTupleOverwrite, and teach BRIN and GiST
--->
- <para>
- Allow faster <acronym>GiST</acronym> inserts and updates by reusing
- index space more efficiently (Andrey Borodin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [218f51584] Reduce page locking in GIN vacuum
--->
- <para>
- Reduce page locking during vacuuming of <acronym>GIN</acronym> indexes
- (Andrey Borodin)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
-
- <title>Locking</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-06 [21d4e2e20] Reduce lock levels for table storage params related to p
-2017-04-05 [68ea2b7f9] Reduce lock level for CREATE STATISTICS
--->
- <para>
- Reduce locking required to change table parameters (Simon Riggs,
- Fabrízio Mello)
- </para>
-
- <para>
- For example, changing a table's <xref
- linkend="guc-effective-io-concurrency"/> setting can now be done
- with a more lightweight lock.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-07 [c63172d60] Add GUCs for predicate lock promotion thresholds.
--->
- <para>
- Allow tuning of predicate lock promotion thresholds (Dagfinn
- Ilmari Mannsåker)
- </para>
-
- <para>
- Lock promotion can now be controlled through two new server
- parameters, <xref
- linkend="guc-max-pred-locks-per-relation"/> and
- <xref linkend="guc-max-pred-locks-per-page"/>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Optimizer</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-24 [7b504eb28] Implement multivariate n-distinct coefficients
-2017-04-05 [2686ee1b7] Collect and use multi-column dependency stats
-2017-05-12 [bc085205c] Change CREATE STATISTICS syntax
--->
- <para>
- Add multi-column optimizer statistics to compute the correlation
- ratio and number of distinct values (Tomas Vondra, David Rowley,
- Álvaro Herrera)
- </para>
-
- <para>
- New commands are <link
- linkend="sql-createstatistics"><command>CREATE STATISTICS</command></link>,
- <link linkend="sql-alterstatistics"><command>ALTER STATISTICS</command></link>, and
- <link linkend="sql-dropstatistics"><command>DROP STATISTICS</command></link>.
- This feature is helpful in estimating query memory usage and when
- combining the statistics from individual columns.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-18 [215b43cdc] Improve RLS planning by marking individual quals with se
--->
- <para>
- Improve performance of queries affected by row-level security
- restrictions (Tom Lane)
- </para>
-
- <para>
- The optimizer now has more knowledge about where it can place RLS
- filter conditions, allowing better plans to be generated while still
- enforcing the RLS conditions safely.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>General Performance</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-02 [9cca11c91] Speed up SUM calculation in numeric aggregates.
--->
- <para>
- Speed up aggregate functions that calculate a running sum
- using <type>numeric</type>-type arithmetic, including some variants
- of <function>SUM()</function>, <function>AVG()</function>,
- and <function>STDDEV()</function> (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-13 [aeed17d00] Use radix tree for character encoding conversions.
--->
- <para>
- Improve performance of character encoding conversions by
- using radix trees (Kyotaro Horiguchi, Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-25 [b8d7f053c] Faster expression evaluation and targetlist projection.
-2017-07-30 [cc9f08b6b] Move ExecProcNode from dispatch to function pointer base
--->
- <para>
- Reduce expression evaluation overhead during query execution,
- as well as plan node calling overhead (Andres Freund)
- </para>
-
- <para>
- This is particularly helpful for queries that process many rows.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [b5635948a] Support hashed aggregation with grouping sets.
--->
- <para>
- Allow hashed aggregation to be used with grouping sets (Andrew
- Gierth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-07 [9c7f5229a] Optimize joins when the inner relation can be proven uni
-2017-06-03 [23886581b] Fix old corner-case logic error in final_cost_nestloop()
--->
- <para>
- Use uniqueness guarantees to optimize certain join types (David
- Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-29 [f90d23d0c] Implement SortSupport for macaddr data type
--->
- <para>
- Improve sort performance of the <type>macaddr</type> data type (Brandur Leach)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [090010f2e] Improve performance of find_tabstat_entry()/get_tabstat_
--->
- <para>
- Reduce statistics tracking overhead in sessions that reference
- many thousands of relations (Aleksander Alekseev)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Monitoring</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-08 [f9b1a0dd4] Expose explain's SUMMARY option
--->
- <para>
- Allow explicit control
- over <link linkend="sql-explain"><command>EXPLAIN</command></link>'s display
- of planning and execution time (Ashutosh Bapat)
- </para>
-
- <para>
- By default planning and execution time are displayed by
- <command>EXPLAIN ANALYZE</command> and are not displayed in other cases.
- The new <command>EXPLAIN</command> option <literal>SUMMARY</literal> allows
- explicit control of this.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-30 [25fff4079] Default monitoring roles
--->
- <para>
- Add default monitoring roles (Dave Page)
- </para>
-
- <para>
- New roles <literal>pg_monitor</literal>, <literal>pg_read_all_settings</literal>,
- <literal>pg_read_all_stats</literal>, and <literal>pg_stat_scan_tables</literal>
- allow simplified permission configuration.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-18 [17f8ffa1e] Fix REFRESH MATERIALIZED VIEW to report activity to the
--->
- <para>
- Properly update the statistics collector during <link
- linkend="sql-refreshmaterializedview"><command>REFRESH MATERIALIZED
- VIEW</command></link> (Jim Mlodgenski)
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect5>
- <title>Logging</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-10-17 [7d3235ba4] By default, set log_line_prefix = '%m [%p] '.
--->
- <para>
- Change the default value of <xref linkend="guc-log-line-prefix"/>
- to include current timestamp (with milliseconds) and the process ID
- in each line of postmaster log output (Christoph Berg)
- </para>
-
- <para>
- The previous default was an empty prefix.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-16 [befd73c50] Add pg_ls_logdir() and pg_ls_waldir() functions.
--->
- <para>
- Add functions to return the log and <acronym>WAL</acronym> directory
- contents (Dave Page)
- </para>
-
- <para>
- The new functions
- are <link linkend="functions-admin-genfile-table"><function>pg_ls_logdir()</function></link>
- and <link linkend="functions-admin-genfile-table"><function>pg_ls_waldir()</function></link>
- and can be executed by non-superusers with the proper
- permissions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-03 [19dc233c3] Add pg_current_logfile() function.
--->
- <para>
- Add function <link
- linkend="functions-info-session-table"><function>pg_current_logfile()</function></link>
- to read logging collector's current stderr and csvlog output file names
- (Gilles Darold)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-10 [f9dfa5c97] Improve postmaster's logging of listen socket creation.
-2017-03-14 [2b32ac2a5] Include port number when logging successful binding to a
--->
- <para>
- Report the address and port number of each listening socket
- in the server log during postmaster startup (Tom Lane)
- </para>
-
- <para>
- Also, when logging failure to bind a listening socket, include
- the specific address we attempted to bind to.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-10 [6ec4c8584] Reduce log verbosity of startup/shutdown for launcher su
--->
- <para>
- Reduce log chatter about the starting and stopping of launcher
- subprocesses (Tom Lane)
- </para>
-
- <para>
- These are now <literal>DEBUG1</literal>-level messages.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-17 [a43f1939d] Remove or reduce verbosity of some debug messages.
--->
- <para>
- Reduce message verbosity of lower-numbered debug levels
- controlled by
- <xref linkend="guc-log-min-messages"/> (Robert Haas)
- </para>
-
- <para>
- This also changes the verbosity of <xref
- linkend="guc-client-min-messages"/> debug levels.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
-
- <sect5>
- <title><link linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname></link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-10-04 [6f3bd98eb] Extend framework from commit 53be0b1ad to report latch w
-2017-03-18 [249cf070e] Create and use wait events for read, write, and fsync op
--->
- <para>
- Add <structname>pg_stat_activity</structname> reporting of low-level wait
- states (Michael Paquier, Robert Haas, Rushabh Lathia)
- </para>
-
- <para>
- This change enables reporting of numerous low-level wait conditions,
- including latch waits, file reads/writes/fsyncs, client reads/writes,
- and synchronous replication.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-12 [fc3d4a44e] Identify walsenders in pg_stat_activity
-2017-03-26 [fc70a4b0d] Show more processes in pg_stat_activity.
--->
- <para>
- Show auxiliary processes, background workers, and walsender
- processes in <structname>pg_stat_activity</structname> (Kuntal Ghosh,
- Michael Paquier)
- </para>
-
- <para>
- This simplifies monitoring. A new
- column <structfield>backend_type</structfield> identifies the process type.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-22 [4c728f382] Pass the source text for a parallel query to the workers
--->
- <para>
- Allow <structname>pg_stat_activity</structname> to show the SQL query
- being executed by parallel workers (Rafia Sabih)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-16 [3761fe3c2] Simplify LWLock tranche machinery by removing array_base
--->
- <para>
- Rename
- <structname>pg_stat_activity</structname>.<structfield>wait_event_type</structfield>
- values <literal>LWLockTranche</literal> and
- <literal>LWLockNamed</literal> to <literal>LWLock</literal> (Robert Haas)
- </para>
-
- <para>
- This makes the output more consistent.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
- </sect4>
-
- <sect4>
- <title><acronym>Authentication</acronym></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-07 [818fd4a67] Support SCRAM-SHA-256 authentication (RFC 5802 and 7677)
-2017-03-24 [7ac955b34] Allow SCRAM authentication, when pg_hba.conf says 'md5'.
-2017-04-07 [60f11b87a] Use SASLprep to normalize passwords for SCRAM authentica
-2017-04-18 [c727f120f] Rename "scram" to "scram-sha-256" in pg_hba.conf and pas
--->
- <para>
- Add <link linkend="auth-password">SCRAM-SHA-256</link>
- support for password negotiation and storage (Michael Paquier,
- Heikki Linnakangas)
- </para>
-
- <para>
- This provides better security than the existing <literal>md5</literal>
- negotiation and storage method.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-28 [babe05bc2] Turn password_encryption GUC into an enum.
--->
- <para>
- Change the <xref linkend="guc-password-encryption"/> server parameter
- from <type>boolean</type> to <type>enum</type> (Michael Paquier)
- </para>
-
- <para>
- This was necessary to support additional password hashing options.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-30 [de16ab723] Invent pg_hba_file_rules view to show the content of pg_
--->
- <para>
- Add view <link
- linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</structname></link>
- to display the contents of <filename>pg_hba.conf</filename> (Haribabu
- Kommi)
- </para>
-
- <para>
- This shows the file contents, not the currently active settings.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [6b76f1bb5] Support multiple RADIUS servers
--->
- <para>
- Support multiple <acronym>RADIUS</acronym> servers (Magnus Hagander)
- </para>
-
- <para>
- All the <acronym>RADIUS</acronym> related parameters are now plural and
- support a comma-separated list of servers.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Server Configuration</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-01-02 [de41869b6] Allow SSL configuration to be updated at SIGHUP.
-2017-01-03 [1e942c747] Disable prompting for passphrase while (re)loading SSL c
-2017-01-04 [6667d9a6d] Re-allow SSL passphrase prompt at server start, but not
--->
- <para>
- Allow <acronym>SSL</acronym> configuration to be updated during
- configuration reload (Andreas Karlsson, Tom Lane)
- </para>
-
- <para>
- This allows <acronym>SSL</acronym> to be reconfigured without a server
- restart, by using <command>pg_ctl reload</command>, <command>SELECT
- pg_reload_conf()</command>, or sending a <literal>SIGHUP</literal> signal.
- However, reloading the <acronym>SSL</acronym> configuration does not work
- if the server's <acronym>SSL</acronym> key requires a passphrase, as there
- is no way to re-prompt for the passphrase. The original
- configuration will apply for the life of the postmaster in that
- case.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-02 [14ca9abfb] Increase upper bound for bgwriter_lru_maxpages.
--->
- <para>
- Make the maximum value of <xref
- linkend="guc-bgwriter-lru-maxpages"/> effectively unlimited
- (Jim Nasby)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title>Reliability</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-27 [1b02be21f] Fsync directory after creating or unlinking file.
--->
- <para>
- After creating or unlinking files, perform an fsync on their parent
- directory (Michael Paquier)
- </para>
-
- <para>
- This reduces the risk of data loss after a power failure.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect5>
- <title><link linkend="wal">Write-Ahead Log</link> (<acronym>WAL</acronym>)</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-12-22 [6ef2eba3f] Skip checkpoints, archiving on idle systems.
--->
- <para>
- Prevent unnecessary checkpoints and <acronym>WAL</acronym> archiving on
- otherwise-idle systems (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-08 [a507b8690] Add WAL consistency checking facility.
-2017-03-14 [bb4a39637] hash: Support WAL consistency checking.
--->
- <para>
- Add <xref linkend="guc-wal-consistency-checking"/> server parameter
- to add details to <acronym>WAL</acronym> that can be sanity-checked on
- the standby (Kuntal Ghosh, Robert Haas)
- </para>
-
- <para>
- Any sanity-check failure generates a fatal error on the standby.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-05 [00b6b6feb] Allow -\-with-wal-segsize=n up to n=1024MB
--->
- <para>
- Increase the maximum configurable <acronym>WAL</acronym> segment size
- to one gigabyte (Beena Emerson)
- </para>
-
- <para>
- A larger <acronym>WAL</acronym> segment size allows for fewer
- <xref linkend="guc-archive-command"/> invocations and fewer
- <acronym>WAL</acronym> files to manage.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Replication and Recovery</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-01-20 [665d1fad9] Logical replication
-2017-03-23 [7c4f52409] Logical replication support for initial data copy
-2017-04-12 [ff7bce174] Add max_sync_workers_per_subscription to postgresql.conf
--->
- <para>
- Add the ability to <link linkend="logical-replication">logically
- replicate</link> tables to standby servers (Petr Jelinek)
- </para>
-
- <para>
- Logical replication allows more flexibility than physical
- replication does, including replication between different major
- versions of <productname>PostgreSQL</productname> and selective
- replication.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-19 [3901fd70c] Support quorum-based synchronous replication.
--->
- <para>
- Allow waiting for commit acknowledgment from standby
- servers irrespective of the order they appear in <xref
- linkend="guc-synchronous-standby-names"/> (Masahiko Sawada)
- </para>
-
- <para>
- Previously the server always waited for the active standbys that
- appeared first in <varname>synchronous_standby_names</varname>. The new
- <varname>synchronous_standby_names</varname> keyword <literal>ANY</literal> allows
- waiting for any number of standbys irrespective of their ordering.
- This is known as quorum commit.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-14 [f6d6d2920] Change default values for backup and replication paramet
-2017-05-02 [34fc61673] Change hot_standby default value to 'on'
--->
- <para>
- Reduce configuration changes necessary to perform streaming backup
- and replication (Magnus Hagander, Dang Minh Huong)
- </para>
-
- <para>
- Specifically, the defaults were changed for <xref
- linkend="guc-wal-level"/>, <xref linkend="guc-max-wal-senders"/>,
- <xref linkend="guc-max-replication-slots"/>, and <xref
- linkend="guc-hot-standby"/> to make them suitable for these usages
- out-of-the-box.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-09 [be37c2120] Enable replication connections by default in pg_hba.conf
--->
- <para>
- Enable replication from localhost connections by default in
- <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
- (Michael Paquier)
- </para>
-
- <para>
- Previously <filename>pg_hba.conf</filename>'s replication connection
- lines were commented out by default. This is particularly useful for
- <application><xref linkend="app-pgbasebackup"/></application>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [6912acc04] Replication lag tracking for walsenders
--->
- <para>
- Add columns to <link
- linkend="pg-stat-replication-view"><structname>pg_stat_replication</structname></link>
- to report replication delay times (Thomas Munro)
- </para>
-
- <para>
- The new columns are <structfield>write_lag</structfield>,
- <structfield>flush_lag</structfield>, and <structfield>replay_lag</structfield>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-03 [35250b6ad] New recovery target recovery_target_lsn
--->
- <para>
- Allow specification of the recovery stopping point by Log Sequence
- Number (<acronym>LSN</acronym>) in
- <filename>recovery.conf</filename>
- (Michael Paquier)
- </para>
-
- <para>
- Previously the stopping point could only be selected by timestamp or
- XID.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [017e4f258] Expose waitforarchive option through pg_stop_backup()
-2017-08-05 [52f8a59dd] Make pg_stop_backup's wait_for_archive flag work on stan
--->
- <para>
- Allow users to disable <link
- linkend="functions-admin"><function>pg_stop_backup()</function></link>'s
- waiting for all <acronym>WAL</acronym> to be archived (David Steele)
- </para>
-
- <para>
- An optional second argument to <function>pg_stop_backup()</function>
- controls that behavior.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-12 [a924c327e] Add support for temporary replication slots
--->
- <para>
- Allow creation of <link
- linkend="functions-replication-table">temporary replication slots</link>
- (Petr Jelinek)
- </para>
-
- <para>
- Temporary slots are automatically removed on session exit or error.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [9b013dc23] Improve performance of replay of AccessExclusiveLocks
--->
- <para>
- Improve performance of hot standby replay with better tracking of
- Access Exclusive locks (Simon Riggs, David Rowley)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-04 [728bd991c] Speedup 2PC recovery by skipping two phase state files i
--->
- <para>
- Speed up two-phase commit recovery performance (Stas Kelvich,
- Nikhil Sontakke, Michael Paquier)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Queries</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-08 [fcec6caaf] Support XMLTABLE query expression
--->
- <para>
- Add <link
- linkend="functions-xml-processing-xmltable"><function>XMLTABLE</function></link>
- function that converts <type>XML</type>-formatted data into a row set
- (Pavel Stehule, Álvaro Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-05 [c54159d44] Make locale-dependent regex character classes work for l
--->
- <para>
- Fix regular expressions' character class handling for large character
- codes, particularly Unicode characters above <literal>U+7FF</literal>
- (Tom Lane)
- </para>
-
- <para>
- Previously, such characters were never recognized as belonging to
- locale-dependent character classes such as <literal>[[:alpha:]]</literal>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Utility Commands</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-12-07 [f0e44751d] Implement table partitioning.
--->
- <para>
- Add table <link linkend="sql-createtable-partition">partitioning
- syntax</link> that automatically creates partition constraints and
- handles routing of tuple insertions and updates (Amit Langote)
- </para>
-
- <para>
- The syntax supports range and list partitioning.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-04 [8c48375e5] Implement syntax for transition tables in AFTER triggers
-2017-04-04 [5ebeb579b] Follow-on cleanup for the transition table patch.
-2017-03-31 [597027163] Add transition table support to plpgsql.
--->
- <para>
- Add <link linkend="sql-createtrigger"><literal>AFTER</literal> trigger</link>
- transition tables to record changed rows (Kevin Grittner, Thomas
- Munro)
- </para>
-
- <para>
- Transition tables are accessible from triggers written in
- server-side languages.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-05 [093129c9d] Add support for restrictive RLS policies
--->
- <para>
- Allow <link linkend="sql-createpolicy">restrictive row-level
- security policies</link> (Stephen Frost)
- </para>
-
- <para>
- Previously all security policies were permissive, meaning that any
- matching policy allowed access. A restrictive policy must
- match for access to be granted. These policy types can be combined.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-31 [64d4da511] For foreign keys, check REFERENCES privilege only on the
--->
- <para>
- When creating a foreign-key constraint, check
- for <literal>REFERENCES</literal> permission on only the referenced table
- (Tom Lane)
- </para>
-
- <para>
- Previously <literal>REFERENCES</literal> permission on the referencing
- table was also required. This appears to have stemmed from a
- misreading of the SQL standard. Since creating a foreign key (or
- any other type of) constraint requires ownership privilege on the
- constrained table, additionally requiring <literal>REFERENCES</literal>
- permission seems rather pointless.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-28 [ab89e465c] Altering default privileges on schemas
--->
- <para>
- Allow <link linkend="sql-alterdefaultprivileges">default
- permissions</link> on schemas (Matheus Oliveira)
- </para>
-
- <para>
- This is done using the <literal>ALTER DEFAULT PRIVILEGES</literal> command.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-10 [2ea5b06c7] Add CREATE SEQUENCE AS <data type> clause
--->
- <para>
- Add <link linkend="sql-createsequence"><command>CREATE SEQUENCE
- AS</command></link> command to create a sequence matching an integer data type
- (Peter Eisentraut)
- </para>
-
- <para>
- This simplifies the creation of sequences matching the range of
- base columns.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-10 [279c439c7] Support "COPY view FROM" for views with INSTEAD OF INSER
--->
- <para>
- Allow <literal>COPY <replaceable>view</replaceable>
- FROM <replaceable>source</replaceable></literal> on views with <literal>INSTEAD
- INSERT</literal> triggers (Haribabu Kommi)
- </para>
-
- <para>
- The triggers are fed the data rows read by <command>COPY</command>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-14 [aefeb6874] Allow referring to functions without arguments when uniq
--->
- <para>
- Allow the specification of a function name without arguments in
- <acronym>DDL</acronym> commands, if it is unique (Peter Eisentraut)
- </para>
-
- <para>
- For example, allow <link linkend="sql-dropfunction"><command>DROP
- FUNCTION</command></link> on a function name without arguments if there
- is only one function with that name. This behavior is required by the
- <acronym>SQL</acronym> standard.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-06 [583f6c414] Allow dropping multiple functions at once
--->
- <para>
- Allow multiple functions, operators, and aggregates to be dropped
- with a single <command>DROP</command> command (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-15 [6d16ecc64] Add CREATE COLLATION IF NOT EXISTS clause
-2017-03-20 [b6fb534f1] Add IF NOT EXISTS for CREATE SERVER and CREATE USER MAPP
--->
- <para>
- Support <literal>IF NOT EXISTS</literal>
- in <link linkend="sql-createserver"><command>CREATE SERVER</command></link>,
- <link linkend="sql-createusermapping"><command>CREATE USER MAPPING</command></link>,
- and <link linkend="sql-createcollation"><command>CREATE COLLATION</command></link>
- (Anastasia Lubennikova, Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-25 [70adf2fbe] Make VACUUM VERBOSE report the number of skipped frozen
-2017-03-03 [9eb344faf] Allow vacuums to report oldestxmin
--->
- <para>
- Make <link linkend="sql-vacuum"><command>VACUUM VERBOSE</command></link> report
- the number of skipped frozen pages and oldest xmin (Masahiko
- Sawada, Simon Riggs)
- </para>
-
- <para>
- This information is also included in <xref
- linkend="guc-log-autovacuum-min-duration"/> output.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-23 [7e26e02ee] Prefetch blocks during lazy vacuum's truncation scan
--->
- <para>
- Improve speed of <command>VACUUM</command>'s removal of trailing empty
- heap pages (Claudio Freire, Álvaro Herrera)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Data Types</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-31 [e306df7f9] Full Text Search support for JSON and JSONB
--->
- <para>
- Add full text search support for <type>JSON</type> and <type>JSONB</type>
- (Dmitry Dolgov)
- </para>
-
- <para>
- The functions <function>ts_headline()</function> and
- <function>to_tsvector()</function> can now be used on these data types.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-15 [c7a9fa399] Add support for EUI-64 MAC addresses as macaddr8
--->
- <para>
- Add support for <acronym>EUI-64</acronym> <acronym>MAC</acronym> addresses, as a
- new data type <link linkend="datatype-macaddr8"><type>macaddr8</type></link>
- (Haribabu Kommi)
- </para>
-
- <para>
- This complements the existing support
- for <acronym>EUI-48</acronym> <acronym>MAC</acronym> addresses
- (type <type>macaddr</type>).
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [321732705] Identity columns
--->
- <para>
- Add <link linkend="sql-createtable">identity columns</link> for
- assigning a numeric value to columns on insert (Peter Eisentraut)
- </para>
-
- <para>
- These are similar to <type>SERIAL</type> columns, but are
- <acronym>SQL</acronym> standard compliant.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-07 [0ab9c56d0] Support renaming an existing value of an enum type.
--->
- <para>
- Allow <link linkend="datatype-enum"><type>ENUM</type></link> values to be
- renamed (Dagfinn Ilmari Mannsåker)
- </para>
-
- <para>
- This uses the syntax <link linkend="sql-altertype"><command>ALTER
- TYPE ... RENAME VALUE</command></link>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-22 [502a3832c] Correctly handle array pseudotypes in to_json and to_jso
--->
- <para>
- Properly treat array pseudotypes
- (<type>anyarray</type>) as arrays in <link
- linkend="functions-json-creation-table"><function>to_json()</function></link>
- and <function>to_jsonb()</function> (Andrew Dunstan)
- </para>
-
- <para>
- Previously columns declared as <type>anyarray</type> (particularly those
- in the <structname>pg_stats</structname> view) were converted to <type>JSON</type>
- strings rather than arrays.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-17 [323b96aa3] Register missing money operators in system catalogs
--->
- <para>
- Add operators for multiplication and division
- of <link linkend="datatype-money"><type>money</type></link> values
- with <type>int8</type> values (Peter Eisentraut)
- </para>
-
- <para>
- Previously such cases would result in converting the <type>int8</type>
- values to <type>float8</type> and then using
- the <type>money</type>-and-<type>float8</type> operators. The new behavior
- avoids possible precision loss. But note that division
- of <type>money</type> by <type>int8</type> now truncates the quotient, like
- other integer-division cases, while the previous behavior would have
- rounded.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-14 [656df624c] Add overflow checks to money type input function
--->
- <para>
- Check for overflow in the <type>money</type> type's input function
- (Peter Eisentraut)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Functions</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-08-17 [cf9b0fea5] Implement regexp_match(), a simplified alternative to re
--->
- <para>
- Add simplified <link
- linkend="functions-posix-regexp"><function>regexp_match()</function></link>
- function (Emre Hasegeli)
- </para>
-
- <para>
- This is similar to <function>regexp_matches()</function>, but it only
- returns results from the first match so it does not need to return a
- set, making it easier to use for simple cases.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-18 [d00ca333c] Implement array version of jsonb_delete and operator
--->
- <para>
- Add a version of <type>jsonb</type>'s <link
- linkend="functions-jsonb-op-table">delete operator</link> that takes
- an array of keys to delete (Magnus Hagander)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [cf35346e8] Make json_populate_record and friends operate recursivel
--->
- <para>
- Make <link linkend="functions-json-processing-table"><function>json_populate_record()</function></link>
- and related functions process JSON arrays and objects recursively
- (Nikita Glukhov)
- </para>
-
- <para>
- With this change, array-type fields in the destination SQL type are
- properly converted from JSON arrays, and composite-type fields are
- properly converted from JSON objects. Previously, such cases would
- fail because the text representation of the JSON value would be fed
- to <function>array_in()</function> or <function>record_in()</function>, and its
- syntax would not match what those input functions expect.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-23 [86f31695f] Add txid_current_ifassigned().
--->
- <para>
- Add function <link
- linkend="functions-txid-snapshot"><function>txid_current_if_assigned()</function></link>
- to return the current transaction ID or <literal>NULL</literal> if no
- transaction ID has been assigned (Craig Ringer)
- </para>
-
- <para>
- This is different from <link
- linkend="functions-txid-snapshot"><function>txid_current()</function></link>,
- which always returns a transaction ID, assigning one if necessary.
- Unlike that function, this function can be run on standby servers.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-24 [857ee8e39] Add a txid_status function.
--->
- <para>
- Add function <link
- linkend="functions-txid-snapshot"><function>txid_status()</function></link>
- to check if a transaction was committed (Craig Ringer)
- </para>
-
- <para>
- This is useful for checking after an abrupt disconnection whether
- your previous transaction committed and you just didn't receive
- the acknowledgment.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-19 [30bcebbdc] Allow negative years in make_date to represent BC years
--->
- <para>
- Allow <link
- linkend="functions-datetime-table"><function>make_date()</function></link>
- to interpret negative years as <acronym>BC</acronym> years (Álvaro
- Herrera)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-28 [d3cd36a13] Make to_timestamp() and to_date() range-check fields of
--->
- <para>
- Make <link
- linkend="functions-formatting-table"><function>to_timestamp()</function></link>
- and <function>to_date()</function> reject
- out-of-range input fields (Artur Zakirov)
- </para>
-
- <para>
- For example,
- previously <literal>to_date('2009-06-40','YYYY-MM-DD')</literal> was
- accepted and returned <literal>2009-07-10</literal>. It will now generate
- an error.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Server-Side Languages</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-27 [70ec3f1f8] PL/Python: Add cursor and execute methods to plan object
--->
- <para>
- Allow PL/Python's <function>cursor()</function> and <function>execute()</function>
- functions to be called as methods of their plan-object arguments
- (Peter Eisentraut)
- </para>
-
- <para>
- This allows a more object-oriented programming style.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-13 [55caaaeba] Improve handling of array elements as getdiag_targets an
--->
- <para>
- Allow PL/pgSQL's <command>GET DIAGNOSTICS</command> statement to retrieve
- values into array elements (Tom Lane)
- </para>
-
- <para>
- Previously, a syntactic restriction prevented the target variable
- from being an array element.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="pltcl">PL/Tcl</link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-11-06 [26abb50c4] Support PL/Tcl functions that return composite types and
--->
- <para>
- Allow PL/Tcl functions to return composite types and sets
- (Karl Lehenbauer)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-11 [b58fd4a9c] Add a "subtransaction" command to PL/Tcl.
--->
- <para>
- Add a subtransaction command to PL/Tcl (Victor Wagner)
- </para>
-
- <para>
- This allows PL/Tcl queries to fail without aborting the entire
- function.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [0d2b1f305] Invent start_proc parameters for PL/Tcl.
--->
- <para>
- Add server parameters <xref linkend="guc-pltcl-start-proc"/>
- and <xref linkend="guc-pltclu-start-proc"/>, to allow initialization
- functions to be called on PL/Tcl startup (Tom Lane)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
- </sect3>
-
- <sect3>
- <title>Client Interfaces</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-11-03 [274bb2b38] libpq: Allow connection strings and URIs to specify mult
-2017-05-19 [5f374fe7a] libpq: Try next host if one of them times out.
-2017-07-10 [7b02ba62e] Allow multiple hostaddrs to go with multiple hostnames.
--->
- <para>
- Allow specification of <link linkend="libpq-connect-host">multiple
- host names or addresses</link> in libpq connection strings and URIs
- (Robert Haas, Heikki Linnakangas)
- </para>
-
- <para>
- libpq will connect to the first responsive server in the list.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-29 [721f7bd3c] libpq: Add target_session_attrs parameter.
--->
- <para>
- Allow libpq connection strings and URIs to request a <link
- linkend="libpq-connect-target-session-attrs">read/write host</link>,
- that is a master server rather than a standby server
- (Victor Wagner, Mithun Cy)
- </para>
-
- <para>
- This is useful when multiple host names are
- specified. It is controlled by libpq connection parameter
- <option>target_session_attrs</option>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-24 [ba005f193] Allow password file name to be specified as a libpq conn
--->
- <para>
- Allow the <link linkend="libpq-connect-passfile">password file name</link>
- to be specified as a libpq connection parameter (Julian Markwort)
- </para>
-
- <para>
- Previously this could only be specified via an environment variable.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-05-03 [8f8b9be51] Add PQencryptPasswordConn function to libpq, use it in p
--->
- <para>
- Add function <link
- linkend="libpq-pqencryptpasswordconn"><function>PQencryptPasswordConn()</function></link>
- to allow creation of more types of encrypted passwords on the
- client side (Michael Paquier, Heikki Linnakangas)
- </para>
-
- <para>
- Previously only <literal>MD5</literal>-encrypted passwords could be created
- using <link
- linkend="libpq-pqencryptpassword"><function>PQencryptPassword()</function></link>.
- This new function can also create <link
- linkend="auth-pg-hba-conf"><literal>SCRAM-SHA-256</literal></link>-encrypted
- passwords.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-16 [a7b5573d6] Remove separate version numbering for ecpg preprocessor.
--->
- <para>
- Change <application>ecpg</application> preprocessor version from 4.12 to 10
- (Tom Lane)
- </para>
-
- <para>
- Henceforth the <application>ecpg</application> version will match
- the <productname>PostgreSQL</productname> distribution version number.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Client Applications</title>
-
- <sect4>
- <title><xref linkend="app-psql"/></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-03-30 [e984ef586] Support \if ... \elif ... \else ... \endif in psql scrip
-2017-04-02 [5dbc5da11] Fix behavior of psql's \p to agree with \g, \w, etc.
-2017-04-02 [68dba97a4] Document psql's behavior of recalling the previously exe
--->
- <para>
- Add conditional branch support to <application>psql</application> (Corey
- Huinker)
- </para>
-
- <para>
- This feature adds <application>psql</application>
- meta-commands <command>\if</command>, <command>\elif</command>, <command>\else</command>,
- and <command>\endif</command>. This is primarily helpful for scripting.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [b2678efd4] psql: Add \gx command
--->
- <para>
- Add <application>psql</application> <command>\gx</command> meta-command to execute
- (<command>\g</command>) a query in expanded mode (<command>\x</command>)
- (Christoph Berg)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-01 [f833c847b] Allow psql variable substitution to occur in backtick co
--->
- <para>
- Expand <application>psql</application> variable references in
- backtick-executed strings (Tom Lane)
- </para>
-
- <para>
- This is particularly useful in the new <application>psql</application>
- conditional branch commands.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-30 [511ae628f] Make psql reject attempts to set special variables to in
-2017-02-01 [86322dc7e] Improve psql's behavior for \set and \unset of its contr
-2017-02-02 [fd6cd6980] Clean up psql's behavior for a few more control variable
--->
- <para>
- Prevent <application>psql</application>'s special variables from being set to
- invalid values (Daniel Vérité, Tom Lane)
- </para>
-
- <para>
- Previously, setting one of <application>psql</application>'s special variables
- to an invalid value silently resulted in the default behavior.
- <command>\set</command> on a special variable now fails if the proposed
- new value is invalid. As a special exception, <command>\set</command>
- with an empty or omitted new value, on a boolean-valued special
- variable, still has the effect of setting the variable
- to <literal>on</literal>; but now it actually acquires that value rather
- than an empty string. <command>\unset</command> on a special variable now
- explicitly sets the variable to its default value, which is also
- the value it acquires at startup. In sum, a control variable now
- always has a displayable value that reflects
- what <application>psql</application> is actually doing.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-09-06 [a6c678f01] Add psql variables showing server version and psql versi
--->
- <para>
- Add variables showing server version and <application>psql</application> version
- (Fabien Coelho)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-03 [a0f357e57] psql: Split up "Modifiers" column in \d and \dD
--->
- <para>
- Improve <application>psql</application>'s <command>\d</command> (display relation)
- and <command>\dD</command> (display domain) commands to show collation,
- nullable, and default properties in separate columns (Peter
- Eisentraut)
- </para>
-
- <para>
- Previously they were shown in a single <quote>Modifiers</quote> column.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-27 [77cb4a1d6] Standardize describe.c's behavior for no-matching-object
--->
- <para>
- Make the various <command>\d</command> commands handle no-matching-object
- cases more consistently (Daniel Gustafsson)
- </para>
-
- <para>
- They now all print the message about that to stderr, not stdout,
- and the message wording is more consistent.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-18 [49917dbd7] Improve psql's tab completion for ALTER EXTENSION foo UP
-2016-08-18 [8019b5a89] Improve psql's tab completion for \l.
-2016-09-01 [76f9dd4fa] Improve tab completion for BEGIN & START|SET TRANSACTION
-2016-09-11 [52803098a] psql tab completion for CREATE DATABASE ... TEMPLATE ...
-2016-09-12 [63c1a8719] Fix recent commit for tab-completion of database templat
-2016-11-03 [1d15d0db5] psql: Tab-complete LOCK [TABLE] ... IN {ACCESS|ROW|SHARE
-2016-11-04 [927d7bb6b] Improve tab completion for CREATE TRIGGER.
-2016-11-08 [577f0bdd2] psql: Tab completion for renaming enum values.
-2017-03-01 [b5a388392] psql: Add tab completion for DEALLOCATE
-2017-03-16 [d7d77f382] psql: Add completion for \help DROP|ALTER
--->
- <para>
- Improve <application>psql</application>'s tab completion (Jeff Janes,
- Ian Barwick, Andreas Karlsson, Sehrope Sarkuni, Thomas Munro,
- Kevin Grittner, Dagfinn Ilmari Mannsåker)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><xref linkend="pgbench"/></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-11-09 [41124a91e] pgbench: Allow the transaction log file prefix to be cha
--->
- <para>
- Add <application>pgbench</application> option <option>--log-prefix</option> to
- control the log file prefix (Masahiko Sawada)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-20 [cdc2a7047] Allow backslash line continuations in pgbench's meta com
--->
- <para>
- Allow <application>pgbench</application>'s meta-commands to span multiple
- lines (Fabien Coelho)
- </para>
-
- <para>
- A meta-command can now be continued onto the next line by writing
- backslash-return.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-11 [796818442] Remove pgbench's restriction on placement of -M switch.
--->
- <para>
- Remove restriction on placement of <option>-M</option> option relative to
- other command line options (Tom Lane)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3>
- <title>Server Applications</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2017-01-17 [cada1af31] Add compression support to pg_receivexlog
--->
- <para>
- Add <link
- linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
- option <option>-Z</option>/<option>--compress</option> to specify compression
- (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-04 [7c030783a] Add pg_recvlogical -\-endpos=LSN
--->
- <para>
- Add <link
- linkend="app-pgrecvlogical"><application>pg_recvlogical</application></link> option
- <option>--endpos</option> to specify the ending position (Craig Ringer)
- </para>
-
- <para>
- This complements the existing <option>--startpos</option> option.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-19 [5d58c07a4] initdb pg_basebackup: Rename -\-noxxx options to -\-no-x
--->
- <para>
- Rename <link linkend="app-initdb"><application>initdb</application></link>
- options <option>--noclean</option> and <option>--nosync</option> to be spelled
- <option>--no-clean</option> and <option>--no-sync</option> (Vik Fearing,
- Peter Eisentraut)
- </para>
-
- <para>
- The old spellings are still supported.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <sect4>
- <title><link linkend="app-pgdump"><application>pg_dump</application></link>,
- <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
- <link linkend="app-pgrestore"><application>pg_restore</application></link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-20 [46b55e7f8] pg_restore: Add -N option to exclude schemas
--->
- <para>
- Allow <application>pg_restore</application> to exclude schemas (Michael Banck)
- </para>
-
- <para>
- This adds a new <option>-N</option>/<option>--exclude-schema</option> option.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-29 [4fafa579b] Add -\-no-blobs option to pg_dump
--->
- <para>
- Add <option>--no-blobs</option> option to
- <application>pg_dump</application> (Guillaume Lelarge)
- </para>
-
- <para>
- This suppresses dumping of large objects.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-07 [9a83d56b3] Allow pg_dumpall to dump roles w/o user passwords
--->
- <para>
- Add <application>pg_dumpall</application> option
- <option>--no-role-passwords</option> to omit role passwords
- (Robins Tharakan, Simon Riggs)
- </para>
-
- <para>
- This allows use of <application>pg_dumpall</application> by non-superusers;
- without this option, it fails due to inability to read passwords.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-16 [e4892c681] pg_dump: Support using synchronized snapshots on standby
--->
- <para>
- Support using synchronized snapshots when dumping from a standby
- server (Petr Jelinek)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-22 [96a7128b7] Sync pg_dump and pg_dumpall output
--->
- <para>
- Issue <function>fsync()</function> on the output files generated by
- <application>pg_dump</application> and
- <application>pg_dumpall</application> (Michael Paquier)
- </para>
-
- <para>
- This provides more security that the output is safely stored on
- disk before the program exits. This can be disabled with
- the new <option>--no-sync</option> option.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
-
- <title><xref linkend="app-pgbasebackup"/></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-10-23 [56c7d8d45] Allow pg_basebackup to stream transaction log in tar mod
-2016-12-21 [ecbdc4c55] Forbid invalid combination of options in pg_basebackup.
--->
- <para>
- Allow <application>pg_basebackup</application> to stream write-ahead log in
- tar mode (Magnus Hagander)
- </para>
-
- <para>
- The <acronym>WAL</acronym> will be stored in a separate tar file from
- the base backup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-16 [e7b020f78] Make pg_basebackup use temporary replication slots
--->
- <para>
- Make <application>pg_basebackup</application> use temporary replication slots
- (Magnus Hagander)
- </para>
-
- <para>
- Temporary replication slots will be used by default when
- <application>pg_basebackup</application> uses WAL streaming with default
- options.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [bc34223bc] pg_basebackup pg_receivexlog: Issue fsync more carefully
--->
- <para>
- Be more careful about fsync'ing in all required places
- in <application>pg_basebackup</application> and
- <application>pg_receivewal</application> (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [6ed2d8584] pg_basebackup: Add -\-nosync option
-2016-10-19 [5d58c07a4] initdb pg_basebackup: Rename -\-noxxx options to -\-no-x
--->
- <para>
- Add <application>pg_basebackup</application> option <option>--no-sync</option> to
- disable fsync (Michael Paquier)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-28 [6ad8ac602] Exclude additional directories in pg_basebackup
--->
- <para>
- Improve <application>pg_basebackup</application>'s handling of which
- directories to skip (David Steele)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4>
- <title><application><xref linkend="app-pg-ctl"/></application></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-21 [e7010ce47] pg_ctl: Add wait option to promote action
--->
- <para>
- Add wait option for <application><xref linkend="app-pg-ctl"/></application>'s
- promote operation (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-19 [0be22457d] pg_ctl: Add long options for -w and -W
--->
- <para>
- Add long options for <application>pg_ctl</application> wait (<option>--wait</option>)
- and no-wait (<option>--no-wait</option>) (Vik Fearing)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-19 [caf936b09] pg_ctl: Add long option for -o
--->
- <para>
- Add long option for <application>pg_ctl</application> server options
- (<option>--options</option>) (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-28 [f13ea95f9] Change pg_ctl to detect server-ready by watching status
--->
- <para>
- Make <literal>pg_ctl start --wait</literal> detect server-ready by
- watching <filename>postmaster.pid</filename>, not by attempting connections
- (Tom Lane)
- </para>
-
- <para>
- The postmaster has been changed to report its ready-for-connections
- status in <filename>postmaster.pid</filename>, and <application>pg_ctl</application>
- now examines that file to detect whether startup is complete.
- This is more efficient and reliable than the old method, and it
- eliminates postmaster log entries about rejected connection
- attempts during startup.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-26 [c61559ec3] Reduce pg_ctl's reaction time when waiting for postmaste
--->
- <para>
- Reduce <application>pg_ctl</application>'s reaction time when waiting for
- postmaster start/stop (Tom Lane)
- </para>
-
- <para>
- <application>pg_ctl</application> now probes ten times per second when waiting
- for a postmaster state change, rather than once per second.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-07-05 [1bac5f552] pg_ctl: Make failure to complete operation a nonzero exi
--->
- <para>
- Ensure that <application>pg_ctl</application> exits with nonzero status if an
- operation being waited for does not complete within the timeout
- (Peter Eisentraut)
- </para>
-
- <para>
- The <literal>start</literal> and <literal>promote</literal> operations now return
- exit status 1, not 0, in such cases. The <literal>stop</literal> operation
- has always done that.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect4>
- </sect3>
-
- <sect3>
- <title>Source Code</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-08-15 [ca9112a42] Stamp HEAD as 10devel.
--->
- <para>
- Change to two-part release version numbering (Peter Eisentraut, Tom
- Lane)
- </para>
-
- <para>
- Release numbers will now have two parts (e.g., <literal>10.1</literal>)
- rather than three (e.g., <literal>9.6.3</literal>).
- Major versions will now increase just the first number, and minor
- releases will increase just the second number.
- Release branches will be referred to by single numbers
- (e.g., <literal>10</literal> rather than <literal>9.6</literal>).
- This change is intended to reduce user confusion about what is a
- major or minor release of <productname>PostgreSQL</productname>.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-06-16 [cea258b63] Teach pgindent to skip files generated by bison or flex
-2017-06-21 [8ff6d4ec7] Adjust pgindent script to use pg_bsd_indent 2.0.
-2017-06-21 [e3860ffa4] Initial pgindent run with pg_bsd_indent version 2.0.
-2017-06-21 [c7b8998eb] Phase 2 of pgindent updates.
-2017-06-21 [382ceffdf] Phase 3 of pgindent updates.
-2017-06-21 [81f056c72] Remove entab and associated detritus.
--->
- <para>
- Improve behavior of <application>pgindent</application>
- (Piotr Stefaniak, Tom Lane)
- </para>
-
- <para>
- We have switched to a new version of <application>pg_bsd_indent</application>
- based on recent improvements made by the FreeBSD project. This
- fixes numerous small bugs that led to odd C code formatting
- decisions. Most notably, lines within parentheses (such as in a
- multi-line function call) are now uniformly indented to match the
- opening paren, even if that would result in code extending past the
- right margin.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-23 [eccfef81e] ICU support
--->
- <para>
- Allow the <link linkend="configure"><acronym>ICU</acronym></link> library to
- optionally be used for collation support (Peter Eisentraut)
- </para>
-
- <para>
- The <acronym>ICU</acronym> library has versioning that allows detection
- of collation changes between versions. It is enabled via configure
- option <option>--with-icu</option>. The default still uses the operating
- system's native collation library.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-04 [c8ead2a39] Provide DLLEXPORT markers for C functions via PG_FUNCTIO
--->
- <para>
- Automatically mark all <link
- linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</function></link> functions
- as <literal>DLLEXPORT</literal>-ed on
- <systemitem class="osname">Windows</systemitem> (Laurenz Albe)
- </para>
-
- <para>
- If third-party code is using <literal>extern</literal> function
- declarations, they should also add <literal>DLLEXPORT</literal> markers
- to those declarations.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-08 [1833f1a1c] Simplify code by getting rid of SPI_push, SPI_pop, SPI_r
--->
- <para>
- Remove <acronym>SPI</acronym> functions <function>SPI_push()</function>,
- <function>SPI_pop()</function>, <function>SPI_push_conditional()</function>,
- <function>SPI_pop_conditional()</function>,
- and <function>SPI_restore_connection()</function> as unnecessary (Tom Lane)
- </para>
-
- <para>
- Their functionality now happens automatically. There are now no-op
- macros by these names so that external modules don't need to be
- updated immediately, but eventually such calls should be removed.
- </para>
-
- <para>
- A side effect of this change is that <function>SPI_palloc()</function> and
- allied functions now require an active SPI connection; they do not
- degenerate to simple <function>palloc()</function> if there is none. That
- previous behavior was not very useful and posed risks of unexpected
- memory leaks.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-02 [13e14a78e] Management of free memory pages.
-2016-12-02 [13df76a53] Introduce dynamic shared memory areas.
-2016-12-19 [e13029a5c] Provide a DSA area for all parallel queries.
--->
- <para>
- Allow shared memory to be dynamically allocated (Thomas Munro,
- Robert Haas)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-27 [58b25e981] Add "Slab" MemoryContext implementation for efficient eq
--->
- <para>
- Add slab-like memory allocator for efficient fixed-size allocations
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-09 [ecb0d20a9] Use unnamed POSIX semaphores, if available, on Linux and
--->
- <para>
- Use <acronym>POSIX</acronym> semaphores rather than SysV semaphores
- on <systemitem class="osname">Linux</systemitem> and <systemitem
- class="osname">FreeBSD</systemitem> (Tom Lane)
- </para>
-
- <para>
- This avoids platform-specific limits on SysV semaphore usage.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-07 [e8fdbd58f] Improve 64bit atomics support.
--->
- <para>
- Improve support for 64-bit atomics (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-10 [f8f1430ae] Enable 64 bit atomics on ARM64.
--->
- <para>
- Enable 64-bit atomic operations on <acronym>ARM64</acronym> (Roman
- Shaposhnik)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-01-02 [1d63f7d2d] Use clock_gettime(), if available, in instr_time measure
--->
- <para>
- Switch to using <function>clock_gettime()</function>, if available, for
- duration measurements (Tom Lane)
- </para>
-
- <para>
- <function>gettimeofday()</function> is still used
- if <function>clock_gettime()</function> is not available.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-12-05 [fe0a0b599] Replace PostmasterRandom() with a stronger source, secon
-2017-07-03 [bf723a274] Forbid gen_random_uuid() with -\-disable-strong-random
--->
- <para>
- Add more robust random number generators to be used for
- cryptographically secure uses (Magnus Hagander, Michael Paquier,
- Heikki Linnakangas)
- </para>
-
- <para>
- If no strong random number generator can be
- found, <link linkend="configure">configure</link> will fail unless
- the <option>--disable-strong-random</option> option is used. However, with
- this option, <link linkend="pgcrypto"><application>pgcrypto</application></link>
- functions requiring a strong random number generator will be disabled.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-08-15 [d7ab908fb] Distinguish wait-for-connection from wait-for-write-read
--->
- <para>
- Allow <function>WaitLatchOrSocket()</function> to wait for socket
- connection on Windows (Andres Freund)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [3f902354b] Clean up after insufficiently-researched optimization of
--->
- <para>
- <filename>tupconvert.c</filename> functions no longer convert tuples just to
- embed a different composite-type OID in them (Ashutosh Bapat, Tom Lane)
- </para>
-
- <para>
- The majority of callers don't care about the composite-type OID;
- but if the result tuple is to be used as a composite Datum, steps
- should be taken to make sure the correct OID is inserted in it.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-11 [2b860f52e] Remove "sco" and "unixware" ports.
--->
- <para>
- Remove <systemitem class="osname">SCO</systemitem> and <systemitem
- class="osname">Unixware</systemitem> ports (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-18 [e8306745e] doc: Speed up XSLT builds
-2016-08-24 [0e4cc1fc5] doc: Fix XSLT speedup with older upstream stylesheet ver
--->
- <para>
- Overhaul documentation <link linkend="docguide-toolsets">build
- process</link> (Alexander Lakhin)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-06 [510074f9f] Remove use of Jade and DSSSL
--->
- <para>
- Use <acronym>XSLT</acronym> to build the <productname>PostgreSQL</productname>
- documentation (Peter Eisentraut)
- </para>
-
- <para>
- Previously <application>Jade</application>, <acronym>DSSSL</acronym>, and
- <application>JadeTex</application> were used.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-15 [e36ddab11] Build HTML documentation using XSLT stylesheets by defau
--->
- <para>
- Build <acronym>HTML</acronym> documentation using <acronym>XSLT</acronym>
- stylesheets by default (Peter Eisentraut)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Additional Modules</title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-2016-09-29 [8e91e12bc] Allow contrib/file_fdw to read from a program, like COPY
--->
- <para>
- Allow <link linkend="file-fdw"><application>file_fdw</application></link> to read
- from program output as well as files (Corey Huinker, Adam Gomaa)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-21 [7012b132d] postgres_fdw: Push down aggregates to remote servers.
--->
- <para>
- In <link linkend="postgres-fdw"><application>postgres_fdw</application></link>,
- push aggregate functions to the remote server, when possible
- (Jeevan Chalke, Ashutosh Bapat)
- </para>
-
- <para>
- This reduces the amount of data that must be passed from the remote
- server, and offloads aggregate computation from the requesting server.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-16 [b30fb56b0] postgres_fdw: Push down FULL JOINs with restriction clau
-2017-04-24 [332bec1e6] postgres_fdw: Fix join push down with extensions
--->
- <para>
- In <application>postgres_fdw</application>, push joins to the remote server in
- more cases (David Rowley, Ashutosh Bapat, Etsuro Fujita)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-08-26 [ae025a159] Support OID system column in postgres_fdw.
--->
- <para>
- Properly support <type>OID</type> columns in
- <application>postgres_fdw</application> tables (Etsuro Fujita)
- </para>
-
- <para>
- Previously <type>OID</type> columns always returned zeros.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-21 [f7946a92b] Add btree_gist support for enum types.
--->
- <para>
- Allow <link linkend="btree-gist"><application>btree_gist</application></link>
- and <link linkend="btree-gin"><application>btree_gin</application></link> to
- index enum types (Andrew Dunstan)
- </para>
-
- <para>
- This allows enums to be used in exclusion constraints.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-11-29 [11da83a0e] Add uuid to the set of types supported by contrib/btree_
--->
- <para>
- Add indexing support to <application>btree_gist</application> for the
- <type>UUID</type> data type (Paul Jungwirth)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-09 [3717dc149] Add amcheck extension to contrib.
--->
- <para>
- Add <link linkend="amcheck"><application>amcheck</application></link> which can
- check the validity of B-tree indexes (Peter Geoghegan)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-27 [a6f22e835] Show ignored constants as "$N" rather than "?" in pg_sta
--->
- <para>
- Show ignored constants as <literal>$N</literal> rather than <literal>?</literal>
- in
- <link
- linkend="pgstatstatements"><application>pg_stat_statements</application></link>
- (Lukas Fittl)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-27 [f31a931fa] Improve contrib/cube's handling of zero-D cubes, infinit
--->
- <para>
- Improve <link linkend="cube"><application>cube</application></link>'s handling
- of zero-dimensional cubes (Tom Lane)
- </para>
-
- <para>
- This also improves handling of <literal>infinite</literal> and
- <literal>NaN</literal> values.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [6e654546f] Don't bother to lock bufmgr partitions in pg_buffercache
--->
- <para>
- Allow <link
- linkend="pgbuffercache"><application>pg_buffercache</application></link> to run
- with fewer locks (Ivan Kartyshov)
- </para>
-
- <para>
- This makes it less disruptive when run on production systems.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-03 [e759854a0] pgstattuple: Add pgstathashindex.
--->
- <para>
- Add <link linkend="pgstattuple"><application>pgstattuple</application></link>
- function <function>pgstathashindex()</function> to view hash index
- statistics (Ashutosh Sharma)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-09-29 [fd321a1df] Remove superuser checks in pgstattuple
--->
- <para>
- Use <command>GRANT</command> permissions to
- control <application>pgstattuple</application> function usage (Stephen Frost)
- </para>
-
- <para>
- This allows DBAs to allow non-superusers to run these functions.
- </para>
- </listitem>
-
- <listitem>
-<!--
-2016-10-28 [d4b5d4cad] pgstattuple: Don't take heavyweight locks when examining
--->
- <para>
- Reduce locking when <application>pgstattuple</application> examines hash
- indexes (Amit Kapila)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-03-17 [fef2bcdcb] pageinspect: Add page_checksum function
--->
- <para>
- Add <link linkend="pageinspect"><application>pageinspect</application></link>
- function <function>page_checksum()</function> to show a page's checksum
- (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-04-04 [193f5f9e9] pageinspect: Add bt_page_items function with bytea argum
--->
- <para>
- Add <application>pageinspect</application>
- function <function>bt_page_items()</function> to print page items from a
- page image (Tomas Vondra)
- </para>
- </listitem>
-
- <listitem>
-<!--
-2017-02-02 [08bf6e529] pageinspect: Support hash indexes.
--->
- <para>
- Add hash index support to <application>pageinspect</application> (Jesper
- Pedersen, Ashutosh Sharma)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- </sect2>
-
- <sect2 id="release-10-acknowledgements">
- <title>Acknowledgments</title>
-
- <para>
- The following individuals (in alphabetical order) have contributed to this
- release as patch authors, committers, reviewers, testers, or reporters of
- issues.
- </para>
-
- <simplelist>
- <member>Adam Brightwell</member>
- <member>Adam Brusselback</member>
- <member>Adam Gomaa</member>
- <member>Adam Sah</member>
- <member>Adrian Klaver</member>
- <member>Aidan Van Dyk</member>
- <member>Aleksander Alekseev</member>
- <member>Alexander Korotkov</member>
- <member>Alexander Lakhin</member>
- <member>Alexander Sosna</member>
- <member>Alexey Bashtanov</member>
- <member>Alexey Grishchenko</member>
- <member>Alexey Isayko</member>
- <member>Álvaro Hernández Tortosa</member>
- <member>Álvaro Herrera</member>
- <member>Amit Kapila</member>
- <member>Amit Khandekar</member>
- <member>Amit Langote</member>
- <member>Amul Sul</member>
- <member>Anastasia Lubennikova</member>
- <member>Andreas Joseph Krogh</member>
- <member>Andreas Karlsson</member>
- <member>Andreas Scherbaum</member>
- <member>Andreas Seltenreich</member>
- <member>Andres Freund</member>
- <member>Andrew Dunstan</member>
- <member>Andrew Gierth</member>
- <member>Andrew Wheelwright</member>
- <member>Andrey Borodin</member>
- <member>Andrey Lizenko</member>
- <member>Andy Abelisto</member>
- <member>Antonin Houska</member>
- <member>Ants Aasma</member>
- <member>Arjen Nienhuis</member>
- <member>Arseny Sher</member>
- <member>Artur Zakirov</member>
- <member>Ashutosh Bapat</member>
- <member>Ashutosh Sharma</member>
- <member>Ashwin Agrawal</member>
- <member>Atsushi Torikoshi</member>
- <member>Ayumi Ishii</member>
- <member>Basil Bourque</member>
- <member>Beena Emerson</member>
- <member>Ben de Graaff</member>
- <member>Benedikt Grundmann</member>
- <member>Bernd Helmle</member>
- <member>Brad DeJong</member>
- <member>Brandur Leach</member>
- <member>Breen Hagan</member>
- <member>Bruce Momjian</member>
- <member>Bruno Wolff III</member>
- <member>Catalin Iacob</member>
- <member>Chapman Flack</member>
- <member>Chen Huajun</member>
- <member>Choi Doo-Won</member>
- <member>Chris Bandy</member>
- <member>Chris Richards</member>
- <member>Chris Ruprecht</member>
- <member>Christian Ullrich</member>
- <member>Christoph Berg</member>
- <member>Chuanting Wang</member>
- <member>Claudio Freire</member>
- <member>Clinton Adams</member>
- <member>Const Zhang</member>
- <member>Constantin Pan</member>
- <member>Corey Huinker</member>
- <member>Craig Ringer</member>
- <member>Cynthia Shang</member>
- <member>Dagfinn Ilmari Mannsåker</member>
- <member>Daisuke Higuchi</member>
- <member>Damian Quiroga</member>
- <member>Dan Wood</member>
- <member>Dang Minh Huong</member>
- <member>Daniel Gustafsson</member>
- <member>Daniel Vérité</member>
- <member>Daniel Westermann</member>
- <member>Daniele Varrazzo</member>
- <member>Danylo Hlynskyi</member>
- <member>Darko Prelec</member>
- <member>Dave Cramer</member>
- <member>Dave Page</member>
- <member>David Christensen</member>
- <member>David Fetter</member>
- <member>David Johnston</member>
- <member>David Rader</member>
- <member>David Rowley</member>
- <member>David Steele</member>
- <member>Dean Rasheed</member>
- <member>Denis Smirnov</member>
- <member>Denish Patel</member>
- <member>Dennis Björklund</member>
- <member>Devrim Gündüz</member>
- <member>Dilip Kumar</member>
- <member>Dilyan Palauzov</member>
- <member>Dima Pavlov</member>
- <member>Dimitry Ivanov</member>
- <member>Dmitriy Sarafannikov</member>
- <member>Dmitry Dolgov</member>
- <member>Dmitry Fedin</member>
- <member>Don Morrison</member>
- <member>Egor Rogov</member>
- <member>Eiji Seki</member>
- <member>Emil Iggland</member>
- <member>Emre Hasegeli</member>
- <member>Enrique Meneses</member>
- <member>Erik Nordström</member>
- <member>Erik Rijkers</member>
- <member>Erwin Brandstetter</member>
- <member>Etsuro Fujita</member>
- <member>Eugen Konkov</member>
- <member>Eugene Kazakov</member>
- <member>Euler Taveira</member>
- <member>Fabien Coelho</member>
- <member>Fabrízio de Royes Mello</member>
- <member>Feike Steenbergen</member>
- <member>Felix Gerzaguet</member>
- <member>Filip Jirsák</member>
- <member>Fujii Masao</member>
- <member>Gabriele Bartolini</member>
- <member>Gabrielle Roth</member>
- <member>Gao Zengqi</member>
- <member>Gerdan Santos</member>
- <member>Gianni Ciolli</member>
- <member>Gilles Darold</member>
- <member>Giuseppe Broccolo</member>
- <member>Graham Dutton</member>
- <member>Greg Atkins</member>
- <member>Greg Burek</member>
- <member>Grigory Smolkin</member>
- <member>Guillaume Lelarge</member>
- <member>Hans Buschmann</member>
- <member>Haribabu Kommi</member>
- <member>Heikki Linnakangas</member>
- <member>Henry Boehlert</member>
- <member>Huan Ruan</member>
- <member>Ian Barwick</member>
- <member>Igor Korot</member>
- <member>Ildus Kurbangaliev</member>
- <member>Ivan Kartyshov</member>
- <member>Jaime Casanova</member>
- <member>Jakob Egger</member>
- <member>James Parks</member>
- <member>Jarred Ward</member>
- <member>Jason Li</member>
- <member>Jason O'Donnell</member>
- <member>Jason Petersen</member>
- <member>Jeevan Chalke</member>
- <member>Jeevan Ladhe</member>
- <member>Jeff Dafoe</member>
- <member>Jeff Davis</member>
- <member>Jeff Janes</member>
- <member>Jelte Fennema</member>
- <member>Jeremy Finzel</member>
- <member>Jeremy Schneider</member>
- <member>Jeroen van der Ham</member>
- <member>Jesper Pedersen</member>
- <member>Jim Mlodgenski</member>
- <member>Jim Nasby</member>
- <member>Jinyu Zhang</member>
- <member>Joe Conway</member>
- <member>Joel Jacobson</member>
- <member>John Harvey</member>
- <member>Jon Nelson</member>
- <member>Jordan Gigov</member>
- <member>Josh Berkus</member>
- <member>Josh Soref</member>
- <member>Julian Markwort</member>
- <member>Julien Rouhaud</member>
- <member>Junseok Yang</member>
- <member>Justin Muise</member>
- <member>Justin Pryzby</member>
- <member>Kacper Zuk</member>
- <member>KaiGai Kohei</member>
- <member>Karen Huddleston</member>
- <member>Karl Lehenbauer</member>
- <member>Karl O. Pinc</member>
- <member>Keith Fiske</member>
- <member>Kevin Grittner</member>
- <member>Kim Rose Carlsen</member>
- <member>Konstantin Evteev</member>
- <member>Konstantin Knizhnik</member>
- <member>Kuntal Ghosh</member>
- <member>Kurt Kartaltepe</member>
- <member>Kyle Conroy</member>
- <member>Kyotaro Horiguchi</member>
- <member>Laurenz Albe</member>
- <member>Leonardo Cecchi</member>
- <member>Ludovic Vaugeois-Pepin</member>
- <member>Lukas Fittl</member>
- <member>Magnus Hagander</member>
- <member>Maksim Milyutin</member>
- <member>Maksym Sobolyev</member>
- <member>Marc Rassbach</member>
- <member>Marc-Olaf Jaschke</member>
- <member>Marcos Castedo</member>
- <member>Marek Cvoren</member>
- <member>Mark Dilger</member>
- <member>Mark Kirkwood</member>
- <member>Mark Pether</member>
- <member>Marko Tiikkaja</member>
- <member>Markus Winand</member>
- <member>Marllius Ribeiro</member>
- <member>Marti Raudsepp</member>
- <member>Martín Marqués</member>
- <member>Masahiko Sawada</member>
- <member>Matheus Oliveira</member>
- <member>Mathieu Fenniak</member>
- <member>Merlin Moncure</member>
- <member>Michael Banck</member>
- <member>Michael Day</member>
- <member>Michael Meskes</member>
- <member>Michael Overmeyer</member>
- <member>Michael Paquier</member>
- <member>Mike Palmiotto</member>
- <member>Milos Urbanek</member>
- <member>Mithun Cy</member>
- <member>Moshe Jacobson</member>
- <member>Murtuza Zabuawala</member>
- <member>Naoki Okano</member>
- <member>Nathan Bossart</member>
- <member>Nathan Wagner</member>
- <member>Neha Khatri</member>
- <member>Neha Sharma</member>
- <member>Neil Anderson</member>
- <member>Nicolas Baccelli</member>
- <member>Nicolas Guini</member>
- <member>Nicolas Thauvin</member>
- <member>Nikhil Sontakke</member>
- <member>Nikita Glukhov</member>
- <member>Nikolaus Thiel</member>
- <member>Nikolay Nikitin</member>
- <member>Nikolay Shaplov</member>
- <member>Noah Misch</member>
- <member>Noriyoshi Shinoda</member>
- <member>Olaf Gawenda</member>
- <member>Oleg Bartunov</member>
- <member>Oskari Saarenmaa</member>
- <member>Otar Shavadze</member>
- <member>Paresh More</member>
- <member>Paul Jungwirth</member>
- <member>Paul Ramsey</member>
- <member>Pavan Deolasee</member>
- <member>Pavel Golub</member>
- <member>Pavel Hanák</member>
- <member>Pavel Raiskup</member>
- <member>Pavel Stehule</member>
- <member>Peng Sun</member>
- <member>Peter Eisentraut</member>
- <member>Peter Geoghegan</member>
- <member>Petr Jelínek</member>
- <member>Philippe Beaudoin</member>
- <member>Pierre-Emmanuel André</member>
- <member>Piotr Stefaniak</member>
- <member>Prabhat Sahu</member>
- <member>QL Zhuo</member>
- <member>Radek Slupik</member>
- <member>Rafa de la Torre</member>
- <member>Rafia Sabih</member>
- <member>Ragnar Ouchterlony</member>
- <member>Rahila Syed</member>
- <member>Rajkumar Raghuwanshi</member>
- <member>Regina Obe</member>
- <member>Richard Pistole</member>
- <member>Robert Haas</member>
- <member>Robins Tharakan</member>
- <member>Rod Taylor</member>
- <member>Roman Shaposhnik</member>
- <member>Rushabh Lathia</member>
- <member>Ryan Murphy</member>
- <member>Sandeep Thakkar</member>
- <member>Scott Milliken</member>
- <member>Sean Farrell</member>
- <member>Sebastian Luque</member>
- <member>Sehrope Sarkuni</member>
- <member>Sergey Burladyan</member>
- <member>Sergey Koposov</member>
- <member>Shay Rojansky</member>
- <member>Shinichi Matsuda</member>
- <member>Sho Kato</member>
- <member>Simon Riggs</member>
- <member>Simone Gotti</member>
- <member>Spencer Thomason</member>
- <member>Stas Kelvich</member>
- <member>Stepan Pesternikov</member>
- <member>Stephen Frost</member>
- <member>Steve Randall</member>
- <member>Steve Singer</member>
- <member>Steven Fackler</member>
- <member>Steven Winfield</member>
- <member>Suraj Kharage</member>
- <member>Sveinn Sveinsson</member>
- <member>Sven R. Kunze</member>
- <member>Tahir Fakhroutdinov</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>Tim Goodaire</member>
- <member>Tobias Bussmann</member>
- <member>Tom Dunstan</member>
- <member>Tom Lane</member>
- <member>Tom van Tilburg</member>
- <member>Tomas Vondra</member>
- <member>Tomonari Katsumata</member>
- <member>Tushar Ahuja</member>
- <member>Vaishnavi Prabakaran</member>
- <member>Venkata Balaji Nagothi</member>
- <member>Vicky Vergara</member>
- <member>Victor Wagner</member>
- <member>Vik Fearing</member>
- <member>Vinayak Pokale</member>
- <member>Viren Negi</member>
- <member>Vitaly Burovoy</member>
- <member>Vladimir Kunshchikov</member>
- <member>Vladimir Rusinov</member>
- <member>Yi Wen Wong</member>
- <member>Yugo Nagata</member>
- <member>Zhen Ming Yang</member>
- <member>Zhou Digoal</member>
- </simplelist>
- </sect2>
-
- </sect1>
+++ /dev/null
-<!-- doc/src/sgml/release-11.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <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 (Á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 (Á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 (Á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 (Á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.
- </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 < from <= and > from >=.
--->
-
- <para>
- Improve selectivity estimates for <literal>>=</literal>
- and <literal><=</literal> (Tom Lane)
- </para>
-
- <para>
- Previously, such cases used the same selectivity estimates
- as <literal>></literal> and <literal><</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úl Marín Rodrí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 < and & 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ü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 ~> (cube, int) operator
--->
-
- <para>
- Allow retrieval of negative cube coordinates using
- the <literal>~></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>
<sect1 id="release-12">
<title>Release 12</title>
- <para>JIT is enabled by default in this release. It was disabled by
- default in PG 11, so we document is enablement here.
+ <para>
+ This is just a placeholder for now. Actual notes will appear
+ after feature freeze.
+ </para>
+
+ <para>
+ JIT is enabled by default in this release. It was disabled by
+ default in PG 11, so we should document its enablement here.
</para>
</sect1>
+++ /dev/null
-<!-- doc/src/sgml/release-7.4.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-7-4-30">
- <title>Release 7.4.30</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2010-10-04</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.29.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <para>
- This is expected to be the last <productname>PostgreSQL</productname> release
- in the 7.4.X series. Users are encouraged to update to a newer
- release branch soon.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.30</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.26,
- see <xref linkend="release-7-4-26"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Use a separate interpreter for each calling SQL userid in PL/Perl and
- PL/Tcl (Tom Lane)
- </para>
-
- <para>
- This change prevents security problems that can be caused by subverting
- Perl or Tcl code that will be executed later in the same session under
- another SQL user identity (for example, within a <literal>SECURITY
- DEFINER</literal> function). Most scripting languages offer numerous ways that
- that might be done, such as redefining standard functions or operators
- called by the target function. Without this change, any SQL user with
- Perl or Tcl language usage rights can do essentially anything with the
- SQL privileges of the target function's owner.
- </para>
-
- <para>
- The cost of this change is that intentional communication among Perl
- and Tcl functions becomes more difficult. To provide an escape hatch,
- PL/PerlU and PL/TclU functions continue to use only one interpreter
- per session. This is not considered a security issue since all such
- functions execute at the trust level of a database superuser already.
- </para>
-
- <para>
- It is likely that third-party procedural languages that claim to offer
- trusted execution have similar security issues. We advise contacting
- the authors of any PL you are depending on for security-critical
- purposes.
- </para>
-
- <para>
- Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent possible crashes in <function>pg_get_expr()</function> by disallowing
- it from being called with an argument that is not one of the system
- catalog columns it's intended to be used with
- (Heikki Linnakangas, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
- </para>
-
- <para>
- This occurred when a sub-select contains a join alias reference that
- expands into an expression containing another sub-select.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Take care to fsync the contents of lockfiles (both
- <filename>postmaster.pid</filename> and the socket lockfile) while writing them
- (Tom Lane)
- </para>
-
- <para>
- This omission could result in corrupted lockfile contents if the
- machine crashes shortly after postmaster start. That could in turn
- prevent subsequent attempts to start the postmaster from succeeding,
- until the lockfile is manually removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <filename>contrib/dblink</filename>'s handling of tables containing
- dropped columns (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix connection leak after <quote>duplicate connection name</quote>
- errors in <filename>contrib/dblink</filename> (Itagaki Takahiro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update build infrastructure and documentation to reflect the source code
- repository's move from CVS to Git (Magnus Hagander and others)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-29">
- <title>Release 7.4.29</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2010-05-17</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.28.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <para>
- The <productname>PostgreSQL</productname> community will stop releasing updates
- for the 7.4.X release series in July 2010.
- Users are encouraged to update to a newer release branch soon.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.29</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.26,
- see <xref linkend="release-7-4-26"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Enforce restrictions in <literal>plperl</literal> using an opmask applied to
- the whole interpreter, instead of using <filename>Safe.pm</filename>
- (Tim Bunce, Andrew Dunstan)
- </para>
-
- <para>
- Recent developments have convinced us that <filename>Safe.pm</filename> is too
- insecure to rely on for making <literal>plperl</literal> trustable. This
- change removes use of <filename>Safe.pm</filename> altogether, in favor of using
- a separate interpreter with an opcode mask that is always applied.
- Pleasant side effects of the change include that it is now possible to
- use Perl's <literal>strict</literal> pragma in a natural way in
- <literal>plperl</literal>, and that Perl's <literal>$a</literal> and <literal>$b</literal>
- variables work as expected in sort routines, and that function
- compilation is significantly faster. (CVE-2010-1169)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent PL/Tcl from executing untrustworthy code from
- <structname>pltcl_modules</structname> (Tom)
- </para>
-
- <para>
- PL/Tcl's feature for autoloading Tcl code from a database table
- could be exploited for trojan-horse attacks, because there was no
- restriction on who could create or insert into that table. This change
- disables the feature unless <structname>pltcl_modules</structname> is owned by a
- superuser. (However, the permissions on the table are not checked, so
- installations that really need a less-than-secure modules table can
- still grant suitable privileges to trusted non-superusers.) Also,
- prevent loading code into the unrestricted <quote>normal</quote> Tcl
- interpreter unless we are really going to execute a <literal>pltclu</literal>
- function. (CVE-2010-1170)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Do not allow an unprivileged user to reset superuser-only parameter
- settings (Alvaro)
- </para>
-
- <para>
- Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
- ALL</literal> for himself, or <literal>ALTER DATABASE ... RESET ALL</literal> for
- a database he owns, this would remove all special parameter settings
- for the user or database, even ones that are only supposed to be
- changeable by a superuser. Now, the <command>ALTER</command> will only
- remove the parameters that the user has permission to change.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid possible crash during backend shutdown if shutdown occurs
- when a <literal>CONTEXT</literal> addition would be made to log entries (Tom)
- </para>
-
- <para>
- In some cases the context-printing function would fail because the
- current transaction had already been rolled back when it came time
- to print a log message.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update PL/Perl's <filename>ppport.h</filename> for modern Perl versions
- (Andrew)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix assorted memory leaks in PL/Python (Andreas Freund, Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <filename>contrib/pgstattuple</filename> functions respond to cancel
- interrupts promptly (Tatsuhito Kasahara)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make server startup deal properly with the case that
- <function>shmget()</function> returns <literal>EINVAL</literal> for an existing
- shared memory segment (Tom)
- </para>
-
- <para>
- This behavior has been observed on BSD-derived kernels including macOS.
- It resulted in an entirely-misleading startup failure complaining that
- the shared memory request size was too large.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-28">
- <title>Release 7.4.28</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2010-03-15</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.27.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <para>
- The <productname>PostgreSQL</productname> community will stop releasing updates
- for the 7.4.X release series in July 2010.
- Users are encouraged to update to a newer release branch soon.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.28</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.26,
- see <xref linkend="release-7-4-26"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add new configuration parameter <varname>ssl_renegotiation_limit</varname> to
- control how often we do session key renegotiation for an SSL connection
- (Magnus)
- </para>
-
- <para>
- This can be set to zero to disable renegotiation completely, which may
- be required if a broken SSL library is used. In particular, some
- vendors are shipping stopgap patches for CVE-2009-3555 that cause
- renegotiation attempts to fail.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <function>substring()</function> for <type>bit</type> types treat any negative
- length as meaning <quote>all the rest of the string</quote> (Tom)
- </para>
-
- <para>
- The previous coding treated only -1 that way, and would produce an
- invalid result value for other negative values, possibly leading to
- a crash (CVE-2010-0442).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix some cases of pathologically slow regular expression matching (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- When reading <filename>pg_hba.conf</filename> and related files, do not treat
- <literal>@something</literal> as a file inclusion request if the <literal>@</literal>
- appears inside quote marks; also, never treat <literal>@</literal> by itself
- as a file inclusion request (Tom)
- </para>
-
- <para>
- This prevents erratic behavior if a role or database name starts with
- <literal>@</literal>. If you need to include a file whose path name
- contains spaces, you can still do so, but you must write
- <literal>@"/path to/file"</literal> rather than putting the quotes around
- the whole construct.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent infinite loop on some platforms if a directory is named as
- an inclusion target in <filename>pg_hba.conf</filename> and related files
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
- </para>
-
- <para>
- The only known symptom of this oversight is that the Tcl
- <literal>clock</literal> command misbehaves if using Tcl 8.5 or later.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent crash in <filename>contrib/dblink</filename> when too many key
- columns are specified to a <function>dblink_build_sql_*</function> function
- (Rushabh Lathia, Joe Conway)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-27">
- <title>Release 7.4.27</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-12-14</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.26.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.27</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.26,
- see <xref linkend="release-7-4-26"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Protect against indirect security threats caused by index functions
- changing session-local state (Gurjeet Singh, Tom)
- </para>
-
- <para>
- This change prevents allegedly-immutable index functions from possibly
- subverting a superuser's session (CVE-2009-4136).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reject SSL certificates containing an embedded null byte in the common
- name (CN) field (Magnus)
- </para>
-
- <para>
- This prevents unintended matching of a certificate to a server or client
- name during SSL validation (CVE-2009-4034).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible crash during backend-startup-time cache initialization (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent signals from interrupting <literal>VACUUM</literal> at unsafe times
- (Alvaro)
- </para>
-
- <para>
- This fix prevents a PANIC if a <literal>VACUUM FULL</literal> is canceled
- after it's already committed its tuple movements, as well as transient
- errors if a plain <literal>VACUUM</literal> is interrupted after having
- truncated the table.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible crash due to integer overflow in hash table size
- calculation (Tom)
- </para>
-
- <para>
- This could occur with extremely large planner estimates for the size of
- a hashjoin's result.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix very rare crash in <type>inet</type>/<type>cidr</type> comparisons (Chris
- Mikkelson)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PAM password processing to be more robust (Tom)
- </para>
-
- <para>
- The previous code is known to fail with the combination of the Linux
- <literal>pam_krb5</literal> PAM module with Microsoft Active Directory as the
- domain controller. It might have problems elsewhere too, since it was
- making unjustified assumptions about what arguments the PAM stack would
- pass to it.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make the postmaster ignore any <literal>application_name</literal> parameter in
- connection request packets, to improve compatibility with future libpq
- versions (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-26">
- <title>Release 7.4.26</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-09-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.25.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.26</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you have any hash indexes on <type>interval</type> columns,
- you must <command>REINDEX</command> them after updating to 7.4.26.
- Also, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Disallow <command>RESET ROLE</command> and <command>RESET SESSION
- AUTHORIZATION</command> inside security-definer functions (Tom, Heikki)
- </para>
-
- <para>
- This covers a case that was missed in the previous patch that
- disallowed <command>SET ROLE</command> and <command>SET SESSION
- AUTHORIZATION</command> inside security-definer functions.
- (See CVE-2007-6600)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix handling of sub-SELECTs appearing in the arguments of
- an outer-level aggregate function (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix hash calculation for data type <type>interval</type> (Tom)
- </para>
-
- <para>
- This corrects wrong results for hash joins on interval values.
- It also changes the contents of hash indexes on interval columns.
- If you have any such indexes, you must <command>REINDEX</command> them
- after updating.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix overflow for <literal>INTERVAL '<replaceable>x</replaceable> ms'</literal>
- when <replaceable>x</replaceable> is more than 2 million and integer
- datetimes are in use (Alex Hunsaker)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix calculation of distance between a point and a line segment (Tom)
- </para>
-
- <para>
- This led to incorrect results from a number of geometric operators.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <type>money</type> data type to work in locales where currency
- amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Properly round datetime input like
- <literal>00:12:57.9999999999999999999999999999</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix poor choice of page split point in GiST R-tree operator classes
- (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix portability issues in plperl initialization (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve robustness of <application>libpq</application>'s code to recover
- from errors during <command>COPY FROM STDIN</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid including conflicting readline and editline header files
- when both libraries are installed (Zdenek Kotala)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-25">
- <title>Release 7.4.25</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-03-16</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.24.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.25</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Prevent error recursion crashes when encoding conversion fails (Tom)
- </para>
-
- <para>
- This change extends fixes made in the last two minor releases for
- related failure scenarios. The previous fixes were narrowly tailored
- for the original problem reports, but we have now recognized that
- <emphasis>any</emphasis> error thrown by an encoding conversion function could
- potentially lead to infinite recursion while trying to report the
- error. The solution therefore is to disable translation and encoding
- conversion and report the plain-ASCII form of any error message,
- if we find we have gotten into a recursive error reporting situation.
- (CVE-2009-0922)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Disallow <command>CREATE CONVERSION</command> with the wrong encodings
- for the specified conversion function (Heikki)
- </para>
-
- <para>
- This prevents one possible scenario for encoding conversion failure.
- The previous change is a backstop to guard against other kinds of
- failures in the same area.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix core dump when <function>to_char()</function> is given format codes that
- are inappropriate for the type of the data argument (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <literal>MUST</literal> (Mauritius Island Summer Time) to the default list
- of known timezone abbreviations (Xavier Bugaud)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-24">
- <title>Release 7.4.24</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-02-02</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.23.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.24</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Improve handling of URLs in <function>headline()</function> function (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve handling of overlength headlines in <function>headline()</function>
- function (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent possible Assert failure or misconversion if an encoding
- conversion is created with the wrong conversion function for the
- specified pair of encodings (Tom, Heikki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unnecessary locking of small tables in <command>VACUUM</command>
- (Heikki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix uninitialized variables in <filename>contrib/tsearch2</filename>'s
- <function>get_covers()</function> function (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bug in <function>to_char()</function>'s handling of <literal>TH</literal>
- format codes (Andreas Scherbaum)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make all documentation reference <literal>pgsql-bugs</literal> and/or
- <literal>pgsql-hackers</literal> as appropriate, instead of the
- now-decommissioned <literal>pgsql-ports</literal> and <literal>pgsql-patches</literal>
- mailing lists (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-23">
- <title>Release 7.4.23</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-11-03</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.22.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.23</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix backend crash when the client encoding cannot represent a localized
- error message (Tom)
- </para>
-
- <para>
- We have addressed similar issues before, but it would still fail if
- the <quote>character has no equivalent</quote> message itself couldn't
- be converted. The fix is to disable localization and send the plain
- ASCII error message when we detect such a situation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect tsearch2 headline generation when single query
- item matches first word of text (Sushant Sinha)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix improper display of fractional seconds in interval values when
- using a non-ISO datestyle in an <option>--enable-integer-datetimes</option>
- build (Ron Mayer)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure <function>SPI_getvalue</function> and <function>SPI_getbinval</function>
- behave correctly when the passed tuple and tuple descriptor have
- different numbers of columns (Tom)
- </para>
-
- <para>
- This situation is normal when a table has had columns added or removed,
- but these two functions didn't handle it properly.
- The only likely consequence is an incorrect error indication.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</application>'s parsing of <command>CREATE USER</command> (Michael)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-22">
- <title>Release 7.4.22</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-09-22</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.21.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.22</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix datetime input functions to correctly detect integer overflow when
- running on a 64-bit platform (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve performance of writing very long log messages to syslog (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
- ON</literal> query (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix planner to estimate that <literal>GROUP BY</literal> expressions yielding
- boolean results always result in two groups, regardless of the
- expressions' contents (Tom)
- </para>
-
- <para>
- This is very substantially more accurate than the regular <literal>GROUP
- BY</literal> estimate for certain boolean tests like <replaceable>col</replaceable>
- <literal>IS NULL</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <application>pg_dump</application> and <application>pg_restore</application>'s
- error reporting after failure to send a SQL command (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-21">
- <title>Release 7.4.21</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-06-12</para>
- </formalpara>
-
- <para>
- This release contains one serious bug fix over 7.4.20.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.21</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Make <function>pg_get_ruledef()</function> parenthesize negative constants (Tom)
- </para>
-
- <para>
- Before this fix, a negative constant in a view or rule might be dumped
- as, say, <literal>-42::integer</literal>, which is subtly incorrect: it should
- be <literal>(-42)::integer</literal> due to operator precedence rules.
- Usually this would make little difference, but it could interact with
- another recent patch to cause
- <productname>PostgreSQL</productname> to reject what had been a valid
- <command>SELECT DISTINCT</command> view query. Since this could result in
- <application>pg_dump</application> output failing to reload, it is being treated
- as a high-priority fix. The only released versions in which dump
- output is actually incorrect are 8.3.1 and 8.2.7.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-20">
- <title>Release 7.4.20</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>never released</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.19.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.20</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- However, if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix conversions between ISO-8859-5 and other encodings to handle
- Cyrillic <quote>Yo</quote> characters (<literal>e</literal> and <literal>E</literal> with
- two dots) (Sergey Burladyan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix a few datatype input functions
- that were allowing unused bytes in their results to contain
- uninitialized, unpredictable values (Tom)
- </para>
-
- <para>
- This could lead to failures in which two apparently identical literal
- values were not seen as equal, resulting in the parser complaining
- about unmatched <literal>ORDER BY</literal> and <literal>DISTINCT</literal>
- expressions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix a corner case in regular-expression substring matching
- (<literal>substring(<replaceable>string</replaceable> from
- <replaceable>pattern</replaceable>)</literal>) (Tom)
- </para>
-
- <para>
- The problem occurs when there is a match to the pattern overall but
- the user has specified a parenthesized subexpression and that
- subexpression hasn't got a match. An example is
- <literal>substring('foo' from 'foo(bar)?')</literal>.
- This should return NULL, since <literal>(bar)</literal> isn't matched, but
- it was mistakenly returning the whole-pattern match instead (ie,
- <literal>foo</literal>).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect result from <application>ecpg</application>'s
- <function>PGTYPEStimestamp_sub()</function> function (Michael)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <literal>DatumGetBool</literal> macro to not fail with <application>gcc</application>
- 4.3 (Tom)
- </para>
-
- <para>
- This problem affects <quote>old style</quote> (V0) C functions that
- return boolean. The fix is already in 8.3, but the need to
- back-patch it was not realized at the time.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix longstanding <command>LISTEN</command>/<command>NOTIFY</command>
- race condition (Tom)
- </para>
-
- <para>
- In rare cases a session that had just executed a
- <command>LISTEN</command> might not get a notification, even though
- one would be expected because the concurrent transaction executing
- <command>NOTIFY</command> was observed to commit later.
- </para>
-
- <para>
- A side effect of the fix is that a transaction that has executed
- a not-yet-committed <command>LISTEN</command> command will not see any
- row in <structname>pg_listener</structname> for the <command>LISTEN</command>,
- should it choose to look; formerly it would have. This behavior
- was never documented one way or the other, but it is possible that
- some applications depend on the old behavior.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix display of constant expressions in <literal>ORDER BY</literal>
- and <literal>GROUP BY</literal> (Tom)
- </para>
-
- <para>
- An explicitly casted constant would be shown incorrectly. This could
- for example lead to corruption of a view definition during
- dump and reload.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>libpq</application> to handle NOTICE messages correctly
- during COPY OUT (Tom)
- </para>
-
- <para>
- This failure has only been observed to occur when a user-defined
- datatype's output routine issues a NOTICE, but there is no
- guarantee it couldn't happen due to other causes.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-19">
- <title>Release 7.4.19</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-01-07</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.18,
- including fixes for significant security issues.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.19</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Prevent functions in indexes from executing with the privileges of
- the user running <command>VACUUM</command>, <command>ANALYZE</command>, etc (Tom)
- </para>
-
- <para>
- Functions used in index expressions and partial-index
- predicates are evaluated whenever a new table entry is made. It has
- long been understood that this poses a risk of trojan-horse code
- execution if one modifies a table owned by an untrustworthy user.
- (Note that triggers, defaults, check constraints, etc. pose the
- same type of risk.) But functions in indexes pose extra danger
- because they will be executed by routine maintenance operations
- such as <command>VACUUM FULL</command>, which are commonly performed
- automatically under a superuser account. For example, a nefarious user
- can execute code with superuser privileges by setting up a
- trojan-horse index definition and waiting for the next routine vacuum.
- The fix arranges for standard maintenance operations
- (including <command>VACUUM</command>, <command>ANALYZE</command>, <command>REINDEX</command>,
- and <command>CLUSTER</command>) to execute as the table owner rather than
- the calling user, using the same privilege-switching mechanism already
- used for <literal>SECURITY DEFINER</literal> functions. To prevent bypassing
- this security measure, execution of <command>SET SESSION
- AUTHORIZATION</command> and <command>SET ROLE</command> is now forbidden within a
- <literal>SECURITY DEFINER</literal> context. (CVE-2007-6600)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
- </para>
-
- <para>
- Suitably crafted regular-expression patterns could cause crashes,
- infinite or near-infinite looping, and/or massive memory consumption,
- all of which pose denial-of-service hazards for applications that
- accept regex search patterns from untrustworthy sources.
- (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Require non-superusers who use <filename>/contrib/dblink</filename> to use only
- password authentication, as a security measure (Joe)
- </para>
-
- <para>
- The fix that appeared for this in 7.4.18 was incomplete, as it plugged
- the hole for only some <filename>dblink</filename> functions. (CVE-2007-6601,
- CVE-2007-3278)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix planner failure in some cases of <literal>WHERE false AND var IN
- (SELECT ...)</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix potential crash in <function>translate()</function> when using a multibyte
- database encoding (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PL/Python to not crash on long exception messages (Alvaro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <application>ecpg</application> parser fixes (Michael)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <filename>contrib/tablefunc</filename>'s <function>crosstab()</function> handle
- NULL rowid as a category in its own right, rather than crashing (Joe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <type>tsvector</type> and <type>tsquery</type> output routines to
- escape backslashes correctly (Teodor, Bruce)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash of <function>to_tsvector()</function> on huge input strings (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Require a specific version of <productname>Autoconf</productname> to be used
- when re-generating the <command>configure</command> script (Peter)
- </para>
-
- <para>
- This affects developers and packagers only. The change was made
- to prevent accidental use of untested combinations of
- <productname>Autoconf</productname> and <productname>PostgreSQL</productname> versions.
- You can remove the version check if you really want to use a
- different <productname>Autoconf</productname> version, but it's
- your responsibility whether the result works or not.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-18">
- <title>Release 7.4.18</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-09-17</para>
- </formalpara>
-
- <para>
- This release contains fixes from 7.4.17.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.18</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Prevent index corruption when a transaction inserts rows and
- then aborts close to the end of a concurrent <command>VACUUM</command>
- on the same table (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>CREATE DOMAIN ... DEFAULT NULL</command> work properly (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix excessive logging of <acronym>SSL</acronym> error messages (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash when <varname>log_min_error_statement</varname> logging runs out
- of memory (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent <command>CLUSTER</command> from failing
- due to attempting to process temporary tables of other sessions (Alvaro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Require non-superusers who use <filename>/contrib/dblink</filename> to use only
- password authentication, as a security measure (Joe)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-17">
- <title>Release 7.4.17</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-04-23</para>
- </formalpara>
-
- <para>
- This release contains fixes from 7.4.16,
- including a security fix.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.17</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Support explicit placement of the temporary-table schema within
- <varname>search_path</varname>, and disable searching it for functions
- and operators (Tom)
- </para>
- <para>
- This is needed to allow a security-definer function to set a
- truly secure value of <varname>search_path</varname>. Without it,
- an unprivileged SQL user can use temporary objects to execute code
- with the privileges of the security-definer function (CVE-2007-2138).
- See <command>CREATE FUNCTION</command> for more information.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <filename>/contrib/tsearch2</filename> crash fixes (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix potential-data-corruption bug in how <command>VACUUM FULL</command> handles
- <command>UPDATE</command> chains (Tom, Pavan Deolasee)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PANIC during enlargement of a hash index (bug introduced in 7.4.15)
- (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-16">
- <title>Release 7.4.16</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-02-05</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.15, including
- a security fix.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.16</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Remove security vulnerability that allowed connected users
- to read backend memory (Tom)
- </para>
- <para>
- The vulnerability involves suppressing the normal check that a SQL
- function returns the data type it's declared to, or changing the
- data type of a table column used in a SQL function (CVE-2007-0555).
- This error can easily be exploited to cause a backend crash, and in
- principle might be used to read database content that the user
- should not be able to access.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix rare bug wherein btree index page splits could fail
- due to choosing an infeasible split point (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix for rare Assert() crash triggered by <literal>UNION</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Tighten security of multi-byte character processing for UTF8 sequences
- over three bytes long (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-15">
- <title>Release 7.4.15</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-01-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.14.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.15</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Improve handling of <function>getaddrinfo()</function> on AIX (Tom)
- </para>
-
- <para>
- This fixes a problem with starting the statistics collector,
- among other things.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>failed to re-find parent key</quote> errors in
- <command>VACUUM</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bugs affecting multi-gigabyte hash indexes (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix error when constructing an <literal>ARRAY[]</literal> made up of multiple
- empty elements (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <function>to_number()</function> and <function>to_char(numeric)</function>
- are now <literal>STABLE</literal>, not <literal>IMMUTABLE</literal>, for
- new <application>initdb</application> installs (Tom)
- </para>
-
- <para>
- This is because <varname>lc_numeric</varname> can potentially
- change the output of these functions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve index usage of regular expressions that use parentheses (Tom)
- </para>
-
- <para>
- This improves <application>psql</application> <literal>\d</literal> performance also.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-14">
- <title>Release 7.4.14</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-10-16</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.13.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.14</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix core dump when an untyped literal is taken as
-ANYARRAY</para></listitem>
-<listitem><para>Fix <function>string_to_array()</function> to handle overlapping
- matches for the separator string</para>
-<para>For example, <literal>string_to_array('123xx456xxx789', 'xx')</literal>.
-</para></listitem>
-<listitem><para>Fix corner cases in pattern matching for
- <application>psql</application>'s <literal>\d</literal> commands</para></listitem>
-<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
-<listitem><para>Fix backslash escaping in /contrib/dbmirror</para></listitem>
-<listitem><para>Adjust regression tests for recent changes in US DST laws
-</para> </listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-13">
- <title>Release 7.4.13</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-05-23</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.12,
- including patches for extremely serious security issues.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.13</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
-
- <para>
- Full security against the SQL-injection attacks described in
- CVE-2006-2313 and CVE-2006-2314 might require changes in application
- code. If you have applications that embed untrustworthy strings
- into SQL commands, you should examine them as soon as possible to
- ensure that they are using recommended escaping techniques. In
- most cases, applications should be using subroutines provided by
- libraries or drivers (such as <application>libpq</application>'s
- <function>PQescapeStringConn()</function>) to perform string escaping,
- rather than relying on <foreignphrase>ad hoc</foreignphrase> code to do it.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)</para>
-<para>While <productname>PostgreSQL</productname> has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings. This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-</para></listitem>
-
-<listitem><para>Reject unsafe uses of <literal>\'</literal> in string literals</para>
-<para>As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts <literal>''</literal> and not
-<literal>\'</literal> as a representation of ASCII single quote in SQL string
-literals. By default, <literal>\'</literal> is rejected only when
-<varname>client_encoding</varname> is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter <varname>backslash_quote</varname> is available to
-adjust this behavior when needed. Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-<varname>backslash_quote</varname> is in part to make it obvious that insecure
-clients are insecure.
-</para></listitem>
-
-<listitem><para>Modify <application>libpq</application>'s string-escaping routines to be
-aware of encoding considerations and
-<varname>standard_conforming_strings</varname></para>
-<para>This fixes <application>libpq</application>-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple <productname>PostgreSQL</productname> connections
-concurrently should migrate to <function>PQescapeStringConn()</function> and
-<function>PQescapeByteaConn()</function> to ensure that escaping is done correctly
-for the settings in use in each database connection. Applications that
-do string escaping <quote>by hand</quote> should be modified to rely on library
-routines instead.
-</para></listitem>
-
-<listitem><para>Fix some incorrect encoding conversion functions</para>
-<para><function>win1251_to_iso</function>, <function>alt_to_iso</function>,
-<function>euc_tw_to_big5</function>, <function>euc_tw_to_mic</function>,
-<function>mic_to_euc_tw</function> were all broken to varying
-extents.
-</para></listitem>
-
-<listitem><para>Clean up stray remaining uses of <literal>\'</literal> in strings
-(Bruce, Jan)</para></listitem>
-
-<listitem><para>Fix bug that sometimes caused OR'd index scans to
-miss rows they should have returned</para></listitem>
-
-<listitem><para>Fix WAL replay for case where a btree index has been
-truncated</para></listitem>
-
-<listitem><para>Fix <literal>SIMILAR TO</literal> for patterns involving
-<literal>|</literal> (Tom)</para></listitem>
-
-<listitem><para>Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)</para></listitem>
-
-<listitem><para>Fix for Bonjour on Intel Macs (Ashley Clark)</para></listitem>
-
-<listitem><para>Fix various minor memory leaks</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-12">
- <title>Release 7.4.12</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-02-14</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.11.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.12</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.11,
- see <xref linkend="release-7-4-11"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix potential crash in <command>SET
-SESSION AUTHORIZATION</command> (CVE-2006-0553)</para>
-<para>An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-</para></listitem>
-
-<listitem><para>Fix bug with row visibility logic in self-inserted
-rows (Tom)</para>
-<para>Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be. Repairs bug
-created in 7.4.9 and 7.3.11 releases.
-</para></listitem>
-
-<listitem><para>Fix race condition that could lead to <quote>file already
-exists</quote> errors during pg_clog file creation
-(Tom)</para></listitem>
-
-<listitem><para>Properly check <literal>DOMAIN</literal> constraints for
-<literal>UNKNOWN</literal> parameters in prepared statements
-(Neil)</para></listitem>
-
-<listitem><para>Fix to allow restoring dumps that have cross-schema
-references to custom operators (Tom)</para></listitem>
-
-<listitem><para>Portability fix for testing presence of <function>finite</function>
-and <function>isinf</function> during configure (Tom)</para></listitem>
-
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-11">
- <title>Release 7.4.11</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-01-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.10.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.11</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.8,
- see <xref linkend="release-7-4-8"/>.
- Also, you might need to <command>REINDEX</command> indexes on textual
- columns after updating, if you are affected by the locale or
- <application>plperl</application> issues described below.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)</para></listitem>
-
-<listitem><para>Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)</para>
-<para>This might require <command>REINDEX</command> to fix existing indexes on
-textual columns.</para></listitem>
-
-<listitem><para>Set locale environment variables during postmaster startup
-to ensure that <application>plperl</application> won't change the locale later</para>
-<para>This fixes a problem that occurred if the <application>postmaster</application> was
-started with environment variables specifying a different locale than what
-<application>initdb</application> had been told. Under these conditions, any use of
-<application>plperl</application> was likely to lead to corrupt indexes. You might need
-<command>REINDEX</command> to fix existing indexes on
-textual columns if this has happened to you.</para></listitem>
-
-<listitem><para>Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-</para></listitem>
-
-<listitem><para>Fix bug in <filename>/contrib/pgcrypto</filename> gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)</para>
-<para>Salts for Blowfish and standard DES are unaffected.</para></listitem>
-
-<listitem><para>Fix <filename>/contrib/dblink</filename> to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)</para></listitem>
-
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-10">
- <title>Release 7.4.10</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-12-12</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.9.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.10</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.8,
- see <xref linkend="release-7-4-8"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix race condition in transaction log management</para>
-<para>There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.</para>
-</listitem>
-
-<listitem><para>Prevent failure if client sends Bind protocol message
-when current transaction is already aborted</para></listitem>
-
-<listitem><para><filename>/contrib/ltree</filename> fixes (Teodor)</para></listitem>
-
-<listitem><para>AIX and HPUX compile fixes (Tom)</para></listitem>
-
-<listitem><para>Fix longstanding planning error for outer joins</para>
-<para>This bug sometimes caused a bogus error <quote>RIGHT JOIN is
-only supported with merge-joinable join conditions</quote>.</para></listitem>
-
-<listitem><para>Prevent core dump in <application>pg_autovacuum</application> when a
-table has been dropped</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-9">
- <title>Release 7.4.9</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-10-04</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.8.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.9</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- if you are upgrading from a version earlier than 7.4.8,
- see <xref linkend="release-7-4-8"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix error that allowed <command>VACUUM</command> to remove
-<literal>ctid</literal> chains too soon, and add more checking in code that follows
-<literal>ctid</literal> links</para>
-<para>This fixes a long-standing problem that could cause crashes in very rare
-circumstances.</para></listitem>
-<listitem><para>Fix <type>CHAR()</type> to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
-<para>In prior releases, the padding of <type>CHAR()</type> was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.</para></listitem>
-<listitem><para>Fix the sense of the test for read-only transaction
-in <command>COPY</command></para>
-<para>The code formerly prohibited <command>COPY TO</command>, where it should
-prohibit <command>COPY FROM</command>.
-</para></listitem>
-<listitem><para>Fix planning problem with outer-join ON clauses that reference
-only the inner-side relation</para></listitem>
-<listitem><para>Further fixes for <literal>x FULL JOIN y ON true</literal> corner
-cases</para></listitem>
-<listitem><para>Make <function>array_in</function> and <function>array_recv</function> more
-paranoid about validating their OID parameter</para></listitem>
-<listitem><para>Fix missing rows in queries like <literal>UPDATE a=... WHERE
-a...</literal> with GiST index on column <literal>a</literal></para></listitem>
-<listitem><para>Improve robustness of datetime parsing</para></listitem>
-<listitem><para>Improve checking for partially-written WAL
-pages</para></listitem>
-<listitem><para>Improve robustness of signal handling when SSL is
-enabled</para></listitem>
-<listitem><para>Don't try to open more than <literal>max_files_per_process</literal>
-files during postmaster startup</para></listitem>
-<listitem><para>Various memory leakage fixes</para></listitem>
-<listitem><para>Various portability improvements</para></listitem>
-<listitem><para>Fix PL/pgSQL to handle <literal>var := var</literal> correctly when
-the variable is of pass-by-reference type</para></listitem>
-<listitem><para>Update <filename>contrib/tsearch2</filename> to use current Snowball
-code</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-8">
- <title>Release 7.4.8</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-05-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.7, including several
- security-related issues.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.8</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- it is one possible way of handling two significant security problems
- that have been found in the initial contents of 7.4.X system
- catalogs. A dump/initdb/reload sequence using 7.4.8's initdb will
- automatically correct these problems.
- </para>
-
- <para>
- The larger security problem is that the built-in character set encoding
- conversion functions can be invoked from SQL commands by unprivileged
- users, but the functions were not designed for such use and are not
- secure against malicious choices of arguments. The fix involves changing
- the declared parameter list of these functions so that they can no longer
- be invoked from SQL commands. (This does not affect their normal use
- by the encoding conversion machinery.)
- </para>
-
- <para>
- The lesser problem is that the <filename>contrib/tsearch2</filename> module
- creates several functions that are misdeclared to return
- <type>internal</type> when they do not accept <type>internal</type> arguments.
- This breaks type safety for all functions using <type>internal</type>
- arguments.
- </para>
-
- <para>
- It is strongly recommended that all installations repair these errors,
- either by initdb or by following the manual repair procedures given
- below. The errors at least allow unprivileged database users to crash
- their server process, and might allow unprivileged users to gain the
- privileges of a database superuser.
- </para>
-
- <para>
- If you wish not to do an initdb, perform the following procedures instead.
- As the database superuser, do:
-
-<programlisting>
-BEGIN;
-UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
-WHERE pronamespace = 11 AND pronargs = 5
- AND proargtypes[2] = 'cstring'::regtype;
--- The command should report having updated 90 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-</programlisting>
-
- Next, if you have installed <filename>contrib/tsearch2</filename>, do:
-
-<programlisting>
-BEGIN;
-UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
-WHERE oid IN (
- 'dex_init(text)'::regprocedure,
- 'snb_en_init(text)'::regprocedure,
- 'snb_ru_init(text)'::regprocedure,
- 'spell_init(text)'::regprocedure,
- 'syn_init(text)'::regprocedure
-);
--- The command should report having updated 5 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-</programlisting>
-
- If this command fails with a message like <quote>function
- "dex_init(text)" does not exist</quote>, then either <filename>tsearch2</filename>
- is not installed in this database, or you already did the update.
- </para>
-
- <para>
- The above procedures must be carried out in <emphasis>each</emphasis> database
- of an installation, including <literal>template1</literal>, and ideally
- including <literal>template0</literal> as well. If you do not fix the
- template databases then any subsequently created databases will contain
- the same errors. <literal>template1</literal> can be fixed in the same way
- as any other database, but fixing <literal>template0</literal> requires
- additional steps. First, from any database issue:
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-</programlisting>
- Next connect to <literal>template0</literal> and perform the above repair
- procedures. Finally, do:
-<programlisting>
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change encoding function signature to prevent
-misuse</para></listitem>
-<listitem><para>Change <filename>contrib/tsearch2</filename> to avoid unsafe use of
-<type>INTERNAL</type> function results</para></listitem>
-<listitem><para>Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes</para>
-<para>This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.</para></listitem>
-<listitem><para>Repair race condition between relation extension and
-VACUUM</para>
-<para>This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-</para></listitem>
-<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</type> values</para>
-<para>
-The comparison code was wrong in the case where the
-<literal>--enable-integer-datetimes</literal> configuration switch had been used.
-NOTE: if you have an index on a <type>TIME WITH TIME ZONE</type> column,
-it will need to be <command>REINDEX</command>ed after installing this update, because
-the fix corrects the sort order of column values.
-</para></listitem>
-<listitem><para>Fix <function>EXTRACT(EPOCH)</function> for
-<type>TIME WITH TIME ZONE</type> values</para></listitem>
-<listitem><para>Fix mis-display of negative fractional seconds in
-<type>INTERVAL</type> values</para>
-<para>
-This error only occurred when the
-<literal>--enable-integer-datetimes</literal> configuration switch had been used.
-</para></listitem>
-<listitem><para>Ensure operations done during backend shutdown are counted by
-statistics collector</para>
-<para>
-This is expected to resolve reports of <application>pg_autovacuum</application>
-not vacuuming the system catalogs often enough — it was not being
-told about catalog deletions caused by temporary table removal during
-backend exit.
-</para></listitem>
-<listitem><para>Additional buffer overrun checks in plpgsql
-(Neil)</para></listitem>
-<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</literal>
-correctly (Neil)</para></listitem>
-<listitem><para>Fix <filename>contrib/pgcrypto</filename> for newer OpenSSL builds
-(Marko Kreen)</para></listitem>
-<listitem><para>Still more 64-bit fixes for
-<filename>contrib/intagg</filename></para></listitem>
-<listitem><para>Prevent incorrect optimization of functions returning
-<type>RECORD</type></para></listitem>
-<listitem><para>Prevent <function>to_char(interval)</function> from dumping core for
-month-related formats</para></listitem>
-<listitem><para>Prevent crash on <literal>COALESCE(NULL,NULL)</literal></para></listitem>
-<listitem><para>Fix <function>array_map</function> to call PL functions correctly</para></listitem>
-<listitem><para>Fix permission checking in <command>ALTER DATABASE RENAME</command></para></listitem>
-<listitem><para>Fix <command>ALTER LANGUAGE RENAME</command></para></listitem>
-<listitem><para>Make <function>RemoveFromWaitQueue</function> clean up after itself</para>
-<para>
-This fixes a lock management error that would only be visible if a transaction
-was kicked out of a wait for a lock (typically by query cancel) and then the
-holder of the lock released it within a very narrow window.
-</para></listitem>
-<listitem><para>Fix problem with untyped parameter appearing in
-<command>INSERT ... SELECT</command></para></listitem>
-<listitem><para>Fix <command>CLUSTER</command> failure after
-<command>ALTER TABLE SET WITHOUT OIDS</command></para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-7">
- <title>Release 7.4.7</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-01-31</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.6, including several
- security-related issues.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 7.4.7</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow <command>LOAD</command> to non-superusers</para>
-<para>
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-<command>LOAD</command> can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.</para></listitem>
-<listitem><para>Check that creator of an aggregate function has the right to
-execute the specified transition functions</para>
-<para>
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.</para></listitem>
-<listitem><para>Fix security and 64-bit issues in
-contrib/intagg</para></listitem>
-<listitem><para>Add needed STRICT marking to some contrib functions (Kris
-Jurka)</para></listitem>
-<listitem><para>Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)</para></listitem>
-<listitem><para>Fix planning error for FULL and RIGHT outer joins</para>
-<para>
-The result of the join was mistakenly supposed to be sorted the same as the
-left input. This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-</para></listitem>
-<listitem><para>Fix plperl for quote marks in tuple fields</para></listitem>
-<listitem><para>Fix display of negative intervals in SQL and GERMAN
-datestyles</para></listitem>
-<listitem><para>Make age(timestamptz) do calculation in local timezone not
-GMT</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-6">
- <title>Release 7.4.6</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2004-10-22</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.5.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
-
- <sect2>
- <title>Migration to Version 7.4.6</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair possible failure to update hint bits on disk</para>
-<para>
-Under rare circumstances this oversight could lead to
-<quote>could not access transaction status</quote> failures, which qualifies
-it as a potential-data-loss bug.
-</para></listitem>
-<listitem><para>Ensure that hashed outer join does not miss tuples</para>
-<para>
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-</para></listitem>
-<listitem><para>Disallow running <application>pg_ctl</application> as root</para>
-<para>
-This is to guard against any possible security issues.
-</para></listitem>
-<listitem><para>Avoid using temp files in <filename>/tmp</filename> in <command>make_oidjoins_check</command></para>
-<para>
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-</para></listitem>
-<listitem><para>Prevent forced backend shutdown from re-emitting prior command
-result</para>
-<para>
-In rare cases, a client might think that its last command had succeeded when
-it really had been aborted by forced database shutdown.
-</para></listitem>
-<listitem><para>Repair bug in <function>pg_stat_get_backend_idset</function></para>
-<para>
-This could lead to misbehavior in some of the system-statistics views.
-</para></listitem>
-<listitem><para>Fix small memory leak in postmaster</para></listitem>
-<listitem><para>Fix <quote>expected both swapped tables to have TOAST
-tables</quote> bug</para>
-<para>
-This could arise in cases such as CLUSTER after ALTER TABLE DROP COLUMN.
-</para></listitem>
-<listitem><para>Prevent <literal>pg_ctl restart</literal> from adding <literal>-D</literal> multiple times</para></listitem>
-<listitem><para>Fix problem with NULL values in GiST indexes</para></listitem>
-<listitem><para><literal>::</literal> is no longer interpreted as a variable in an
-ECPG prepare statement</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-5">
- <title>Release 7.4.5</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2004-08-18</para>
- </formalpara>
-
- <para>
- This release contains one serious bug fix over 7.4.4.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
-
- <sect2>
- <title>Migration to Version 7.4.5</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair possible crash during concurrent B-tree index insertions</para>
-<para>
-This patch fixes a rare case in which concurrent insertions into a B-tree index
-could result in a server panic. No permanent damage would result, but it's
-still worth a re-release. The bug does not exist in pre-7.4 releases.
-</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-4">
- <title>Release 7.4.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2004-08-16</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.3.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
-
- <sect2>
- <title>Migration to Version 7.4.4</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Prevent possible loss of committed transactions during crash</para>
-<para>
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart. This is a serious bug that has existed
-since <productname>PostgreSQL</productname> 7.1.
-</para></listitem>
-<listitem><para>Check HAVING restriction before evaluating result list of an
-aggregate plan</para></listitem>
-<listitem><para>Avoid crash when session's current user ID is deleted</para></listitem>
-<listitem><para>Fix hashed crosstab for zero-rows case (Joe)</para></listitem>
-<listitem><para>Force cache update after renaming a column in a foreign key</para></listitem>
-<listitem><para>Pretty-print UNION queries correctly</para></listitem>
-<listitem><para>Make psql handle <literal>\r\n</literal> newlines properly in COPY IN</para></listitem>
-<listitem><para><application>pg_dump</application> handled ACLs with grant options incorrectly</para></listitem>
-<listitem><para>Fix thread support for macOS and Solaris</para></listitem>
-<listitem><para>Updated JDBC driver (build 215) with various fixes</para></listitem>
-<listitem><para>ECPG fixes</para></listitem>
-<listitem><para>Translation updates (various contributors)</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-3">
- <title>Release 7.4.3</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2004-06-14</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.2.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
-
- <sect2>
- <title>Migration to Version 7.4.3</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix temporary memory leak when using non-hashed aggregates (Tom)</para></listitem>
-<listitem><para>ECPG fixes, including some for Informix compatibility (Michael)</para></listitem>
-<listitem><para>Fixes for compiling with thread-safety, particularly Solaris (Bruce)</para></listitem>
-<listitem><para>Fix error in COPY IN termination when using the old network protocol (ljb)</para></listitem>
-<listitem><para>Several important fixes in pg_autovacuum, including fixes for
-large tables, unsigned oids, stability, temp tables, and debug mode
-(Matthew T. O'Connor)</para></listitem>
-<listitem><para>Fix problem with reading tar-format dumps on NetBSD and BSD/OS (Bruce)</para></listitem>
-<listitem><para>Several JDBC fixes</para></listitem>
-<listitem><para>Fix ALTER SEQUENCE RESTART where last_value equals the restart value (Tom)</para></listitem>
-<listitem><para>Repair failure to recalculate nested sub-selects (Tom)</para></listitem>
-<listitem><para>Fix problems with non-constant expressions in LIMIT/OFFSET</para></listitem>
-<listitem><para>Support FULL JOIN with no join clause, such as X FULL JOIN Y ON TRUE (Tom)</para></listitem>
-<listitem><para>Fix another zero-column table bug (Tom)</para></listitem>
-<listitem><para>Improve handling of non-qualified identifiers in GROUP BY clauses in sub-selects (Tom)</para>
-<para>
-Select-list aliases within the sub-select will now take precedence over
-names from outer query levels.
-</para></listitem>
-<listitem><para>Do not generate <quote>NATURAL CROSS JOIN</quote> when decompiling rules (Tom)</para></listitem>
-<listitem><para>Add checks for invalid field length in binary COPY (Tom)</para>
-<para>
- This fixes a difficult-to-exploit security hole.
-</para></listitem>
-<listitem><para>Avoid locking conflict between <command>ANALYZE</command> and <command>LISTEN</command>/<command>NOTIFY</command></para></listitem>
-<listitem><para>Numerous translation updates (various contributors)</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-2">
- <title>Release 7.4.2</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2004-03-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.1.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
-
- <sect2>
- <title>Migration to Version 7.4.2</title>
-
- <para>
- A dump/restore is not required for those running 7.4.X. However,
- it might be advisable as the easiest method of incorporating fixes for
- two errors that have been found in the initial contents of 7.4.X system
- catalogs. A dump/initdb/reload sequence using 7.4.2's initdb will
- automatically correct these problems.
- </para>
-
- <para>
- The more severe of the two errors is that data type <type>anyarray</type>
- has the wrong alignment label; this is a problem because the
- <structname>pg_statistic</structname> system catalog uses <type>anyarray</type>
- columns. The mislabeling can cause planner misestimations and even
- crashes when planning queries that involve <literal>WHERE</literal> clauses on
- double-aligned columns (such as <type>float8</type> and <type>timestamp</type>).
- It is strongly recommended that all installations repair this error,
- either by initdb or by following the manual repair procedure given
- below.
- </para>
-
- <para>
- The lesser error is that the system view <structname>pg_settings</structname>
- ought to be marked as having public update access, to allow
- <literal>UPDATE pg_settings</literal> to be used as a substitute for
- <command>SET</command>. This can also be fixed either by initdb or manually,
- but it is not necessary to fix unless you want to use <literal>UPDATE
- pg_settings</literal>.
- </para>
-
- <para>
- If you wish not to do an initdb, the following procedure will work
- for fixing <structname>pg_statistic</structname>. As the database superuser,
- do:
-
-<programlisting>
--- clear out old data in pg_statistic:
-DELETE FROM pg_statistic;
-VACUUM pg_statistic;
--- this should update 1 row:
-UPDATE pg_type SET typalign = 'd' WHERE oid = 2277;
--- this should update 6 rows:
-UPDATE pg_attribute SET attalign = 'd' WHERE atttypid = 2277;
---
--- At this point you MUST start a fresh backend to avoid a crash!
---
--- repopulate pg_statistic:
-ANALYZE;
-</programlisting>
-
- This can be done in a live database, but beware that all backends
- running in the altered database must be restarted before it is safe to
- repopulate <structname>pg_statistic</structname>.
- </para>
-
- <para>
- To repair the <structname>pg_settings</structname> error, simply do:
-<programlisting>
-GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;
-</programlisting>
- </para>
-
- <para>
- The above procedures must be carried out in <emphasis>each</emphasis> database
- of an installation, including <literal>template1</literal>, and ideally
- including <literal>template0</literal> as well. If you do not fix the
- template databases then any subsequently created databases will contain
- the same errors. <literal>template1</literal> can be fixed in the same way
- as any other database, but fixing <literal>template0</literal> requires
- additional steps. First, from any database issue:
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-</programlisting>
- Next connect to <literal>template0</literal> and perform the above repair
- procedures. Finally, do:
-<programlisting>
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<para>
- Release 7.4.2 incorporates all the fixes included in release 7.3.6,
- plus the following fixes:
-</para>
-
-<itemizedlist>
-<listitem><para>Fix <structname>pg_statistic</structname> alignment bug that could crash optimizer</para>
-<para>See above for details about this problem.</para></listitem>
-<listitem><para>Allow non-super users to update <structname>pg_settings</structname></para></listitem>
-<listitem><para>Fix several optimizer bugs, most of which led to
-<quote>variable not found in subplan target lists</quote> errors</para></listitem>
-<listitem><para>Avoid out-of-memory failure during startup of large multiple
-index scan</para></listitem>
-<listitem><para>Fix multibyte problem that could lead to <quote>out of
-memory</quote> error during <command>COPY IN</command></para></listitem>
-<listitem><para>Fix problems with <command>SELECT INTO</command> / <command>CREATE
-TABLE AS</command> from tables without OIDs</para></listitem>
-<listitem><para>Fix problems with <filename>alter_table</filename> regression test
-during parallel testing</para></listitem>
-<listitem><para>Fix problems with hitting open file limit, especially on macOS (Tom)</para></listitem>
-<listitem><para>Partial fix for Turkish-locale issues</para>
-<para>initdb will succeed now in Turkish locale, but there are still some
-inconveniences associated with the <literal>i/I</literal> problem.</para></listitem>
-<listitem><para>Make pg_dump set client encoding on restore</para></listitem>
-<listitem><para>Other minor pg_dump fixes</para></listitem>
-<listitem><para>Allow ecpg to again use C keywords as column names (Michael)</para></listitem>
-<listitem><para>Added ecpg <literal>WHENEVER NOT_FOUND</literal> to
-<literal>SELECT/INSERT/UPDATE/DELETE</literal> (Michael)</para></listitem>
-<listitem><para>Fix ecpg crash for queries calling set-returning functions (Michael)</para></listitem>
-<listitem><para>Various other ecpg fixes (Michael)</para></listitem>
-<listitem><para>Fixes for Borland compiler</para></listitem>
-<listitem><para>Thread build improvements (Bruce)</para></listitem>
-<listitem><para>Various other build fixes</para></listitem>
-<listitem><para>Various JDBC fixes</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-7-4-1">
- <title>Release 7.4.1</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2003-12-22</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 7.4.
- For information about new features in the 7.4 major release, see
- <xref linkend="release-7-4"/>.
- </para>
-
-
- <sect2>
- <title>Migration to Version 7.4.1</title>
-
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running 7.4.
- </para>
-
- <para>
- If you want to install the fixes in the information schema
- you need to reload it into the database.
- This is either accomplished by initializing a new cluster
- by running <command>initdb</command>, or by running the following
- sequence of SQL commands in each database (ideally including
- <literal>template1</literal>) as a superuser in
- <application>psql</application>, after installing the new release:
-<programlisting>
-DROP SCHEMA information_schema CASCADE;
-\i /usr/local/pgsql/share/information_schema.sql
-</programlisting>
- Substitute your installation path in the second command.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fixed bug in <command>CREATE SCHEMA</command> parsing in ECPG (Michael)</para></listitem>
-<listitem><para>Fix compile error when <option>--enable-thread-safety</option> and <option>--with-perl</option> are used together (Peter)</para></listitem>
-<listitem><para>Fix for subqueries that used hash joins (Tom)</para>
-<para>
- Certain subqueries that used hash joins would crash because of
- improperly shared structures.
-</para></listitem>
-<listitem><para>Fix free space map compaction bug (Tom)</para>
-<para>
- This fixes a bug where compaction of the free space map could lead
- to a database server shutdown.
-</para>
-</listitem>
-<listitem><para>Fix for Borland compiler build of libpq (Bruce)</para></listitem>
-<listitem><para>Fix <function>netmask()</function> and <function>hostmask()</function> to return the maximum-length masklen (Tom)</para>
-<para>
- Fix these functions to return values consistent with pre-7.4
- releases.
-</para>
-</listitem>
-<listitem><para>Several <filename>contrib/pg_autovacuum</filename> fixes</para>
-<para>
- Fixes include improper variable initialization, missing vacuum after
- <command>TRUNCATE</command>, and duration computation overflow for long vacuums.
-</para>
-</listitem>
-<listitem><para>Allow compile of <filename>contrib/cube</filename> under Cygwin (Jason Tishler)</para></listitem>
-<listitem><para>Fix Solaris use of password file when no passwords are defined (Tom)</para>
-<para>
- Fix crash on Solaris caused by use of any type of password
- authentication when no passwords were defined.
-</para>
-</listitem>
-<listitem><para>JDBC fix for thread problems, other fixes</para></listitem>
-<listitem><para>Fix for <type>bytea</type> index lookups (Joe)</para></listitem>
-<listitem><para>Fix information schema for bit data types (Peter)</para></listitem>
-<listitem><para>Force zero_damaged_pages to be on during recovery from WAL</para></listitem>
-<listitem><para>Prevent some obscure cases of <quote>variable not in subplan target lists</quote></para></listitem>
-<listitem><para>Make <function>PQescapeBytea</function> and <function>byteaout</function> consistent with each other (Joe)</para></listitem>
-<listitem><para>Escape <type>bytea</type> output for bytes > 0x7e(Joe)</para>
-<para>
- If different client encodings are used for <type>bytea</type> output and input, it
- is possible for <type>bytea</type> values to be corrupted by the differing
- encodings. This fix escapes all bytes that might be affected.
-</para>
-</listitem>
-<listitem><para>Added missing <function>SPI_finish()</function> calls to dblink's <function>get_tuple_of_interest()</function> (Joe)</para></listitem>
-<listitem><para>New Czech FAQ</para></listitem>
-<listitem><para>Fix information schema view <literal>constraint_column_usage</literal> for foreign keys (Peter)</para></listitem>
-<listitem><para>ECPG fixes (Michael)</para></listitem>
-<listitem><para>Fix bug with multiple <literal>IN</literal> subqueries and joins in the subqueries (Tom)</para></listitem>
-<listitem><para>Allow <literal>COUNT('x')</literal> to work (Tom)</para></listitem>
-<listitem><para>Install ECPG include files for Informix compatibility into separate directory (Peter)</para>
-<para>
- Some names of ECPG include files for Informix compatibility conflicted with operating system include files.
- By installing them in their own directory, name conflicts have been reduced.
-</para>
-</listitem>
-<listitem><para>Fix SSL memory leak (Neil)</para>
-<para>
- This release fixes a bug in 7.4 where SSL didn't free all memory it allocated.
-</para>
-</listitem>
-<listitem><para>Prevent <filename>pg_service.conf</filename> from using service name as default dbname (Bruce)</para></listitem>
-<listitem><para>Fix local ident authentication on FreeBSD (Tom)</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
-<sect1 id="release-7-4">
- <title>Release 7.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2003-11-17</para>
- </formalpara>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- Major changes in this release:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>
- <literal>IN</literal> / <literal>NOT IN</literal> subqueries are
- now much more efficient
- </term>
-
- <listitem>
- <para>
- In previous releases, <literal>IN</literal>/<literal>NOT
- IN</literal> subqueries were joined to the upper query by
- sequentially scanning the subquery looking for a match. The
- 7.4 code uses the same sophisticated techniques used by
- ordinary joins and so is much faster. An
- <literal>IN</literal> will now usually be as fast as or faster
- than an equivalent <literal>EXISTS</literal> subquery; this
- reverses the conventional wisdom that applied to previous
- releases.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Improved <literal>GROUP BY</literal> processing by using hash buckets
- </term>
-
- <listitem>
- <para>
- In previous releases, rows to be grouped had to be sorted
- first. The 7.4 code can do <literal>GROUP BY</literal>
- without sorting, by accumulating results into a hash table
- with one entry per group. It will still use the sort
- technique, however, if the hash table is estimated to be too
- large to fit in <varname>sort_mem</varname>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- New multikey hash join capability
- </term>
-
- <listitem>
- <para>
- In previous releases, hash joins could only occur on single
- keys. This release allows multicolumn hash joins.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Queries using the explicit <literal>JOIN</literal> syntax are
- now better optimized
- </term>
-
- <listitem>
- <para>
- Prior releases evaluated queries using the explicit
- <literal>JOIN</literal> syntax only in the order implied by
- the syntax. 7.4 allows full optimization of these queries,
- meaning the optimizer considers all possible join orderings
- and chooses the most efficient. Outer joins, however, must
- still follow the declared ordering.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Faster and more powerful regular expression code
- </term>
-
- <listitem>
- <para>
- The entire regular expression module has been replaced with a
- new version by Henry Spencer, originally written for Tcl. The
- code greatly improves performance and supports several flavors
- of regular expressions.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Function-inlining for simple SQL functions
- </term>
-
- <listitem>
- <para>
- Simple SQL functions can now be inlined by including their SQL
- in the main query. This improves performance by eliminating
- per-call overhead. That means simple SQL functions now
- behave like macros.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Full support for IPv6 connections and IPv6 address data types
- </term>
-
- <listitem>
- <para>
- Previous releases allowed only IPv4 connections, and the IP
- data types only supported IPv4 addresses. This release adds
- full IPv6 support in both of these areas.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Major improvements in SSL performance and reliability
- </term>
-
- <listitem>
- <para>
- Several people very familiar with the SSL API have overhauled
- our SSL code to improve SSL key negotiation and error
- recovery.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Make free space map efficiently reuse empty index pages,
- and other free space management improvements
- </term>
-
- <listitem>
- <para>
- In previous releases, B-tree index pages that were left empty
- because of deleted rows could only be reused by rows with
- index values similar to the rows originally indexed on that
- page. In 7.4, <command>VACUUM</command> records empty index
- pages and allows them to be reused for any future index rows.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- SQL-standard information schema
- </term>
-
- <listitem>
- <para>
- The information schema provides a standardized and stable way
- to access information about the schema objects defined in a
- database.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Cursors conform more closely to the SQL standard
- </term>
-
- <listitem>
- <para>
- The commands <command>FETCH</command> and
- <command>MOVE</command> have been overhauled to conform more
- closely to the SQL standard.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Cursors can exist outside transactions
- </term>
-
- <listitem>
- <para>
- These cursors are also called holdable cursors.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- New client-to-server protocol
- </term>
-
- <listitem>
- <para>
- The new protocol adds error codes, more status information,
- faster startup, better support for binary data transmission,
- parameter values separated from SQL commands, prepared
- statements available at the protocol level, and cleaner
- recovery from <command>COPY</command> failures. The older
- protocol is still supported by both server and clients.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <application>libpq</application> and
- <application>ECPG</application> applications are now fully
- thread-safe
- </term>
-
- <listitem>
- <para>
- While previous <application>libpq</application> releases
- already supported threads, this release improves thread safety
- by fixing some non-thread-safe code that was used during
- database connection startup. The <command>configure</command>
- option <option>--enable-thread-safety</option> must be used to
- enable this feature.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- New version of full-text indexing
- </term>
-
- <listitem>
- <para>
- A new full-text indexing suite is available in
- <filename>contrib/tsearch2</filename>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- New autovacuum tool
- </term>
-
- <listitem>
- <para>
- The new autovacuum tool in
- <filename>contrib/autovacuum</filename> monitors the database
- statistics tables for
- <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>
- activity and automatically vacuums tables when needed.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Array handling has been improved and moved into the server core
- </term>
-
- <listitem>
- <para>
- Many array limitations have been removed, and arrays behave
- more like fully-supported data types.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Migration to Version 7.4</title>
-
- <para>
- A dump/restore using <application>pg_dump</application> is
- required for those wishing to migrate data from any previous
- release.
- </para>
-
- <para>
- Observe the following incompatibilities:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>
- The server-side autocommit setting was removed and
- reimplemented in client applications and languages.
- Server-side autocommit was causing too many problems with
- languages and applications that wanted to control their own
- autocommit behavior, so autocommit was removed from the server
- and added to individual client APIs as appropriate.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Error message wording has changed substantially in this
- release. Significant effort was invested to make the messages
- more consistent and user-oriented. If your applications try to
- detect different error conditions by parsing the error message,
- you are strongly encouraged to use the new error code facility instead.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Inner joins using the explicit <literal>JOIN</literal> syntax
- might behave differently because they are now better
- optimized.
- </para>
- </listitem>
-
- <listitem>
- <para>
- A number of server configuration parameters have been renamed
- for clarity, primarily those related to
- logging.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>FETCH 0</literal> or <literal>MOVE 0</literal> now
- does nothing. In prior releases, <literal>FETCH 0</literal>
- would fetch all remaining rows, and <literal>MOVE 0</literal>
- would move to the end of the cursor.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <command>FETCH</command> and <command>MOVE</command> now return
- the actual number of rows fetched/moved, or zero if at the
- beginning/end of the cursor. Prior releases would return the
- row count passed to the command, not the number of rows
- actually fetched or moved.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <command>COPY</command> now can process files that use
- carriage-return or carriage-return/line-feed end-of-line
- sequences. Literal carriage-returns and line-feeds are no
- longer accepted in data values; use <literal>\r</literal> and
- <literal>\n</literal> instead.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Trailing spaces are now trimmed when converting from type
- <type>char(<replaceable>n</replaceable>)</type> to
- <type>varchar(<replaceable>n</replaceable>)</type> or <type>text</type>.
- This is what most people always expected to happen anyway.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The data type <type>float(<replaceable>p</replaceable>)</type> now
- measures <replaceable>p</replaceable> in binary digits, not decimal
- digits. The new behavior follows the SQL standard.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ambiguous date values now must match the ordering specified by
- the <varname>datestyle</varname> setting. In prior releases, a
- date specification of <literal>10/20/03</literal> was interpreted as a
- date in October even if <varname>datestyle</varname> specified that
- the day should be first. 7.4 will throw an error if a date
- specification is invalid for the current setting of
- <varname>datestyle</varname>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The functions <function>oidrand</function>,
- <function>oidsrand</function>, and
- <function>userfntest</function> have been removed. These
- functions were determined to be no longer useful.
- </para>
- </listitem>
-
- <listitem>
- <para>
- String literals specifying time-varying date/time values, such
- as <literal>'now'</literal> or <literal>'today'</literal> will
- no longer work as expected in column default expressions; they
- now cause the time of the table creation to be the default, not
- the time of the insertion. Functions such as
- <function>now()</function>, <function>current_timestamp</function>, or
- <function>current_date</function> should be used instead.
- </para>
-
- <para>
- In previous releases, there was special code so that strings
- such as <literal>'now'</literal> were interpreted at
- <command>INSERT</command> time and not at table creation time, but
- this work around didn't cover all cases. Release 7.4 now
- requires that defaults be defined properly using functions such
- as <function>now()</function> or <function>current_timestamp</function>. These
- will work in all situations.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The dollar sign (<literal>$</literal>) is no longer allowed in
- operator names. It can instead be a non-first character in
- identifiers. This was done to improve compatibility with other
- database systems, and to avoid syntax problems when parameter
- placeholders (<literal>$<replaceable>n</replaceable></literal>) are written
- adjacent to operators.
- </para>
- </listitem>
-
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <para>
- Below you will find a detailed account of the changes between
- release 7.4 and the previous major release.
- </para>
-
- <sect3>
- <title>Server Operation Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>
- Allow IPv6 server connections (Nigel Kukard, Johan Jordaan,
- Bruce, Tom, Kurt Roeckx, Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix SSL to handle errors cleanly (Nathan Mueller)
- </para>
- <para>
- In prior releases, certain SSL API error reports were not
- handled correctly. This release fixes those problems.
- </para>
- </listitem>
-
- <listitem>
- <para>
- SSL protocol security and performance improvements (Sean Chittenden)
- </para>
- <para>
- SSL key renegotiation was happening too frequently, causing poor
- SSL performance. Also, initial key handling was improved.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Print lock information when a deadlock is detected (Tom)
- </para>
- <para>
- This allows easier debugging of deadlock situations.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update <filename>/tmp</filename> socket modification times
- regularly to avoid their removal (Tom)
- </para>
- <para>
- This should help prevent <filename>/tmp</filename> directory
- cleaner administration scripts from removing server socket
- files.
- </para>
- </listitem>
-
- <listitem><para>Enable PAM for macOS (Aaron Hillegass)</para></listitem>
-
- <listitem>
- <para>Make B-tree indexes fully WAL-safe (Tom)</para>
- <para>
- In prior releases, under certain rare cases, a server crash
- could cause B-tree indexes to become corrupt. This release
- removes those last few rare cases.
- </para>
- </listitem>
-
- <listitem><para>Allow B-tree index compaction and empty page reuse (Tom)</para></listitem>
-
- <listitem>
- <para>
- Fix inconsistent index lookups during split of first root page (Tom)
- </para>
- <para>
- In prior releases, when a single-page index split into two
- pages, there was a brief period when another database session
- could miss seeing an index entry. This release fixes that rare
- failure case.
- </para>
- </listitem>
-
- <listitem><para>Improve free space map allocation logic (Tom)</para></listitem>
-
- <listitem>
- <para>Preserve free space information between server restarts (Tom)</para>
- <para>
- In prior releases, the free space map was not saved when the
- postmaster was stopped, so newly started servers had no free
- space information. This release saves the free space map, and
- reloads it when the server is restarted.
- </para>
- </listitem>
-
- <listitem><para>Add start time to <literal>pg_stat_activity</literal> (Neil)</para></listitem>
- <listitem><para>New code to detect corrupt disk pages; erase with <varname>zero_damaged_pages</varname> (Tom)</para></listitem>
- <listitem><para>New client/server protocol: faster, no username length limit, allow clean exit from <command>COPY</command> (Tom)</para></listitem>
- <listitem><para>Add transaction status, table ID, column ID to client/server protocol (Tom)</para></listitem>
- <listitem><para>Add binary I/O to client/server protocol (Tom)</para></listitem>
- <listitem><para>Remove autocommit server setting; move to client applications (Tom)</para></listitem>
- <listitem><para>New error message wording, error codes, and three levels of error detail (Tom, Joe, Peter)</para></listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Performance Improvements</title>
-
- <itemizedlist>
- <listitem><para>Add hashing for <literal>GROUP BY</literal> aggregates (Tom)</para></listitem>
- <listitem><para>Make nested-loop joins be smarter about multicolumn indexes (Tom)</para></listitem>
- <listitem><para>Allow multikey hash joins (Tom)</para></listitem>
- <listitem><para>Improve constant folding (Tom)</para></listitem>
- <listitem><para>Add ability to inline simple SQL functions (Tom)</para></listitem>
-
- <listitem>
- <para>Reduce memory usage for queries using complex functions (Tom)</para>
- <para>
- In prior releases, functions returning allocated memory would
- not free it until the query completed. This release allows the
- freeing of function-allocated memory when the function call
- completes, reducing the total memory used by functions.
- </para>
- </listitem>
-
- <listitem>
- <para>Improve GEQO optimizer performance (Tom)</para>
- <para>
- This release fixes several inefficiencies in the way the GEQO optimizer
- manages potential query paths.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <literal>IN</literal>/<literal>NOT IN</literal> to be handled via hash
- tables (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <literal>NOT IN (<replaceable>subquery</replaceable>)</literal>
- performance (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow most <literal>IN</literal> subqueries to be processed as
- joins (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Pattern matching operations can use indexes regardless of
- locale (Peter)
- </para>
- <para>
- There is no way for non-ASCII locales to use the standard
- indexes for <literal>LIKE</literal> comparisons. This release
- adds a way to create a special index for
- <literal>LIKE</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow the postmaster to preload libraries using <varname>preload_libraries</varname> (Joe)</para>
- <para>
- For shared libraries that require a long time to load, this
- option is available so the library can be preloaded in the
- postmaster and inherited by all database sessions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve optimizer cost computations, particularly for subqueries (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid sort when subquery <literal>ORDER BY</literal> matches upper query (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Deduce that <literal>WHERE a.x = b.y AND b.y = 42</literal> also
- means <literal>a.x = 42</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow hash/merge joins on complex joins (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow hash joins for more data types (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow join optimization of explicit inner joins, disable with
- <varname>join_collapse_limit</varname> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add parameter <varname>from_collapse_limit</varname> to control
- conversion of subqueries to joins (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use faster and more powerful regular expression code from Tcl
- (Henry Spencer, Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use bit-mapped relation sets in the optimizer (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Improve connection startup time (Tom)</para>
- <para>
- The new client/server protocol requires fewer network packets to
- start a database session.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve trigger/constraint performance (Stephan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve speed of <literal>col IN (const, const, const, ...)</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix hash indexes which were broken in rare cases (Tom)
- </para>
- </listitem>
-
- <listitem><para>Improve hash index concurrency and speed (Tom)</para>
- <para>
- Prior releases suffered from poor hash index performance,
- particularly for high concurrency situations. This release fixes
- that, and the development group is interested in reports
- comparing B-tree and hash index performance.
- </para>
- </listitem>
-
- <listitem>
- <para>Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)</para>
- <para>
- Certain CPU's perform faster data copies when addresses are
- 32-byte aligned.
- </para>
- </listitem>
-
- <listitem>
- <para>Data type <type>numeric</type> reimplemented for better performance (Tom)</para>
- <para>
- <type>numeric</type> used to be stored in base 100. The new code
- uses base 10000, for significantly better performance.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Server Configuration Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>Rename server parameter <varname>server_min_messages</varname> to <varname>log_min_messages</varname> (Bruce)</para>
- <para>
- This was done so most parameters that control the server logs
- begin with <literal>log_</literal>.
- </para>
- </listitem>
-
- <listitem><para>Rename <varname>show_*_stats</varname> to <varname>log_*_stats</varname> (Bruce)</para></listitem>
- <listitem><para>Rename <varname>show_source_port</varname> to <varname>log_source_port</varname> (Bruce)</para></listitem>
- <listitem><para>Rename <varname>hostname_lookup</varname> to <varname>log_hostname</varname> (Bruce)</para></listitem>
-
- <listitem>
- <para>Add <varname>checkpoint_warning</varname> to warn of excessive checkpointing (Bruce)</para>
- <para>
- In prior releases, it was difficult to determine if checkpoint
- was happening too frequently. This feature adds a warning to the
- server logs when excessive checkpointing happens.
- </para>
- </listitem>
-
- <listitem><para>New read-only server parameters for localization (Tom)</para></listitem>
-
- <listitem>
- <para>
- Change debug server log messages to output as <literal>DEBUG</literal>
- rather than <literal>LOG</literal> (Bruce)
- </para>
- </listitem>
-
- <listitem>
- <para>Prevent server log variables from being turned off by non-superusers (Bruce)</para>
- <para>
- This is a security feature so non-superusers cannot disable
- logging that was enabled by the administrator.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <varname>log_min_messages</varname>/<varname>client_min_messages</varname> now
- controls <varname>debug_*</varname> output (Bruce)
- </para>
- <para>
- This centralizes client debug information so all debug output
- can be sent to either the client or server logs.
- </para>
- </listitem>
-
- <listitem>
- <para>Add macOS Rendezvous server support (Chris Campbell)</para>
- <para>
- This allows macOS hosts to query the network for available
- <productname>PostgreSQL</productname> servers.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add ability to print only slow statements using
- <varname>log_min_duration_statement</varname>
- (Christopher)
- </para>
- <para>
- This is an often requested debugging feature that allows
- administrators to see only slow queries in their server logs.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow <filename>pg_hba.conf</filename> to accept netmasks in CIDR format (Andrew Dunstan)</para>
- <para>
- This allows administrators to merge the host IP address and
- netmask fields into a single CIDR field in <filename>pg_hba.conf</filename>.
- </para>
- </listitem>
-
- <listitem><para>New read-only parameter <varname>is_superuser</varname> (Tom)</para></listitem>
-
- <listitem>
- <para>New parameter <varname>log_error_verbosity</varname> to control error detail (Tom)</para>
- <para>
- This works with the new error reporting feature to supply
- additional error information like hints, file names and line
- numbers.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>postgres --describe-config</literal> now dumps server config variables (Aizaz Ahmed, Peter)</para>
- <para>
- This option is useful for administration tools that need to know
- the configuration variable names and their minimums, maximums,
- defaults, and descriptions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add new columns in <literal>pg_settings</literal>:
- <literal>context</literal>, <literal>type</literal>, <literal>source</literal>,
- <literal>min_val</literal>, <literal>max_val</literal> (Joe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make default <varname>shared_buffers</varname> 1000 and
- <varname>max_connections</varname> 100, if possible (Tom)
- </para>
- <para>
- Prior versions defaulted to 64 shared buffers so <productname>PostgreSQL</productname>
- would start on even very old systems. This release tests the
- amount of shared memory allowed by the platform and selects more
- reasonable default values if possible. Of course, users are
- still encouraged to evaluate their resource load and size
- <varname>shared_buffers</varname> accordingly.
- </para>
- </listitem>
-
- <listitem>
- <para>
- New <filename>pg_hba.conf</filename> record type
- <literal>hostnossl</literal> to prevent SSL connections (Jon
- Jensen)
- </para>
- <para>
- In prior releases, there was no way to prevent SSL connections
- if both the client and server supported SSL. This option allows
- that capability.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove parameter <varname>geqo_random_seed</varname>
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add server parameter <varname>regex_flavor</varname> to control regular expression processing (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>pg_ctl</command> better handle nonstandard ports (Greg)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Query Changes</title>
-
- <itemizedlist>
- <listitem><para>New SQL-standard information schema (Peter)</para></listitem>
- <listitem><para>Add read-only transactions (Peter)</para></listitem>
- <listitem><para>Print key name and value in foreign-key violation messages (Dmitry Tkach)</para></listitem>
-
- <listitem>
- <para>Allow users to see their own queries in <literal>pg_stat_activity</literal> (Kevin Brown)</para>
- <para>
- In prior releases, only the superuser could see query strings
- using <literal>pg_stat_activity</literal>. Now ordinary users
- can see their own query strings.
- </para>
- </listitem>
-
- <listitem>
- <para>Fix aggregates in subqueries to match SQL standard (Tom)</para>
- <para>
- The SQL standard says that an aggregate function appearing
- within a nested subquery belongs to the outer query if its
- argument contains only outer-query variables. Prior
- <productname>PostgreSQL</productname> releases did not handle
- this fine point correctly.
- </para>
- </listitem>
-
- <listitem>
- <para>Add option to prevent auto-addition of tables referenced in query (Nigel J. Andrews)</para>
- <para>
- By default, tables mentioned in the query are automatically
- added to the <literal>FROM</literal> clause if they are not already
- there. This is compatible with historic
- <productname>POSTGRES</productname> behavior but is contrary to
- the SQL standard. This option allows selecting
- standard-compatible behavior.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow <literal>UPDATE ... SET col = DEFAULT</literal> (Rod)</para>
- <para>
- This allows <command>UPDATE</command> to set a column to its
- declared default value.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow expressions to be used in <literal>LIMIT</literal>/<literal>OFFSET</literal> (Tom)</para>
- <para>
- In prior releases, <literal>LIMIT</literal>/<literal>OFFSET</literal> could
- only use constants, not expressions.
- </para>
- </listitem>
-
- <listitem>
- <para>Implement <literal>CREATE TABLE AS EXECUTE</literal> (Neil, Peter)</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Object Manipulation Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>Make <command>CREATE SEQUENCE</command> grammar more conforming to SQL:2003 (Neil)</para>
- </listitem>
-
- <listitem>
- <para>Add statement-level triggers (Neil)</para>
- <para>
- While this allows a trigger to fire at the end of a statement,
- it does not allow the trigger to access all rows modified by the
- statement. This capability is planned for a future release.
- </para>
- </listitem>
-
- <listitem>
- <para>Add check constraints for domains (Rod)</para>
- <para>
- This greatly increases the usefulness of domains by allowing
- them to use check constraints.
- </para>
- </listitem>
-
- <listitem>
- <para>Add <command>ALTER DOMAIN</command> (Rod)</para>
- <para>
- This allows manipulation of existing domains.
- </para>
- </listitem>
-
- <listitem>
- <para>Fix several zero-column table bugs (Tom)</para>
- <para>
- <productname>PostgreSQL</productname> supports zero-column tables. This fixes various bugs
- that occur when using such tables.
- </para>
- </listitem>
-
- <listitem>
- <para>Have <literal>ALTER TABLE ... ADD PRIMARY KEY</literal> add not-null constraint (Rod)</para>
- <para>
- In prior releases, <literal>ALTER TABLE ... ADD
- PRIMARY</literal> would add a unique index, but not a not-null
- constraint. That is fixed in this release.
- </para>
- </listitem>
-
- <listitem><para>Add <literal>ALTER TABLE ... WITHOUT OIDS</literal> (Rod)</para>
- <para>
- This allows control over whether new and updated rows will have
- an OID column. This is most useful for saving storage space.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <literal>ALTER SEQUENCE</literal> to modify minimum, maximum,
- increment, cache, cycle values (Rod)
- </para>
- </listitem>
-
- <listitem>
- <para>Add <literal>ALTER TABLE ... CLUSTER ON</literal> (Alvaro Herrera)</para>
- <para>
- This command is used by <command>pg_dump</command> to record the
- cluster column for each table previously clustered. This
- information is used by database-wide cluster to cluster all
- previously clustered tables.
- </para>
- </listitem>
-
- <listitem><para>Improve automatic type casting for domains (Rod, Tom)</para></listitem>
- <listitem><para>Allow dollar signs in identifiers, except as first character (Tom)</para></listitem>
- <listitem><para>Disallow dollar signs in operator names, so <literal>x=$1</literal> works (Tom)</para></listitem>
-
- <listitem>
- <para>
- Allow copying table schema using <literal>LIKE
- <replaceable>subtable</replaceable></literal>, also SQL:2003
- feature <literal>INCLUDING DEFAULTS</literal> (Rod)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <literal>WITH GRANT OPTION</literal> clause to
- <command>GRANT</command> (Peter)
- </para>
- <para>
- This enabled <command>GRANT</command> to give other users the
- ability to grant privileges on an object.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Utility Command Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>Add <literal>ON COMMIT</literal> clause to <command>CREATE TABLE</command> for temporary tables (Gavin)</para>
- <para>
- This adds the ability for a table to be dropped or all rows
- deleted on transaction commit.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow cursors outside transactions using <literal>WITH HOLD</literal> (Neil)</para>
- <para>
- In previous releases, cursors were removed at the end of the
- transaction that created them. Cursors can now be created with
- the <literal>WITH HOLD</literal> option, which allows them to
- continue to be accessed after the creating transaction has
- committed.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>FETCH 0</literal> and <literal>MOVE 0 </literal> now do nothing (Bruce)</para>
- <para>
- In previous releases, <literal>FETCH 0</literal> fetched all
- remaining rows, and <literal>MOVE 0</literal> moved to the end
- of the cursor.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Cause <command>FETCH</command> and <command>MOVE</command> to
- return the number of rows fetched/moved, or zero if at the
- beginning/end of cursor, per SQL standard (Bruce)
- </para>
- <para>
- In prior releases, the row count returned by
- <command>FETCH</command> and <command>MOVE</command> did not
- accurately reflect the number of rows processed.
- </para>
- </listitem>
-
- <listitem>
- <para>Properly handle <literal>SCROLL</literal> with cursors, or
- report an error (Neil)</para>
- <para>
- Allowing random access (both forward and backward scrolling) to
- some kinds of queries cannot be done without some additional
- work. If <literal>SCROLL</literal> is specified when the cursor
- is created, this additional work will be performed. Furthermore,
- if the cursor has been created with <literal>NO SCROLL</literal>,
- no random access is allowed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Implement SQL-compatible options <literal>FIRST</literal>,
- <literal>LAST</literal>, <literal>ABSOLUTE <replaceable>n</replaceable></literal>,
- <literal>RELATIVE <replaceable>n</replaceable></literal> for
- <command>FETCH</command> and <command>MOVE</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Allow <command>EXPLAIN</command> on <command>DECLARE CURSOR</command> (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Allow <command>CLUSTER</command> to use index marked as pre-clustered by default (Alvaro Herrera)</para>
- </listitem>
-
- <listitem>
- <para>Allow <command>CLUSTER</command> to cluster all tables (Alvaro Herrera)</para>
- <para>
- This allows all previously clustered tables in a database to be
- reclustered with a single command.
- </para>
- </listitem>
-
- <listitem><para>Prevent <command>CLUSTER</command> on partial indexes (Tom)</para></listitem>
-
- <listitem><para>Allow DOS and Mac line-endings in <command>COPY</command> files (Bruce)</para></listitem>
-
- <listitem>
- <para>
- Disallow literal carriage return as a data value,
- backslash-carriage-return and <literal>\r</literal> are still allowed
- (Bruce)
- </para>
- </listitem>
-
- <listitem>
- <para><command>COPY</command> changes (binary, <literal>\.</literal>) (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Recover from <command>COPY</command> failure cleanly (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Prevent possible memory leaks in <command>COPY</command> (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Make <command>TRUNCATE</command> transaction-safe (Rod)</para>
- <para>
- <command>TRUNCATE</command> can now be used inside a
- transaction. If the transaction aborts, the changes made by the
- <command>TRUNCATE</command> are automatically rolled back.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow prepare/bind of utility commands like
- <command>FETCH</command> and <command>EXPLAIN</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Add <command>EXPLAIN EXECUTE</command> (Neil)</para>
- </listitem>
-
- <listitem>
- <para>Improve <command>VACUUM</command> performance on indexes by reducing WAL traffic (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Functional indexes have been generalized into indexes on expressions (Tom)</para>
- <para>
- In prior releases, functional indexes only supported a simple
- function applied to one or more column names. This release
- allows any type of scalar expression.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Have <command>SHOW TRANSACTION ISOLATION</command> match input
- to <command>SET TRANSACTION ISOLATION</command>
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Have <command>COMMENT ON DATABASE</command> on nonlocal
- database generate a warning, rather than an error (Rod)
- </para>
-
- <para>
- Database comments are stored in database-local tables so
- comments on a database have to be stored in each database.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve reliability of <command>LISTEN</command>/<command>NOTIFY</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Allow <command>REINDEX</command> to reliably reindex nonshared system catalog indexes (Tom)</para>
- <para>
- This allows system tables to be reindexed without the
- requirement of a standalone session, which was necessary in
- previous releases. The only tables that now require a standalone
- session for reindexing are the global system tables
- <literal>pg_database</literal>, <literal>pg_shadow</literal>, and
- <literal>pg_group</literal>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Data Type and Function Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>
- New server parameter <varname>extra_float_digits</varname> to
- control precision display of floating-point numbers (Pedro
- Ferreira, Tom)
- </para>
- <para>
- This controls output precision which was causing regression
- testing problems.
- </para>
- </listitem>
-
- <listitem><para>Allow <literal>+1300</literal> as a numeric time-zone specifier, for FJST (Tom)</para></listitem>
-
- <listitem>
- <para>
- Remove rarely used functions <function>oidrand</function>,
- <function>oidsrand</function>, and <function>userfntest</function> functions
- (Neil)
- </para>
- </listitem>
-
- <listitem>
- <para>Add <function>md5()</function> function to main server, already in <filename>contrib/pgcrypto</filename> (Joe)</para>
- <para>
- An MD5 function was frequently requested. For more complex
- encryption capabilities, use
- <filename>contrib/pgcrypto</filename>.
- </para>
- </listitem>
-
- <listitem><para>Increase date range of <type>timestamp</type> (John Cochran)</para></listitem>
-
- <listitem>
- <para>
- Change <literal>EXTRACT(EPOCH FROM timestamp)</literal> so
- <type>timestamp without time zone</type> is assumed to be in
- local time, not GMT (Tom)
- </para>
- </listitem>
-
- <listitem><para>Trap division by zero in case the operating system doesn't prevent it (Tom)</para></listitem>
- <listitem><para>Change the <type>numeric</type> data type internally to base 10000 (Tom)</para></listitem>
- <listitem><para>New <function>hostmask()</function> function (Greg Wickham)</para></listitem>
- <listitem><para>Fixes for <function>to_char()</function> and <function>to_timestamp()</function> (Karel)</para></listitem>
-
- <listitem>
- <para>
- Allow functions that can take any argument data type and return
- any data type, using <type>anyelement</type> and
- <type>anyarray</type> (Joe)
- </para>
- <para>
- This allows the creation of functions that can work with any
- data type.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Arrays can now be specified as <literal>ARRAY[1,2,3]</literal>,
- <literal>ARRAY[['a','b'],['c','d']]</literal>, or
- <literal>ARRAY[ARRAY[ARRAY[2]]]</literal> (Joe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow proper comparisons for arrays, including <literal>ORDER
- BY</literal> and <literal>DISTINCT</literal> support
- (Joe)
- </para>
- </listitem>
-
- <listitem><para>Allow indexes on array columns (Joe)</para></listitem>
- <listitem><para>Allow array concatenation with <literal>||</literal> (Joe)</para></listitem>
-
- <listitem>
- <para>
- Allow <literal>WHERE</literal> qualification
- <literal><replaceable>expr</replaceable> <replaceable>op</replaceable> ANY/SOME/ALL
- (<replaceable>array_expr</replaceable>)</literal> (Joe)
- </para>
- <para>
- This allows arrays to behave like a list of values, for purposes
- like <literal>SELECT * FROM tab WHERE col IN
- (array_val)</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- New array functions <function>array_append</function>,
- <function>array_cat</function>, <function>array_lower</function>,
- <function>array_prepend</function>, <function>array_to_string</function>,
- <function>array_upper</function>, <function>string_to_array</function> (Joe)
- </para>
- </listitem>
-
- <listitem><para>Allow user defined aggregates to use polymorphic functions (Joe)</para></listitem>
- <listitem><para>Allow assignments to empty arrays (Joe)</para></listitem>
-
- <listitem>
- <para>
- Allow 60 in seconds fields of <type>time</type>,
- <type>timestamp</type>, and <type>interval</type> input values
- (Tom)
- </para>
- <para>
- Sixty-second values are needed for leap seconds.
- </para>
- </listitem>
-
- <listitem><para>Allow <type>cidr</type> data type to be cast to <type>text</type> (Tom)</para></listitem>
-
- <listitem><para>Disallow invalid time zone names in SET TIMEZONE</para></listitem>
-
- <listitem>
- <para>
- Trim trailing spaces when <type>char</type> is cast to
- <type>varchar</type> or <type>text</type> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <type>float(<replaceable>p</replaceable>)</type> measure the precision
- <replaceable>p</replaceable> in binary digits, not decimal digits
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Add IPv6 support to the <type>inet</type> and <type>cidr</type> data types (Michael Graff)</para>
- </listitem>
-
- <listitem>
- <para>Add <function>family()</function> function to report whether address is IPv4 or IPv6 (Michael Graff)</para>
- </listitem>
-
- <listitem>
- <para>
- Have <literal>SHOW datestyle</literal> generate output similar
- to that used by <literal>SET datestyle</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <literal>EXTRACT(TIMEZONE)</literal> and <literal>SET/SHOW
- TIME ZONE</literal> follow the SQL convention for the sign of
- time zone offsets, i.e., positive is east from UTC (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Fix <literal>date_trunc('quarter', ...)</literal> (Böjthe Zoltán)</para>
- <para>
- Prior releases returned an incorrect value for this function call.
- </para>
- </listitem>
-
- <listitem>
- <para>Make <function>initcap()</function> more compatible with Oracle (Mike Nolan)</para>
- <para>
- <function>initcap()</function> now uppercases a letter appearing
- after any non-alphanumeric character, rather than only after
- whitespace.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow only <varname>datestyle</varname> field order for date values not in ISO-8601 format (Greg)</para>
- </listitem>
-
- <listitem>
- <para>
- Add new <varname>datestyle</varname> values <literal>MDY</literal>,
- <literal>DMY</literal>, and <literal>YMD</literal> to set input field order;
- honor <literal>US</literal> and <literal>European</literal> for backward
- compatibility (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- String literals like <literal>'now'</literal> or
- <literal>'today'</literal> will no longer work as a column
- default. Use functions such as <function>now()</function>,
- <function>current_timestamp</function> instead. (change
- required for prepared statements) (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>Treat NaN as larger than any other value in <function>min()</function>/<function>max()</function> (Tom)</para>
- <para>
- NaN was already sorted after ordinary numeric values for most
- purposes, but <function>min()</function> and <function>max()</function> didn't
- get this right.
- </para>
- </listitem>
-
- <listitem>
- <para>Prevent interval from suppressing <literal>:00</literal>
- seconds display</para>
- </listitem>
-
- <listitem>
- <para>
- New functions <function>pg_get_triggerdef(prettyprint)</function>
- and <function>pg_conversion_is_visible()</function> (Christopher)
- </para>
- </listitem>
-
- <listitem>
- <para>Allow time to be specified as <literal>040506</literal> or <literal>0405</literal> (Tom)</para>
- </listitem>
-
- <listitem>
- <para>
- Input date order must now be <literal>YYYY-MM-DD</literal> (with 4-digit year) or
- match <varname>datestyle</varname>
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <function>pg_get_constraintdef</function> support
- unique, primary-key, and check constraints (Christopher)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Server-Side Language Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>
- Prevent PL/pgSQL crash when <literal>RETURN NEXT</literal> is
- used on a zero-row record variable (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make PL/Python's <function>spi_execute</function> interface
- handle null values properly (Andrew Bosma)
- </para>
- </listitem>
-
- <listitem>
- <para>Allow PL/pgSQL to declare variables of composite types without <literal>%ROWTYPE</literal> (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Fix PL/Python's <function>_quote()</function> function to handle big integers</para>
- </listitem>
-
- <listitem>
- <para>Make PL/Python an untrusted language, now called <literal>plpythonu</literal> (Kevin Jacobs, Tom)</para>
- <para>
- The Python language no longer supports a restricted execution
- environment, so the trusted version of PL/Python was removed. If
- this situation changes, a version of PL/Python that can be used
- by non-superusers will be readded.
- </para>
- </listitem>
-
- <listitem>
- <para>Allow polymorphic PL/pgSQL functions (Joe, Tom)</para>
- </listitem>
-
- <listitem>
- <para>Allow polymorphic SQL functions (Joe)</para>
- </listitem>
-
- <listitem>
- <para>
- Improved compiled function caching mechanism in PL/pgSQL with
- full support for polymorphism (Joe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add new parameter <literal>$0</literal> in PL/pgSQL representing the
- function's actual return type (Joe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow PL/Tcl and PL/Python to use the same trigger on multiple tables (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fixed PL/Tcl's <function>spi_prepare</function> to accept fully
- qualified type names in the parameter type list
- (Jan)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>psql Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>Add <literal>\pset pager always</literal> to always use pager (Greg)</para>
- <para>
- This forces the pager to be used even if the number of rows is
- less than the screen height. This is valuable for rows that
- wrap across several screen rows.
- </para>
- </listitem>
-
- <listitem><para>Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)</para></listitem>
- <listitem><para>Reorder <literal>\?</literal> help into groupings (Harald Armin Massa, Bruce)</para></listitem>
- <listitem><para>Add backslash commands for listing schemas, casts, and conversions (Christopher)</para></listitem>
-
- <listitem>
- <para>
- <command>\encoding</command> now changes based on the server parameter
- <varname>client_encoding</varname> (Tom)
- </para>
- <para>
- In previous versions, <command>\encoding</command> was not aware
- of encoding changes made using <literal>SET
- client_encoding</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>Save editor buffer into readline history (Ross)</para>
- <para>
- When <command>\e</command> is used to edit a query, the result is saved
- in the readline history for retrieval using the up arrow.
- </para>
- </listitem>
-
- <listitem><para>Improve <command>\d</command> display (Christopher)</para></listitem>
- <listitem><para>Enhance HTML mode to be more standards-conforming (Greg)</para></listitem>
-
- <listitem>
- <para>New <command>\set AUTOCOMMIT off</command> capability (Tom)</para>
- <para>
- This takes the place of the removed server parameter <varname>autocommit</varname>.
- </para>
- </listitem>
-
- <listitem>
- <para>New <command>\set VERBOSITY</command> to control error detail (Tom)</para>
- <para>
- This controls the new error reporting details.
- </para>
- </listitem>
-
- <listitem><para>New prompt escape sequence <literal>%x</literal> to show transaction status (Tom)</para></listitem>
- <listitem><para>Long options for <application>psql</application> are now available on all platforms</para></listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>pg_dump Changes</title>
-
- <itemizedlist>
- <listitem><para>Multiple pg_dump fixes, including tar format and large objects</para></listitem>
- <listitem><para>Allow pg_dump to dump specific schemas (Neil)</para></listitem>
-
- <listitem>
- <para>Make pg_dump preserve column storage characteristics (Christopher)</para>
- <para>
- This preserves <literal>ALTER TABLE ... SET STORAGE</literal> information.
- </para>
- </listitem>
-
- <listitem><para>Make pg_dump preserve <command>CLUSTER</command> characteristics (Christopher)</para></listitem>
-
- <listitem>
- <para>
- Have pg_dumpall use <command>GRANT</command>/<command>REVOKE</command> to dump database-level privileges (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow pg_dumpall to support the options <option>-a</option>,
- <option>-s</option>, <option>-x</option> of pg_dump (Tom)
- </para>
- </listitem>
-
- <listitem><para>Prevent pg_dump from lowercasing identifiers specified on the command line (Tom)</para></listitem>
-
- <listitem>
- <para>
- pg_dump options <option>--use-set-session-authorization</option>
- and <option>--no-reconnect</option> now do nothing, all dumps
- use <command>SET SESSION AUTHORIZATION</command>
- </para>
- <para>
- pg_dump no longer reconnects to switch users, but instead always
- uses <command>SET SESSION AUTHORIZATION</command>. This will
- reduce password prompting during restores.
- </para>
- </listitem>
-
- <listitem>
- <para>Long options for <application>pg_dump</application> are now available on all platforms</para>
- <para>
- <productname>PostgreSQL</productname> now includes its own
- long-option processing routines.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>libpq Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>
- Add function <function>PQfreemem</function> for freeing memory on
- Windows, suggested for <command>NOTIFY</command> (Bruce)
- </para>
- <para>
- Windows requires that memory allocated in a library be freed by
- a function in the same library, hence
- <function>free()</function> doesn't work for freeing memory
- allocated by libpq. <function>PQfreemem</function> is the proper
- way to free libpq memory, especially on Windows, and is
- recommended for other platforms as well.
- </para>
- </listitem>
-
- <listitem>
- <para>Document service capability, and add sample file (Bruce)</para>
- <para>
- This allows clients to look up connection information in a
- central file on the client machine.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <function>PQsetdbLogin</function> have the same defaults as
- <function>PQconnectdb</function> (Tom)
- </para>
- </listitem>
-
- <listitem><para>Allow libpq to cleanly fail when result sets are too large (Tom)</para></listitem>
-
- <listitem>
- <para>
- Improve performance of function <function>PQunescapeBytea</function> (Ben Lamb)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow thread-safe libpq with <filename>configure</filename>
- option <option>--enable-thread-safety</option> (Lee Kindness,
- Philip Yarra)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow function <function>pqInternalNotice</function> to accept a
- format string and arguments instead of just a preformatted
- message (Tom, Sean Chittenden)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Control SSL negotiation with <literal>sslmode</literal> values
- <literal>disable</literal>, <literal>allow</literal>,
- <literal>prefer</literal>, and <literal>require</literal> (Jon
- Jensen)
- </para>
- </listitem>
-
- <listitem>
- <para>Allow new error codes and levels of text (Tom)</para>
- </listitem>
-
- <listitem>
- <para>Allow access to the underlying table and column of a query result (Tom)</para>
- <para>
- This is helpful for query-builder applications that want to know
- the underlying table and column names associated with a specific
- result set.
- </para>
- </listitem>
-
- <listitem><para>Allow access to the current transaction status (Tom)</para></listitem>
- <listitem><para>Add ability to pass binary data directly to the server (Tom)</para></listitem>
-
- <listitem>
- <para>
- Add function <function>PQexecPrepared</function> and
- <function>PQsendQueryPrepared</function> functions which perform
- bind/execute of previously prepared statements (Tom)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>JDBC Changes</title>
-
- <itemizedlist>
- <listitem><para>Allow <function>setNull</function> on updateable result sets</para></listitem>
- <listitem><para>Allow <function>executeBatch</function> on a prepared statement (Barry)</para></listitem>
- <listitem><para>Support SSL connections (Barry)</para></listitem>
- <listitem><para>Handle schema names in result sets (Paul Sorenson)</para></listitem>
- <listitem><para>Add refcursor support (Nic Ferrier)</para></listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Miscellaneous Interface Changes</title>
-
- <itemizedlist>
- <listitem>
- <para>Prevent possible memory leak or core dump during libpgtcl shutdown (Tom)</para>
- </listitem>
- <listitem>
- <para>Add Informix compatibility to ECPG (Michael)</para>
- <para>
- This allows ECPG to process embedded C programs that were
- written using certain Informix extensions.
- </para>
- </listitem>
-
- <listitem>
- <para>Add type <type>decimal</type> to ECPG that is fixed length, for Informix (Michael)</para>
- </listitem>
-
- <listitem>
- <para>
- Allow thread-safe embedded SQL programs with
- <filename>configure</filename> option
- <option>--enable-thread-safety</option> (Lee Kindness, Bruce)
- </para>
- <para>
- This allows multiple threads to access the database at the same
- time.
- </para>
- </listitem>
-
- <listitem>
- <para>Moved Python client PyGreSQL to <ulink url="http://www.pygresql.org"></ulink> (Marc)</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Source Code Changes</title>
-
- <itemizedlist>
- <listitem><para>Prevent need for separate platform geometry regression result files (Tom)</para></listitem>
- <listitem><para>Improved PPC locking primitive (Reinhard Max)</para></listitem>
- <listitem><para>New function <function>palloc0</function> to allocate and clear memory (Bruce)</para></listitem>
- <listitem><para>Fix locking code for s390x CPU (64-bit) (Tom)</para></listitem>
- <listitem><para>Allow OpenBSD to use local ident credentials (William Ahern)</para></listitem>
- <listitem><para>Make query plan trees read-only to executor (Tom)</para></listitem>
- <listitem><para>Add macOS startup scripts (David Wheeler)</para></listitem>
- <listitem><para>Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek)</para></listitem>
- <listitem><para>Use our own version of <function>getopt_long()</function> if needed (Peter)</para></listitem>
- <listitem><para>Convert administration scripts to C (Peter)</para></listitem>
- <listitem><para> Bison >= 1.85 is now required to build the <productname>PostgreSQL</productname> grammar, if building from CVS</para></listitem>
- <listitem><para>Merge documentation into one book (Peter)</para></listitem>
- <listitem><para>Add Windows compatibility functions (Bruce)</para></listitem>
- <listitem><para>Allow client interfaces to compile under MinGW (Bruce)</para></listitem>
- <listitem><para>New <function>ereport()</function> function for error reporting (Tom)</para></listitem>
- <listitem><para>Support Intel compiler on Linux (Peter)</para></listitem>
- <listitem><para>Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)</para></listitem>
- <listitem><para>Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)</para></listitem>
- <listitem>
- <para>Remove <option>--enable-recode</option> option from <command>configure</command></para>
- <para>
- This was no longer needed now that we have <command>CREATE CONVERSION</command>.
- </para>
- </listitem>
- <listitem>
- <para>Generate a compile error if spinlock code is not found (Bruce)</para>
- <para>
- Platforms without spinlock code will now fail to compile, rather
- than silently using semaphores. This failure can be disabled
- with a new <command>configure</command> option.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Contrib Changes</title>
-
- <itemizedlist>
- <listitem><para>Change dbmirror license to BSD</para></listitem>
- <listitem><para>Improve earthdistance (Bruno Wolff III)</para></listitem>
- <listitem><para>Portability improvements to pgcrypto (Marko Kreen)</para></listitem>
- <listitem><para>Prevent crash in xml (John Gray, Michael Richards)</para></listitem>
- <listitem><para>Update oracle</para></listitem>
- <listitem><para>Update mysql</para></listitem>
- <listitem><para>Update cube (Bruno Wolff III)</para></listitem>
- <listitem><para>Update earthdistance to use cube (Bruno Wolff III)</para></listitem>
- <listitem><para>Update btree_gist (Oleg)</para></listitem>
- <listitem><para>New tsearch2 full-text search module (Oleg, Teodor)</para></listitem>
- <listitem><para>Add hash-based crosstab function to tablefuncs (Joe)</para></listitem>
- <listitem><para>Add serial column to order <function>connectby()</function> siblings in tablefuncs (Nabil Sayegh,Joe)</para></listitem>
- <listitem><para>Add named persistent connections to dblink (Shridhar Daithanka)</para></listitem>
- <listitem><para>New pg_autovacuum allows automatic <command>VACUUM</command> (Matthew T. O'Connor)</para></listitem>
- <listitem><para>Make pgbench honor environment variables <envar>PGHOST</envar>, <envar>PGPORT</envar>, <envar>PGUSER</envar> (Tatsuo)</para></listitem>
- <listitem><para>Improve intarray (Teodor Sigaev)</para></listitem>
- <listitem><para>Improve pgstattuple (Rod)</para></listitem>
- <listitem><para>Fix bug in <function>metaphone()</function> in fuzzystrmatch</para></listitem>
- <listitem><para>Improve adddepend (Rod)</para></listitem>
- <listitem><para>Update spi/timetravel (Böjthe Zoltán)</para></listitem>
- <listitem><para>Fix dbase <option>-s</option> option and improve non-ASCII handling (Thomas Behr, Márcio Smiderle)</para></listitem>
- <listitem><para>Remove array module because features now included by default (Joe)</para></listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-</sect1>
+++ /dev/null
-<!-- doc/src/sgml/release-8.0.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-8-0-26">
- <title>Release 8.0.26</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2010-10-04</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.25.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <para>
- This is expected to be the last <productname>PostgreSQL</productname> release
- in the 8.0.X series. Users are encouraged to update to a newer
- release branch soon.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.26</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.22,
- see <xref linkend="release-8-0-22"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Use a separate interpreter for each calling SQL userid in PL/Perl and
- PL/Tcl (Tom Lane)
- </para>
-
- <para>
- This change prevents security problems that can be caused by subverting
- Perl or Tcl code that will be executed later in the same session under
- another SQL user identity (for example, within a <literal>SECURITY
- DEFINER</literal> function). Most scripting languages offer numerous ways that
- that might be done, such as redefining standard functions or operators
- called by the target function. Without this change, any SQL user with
- Perl or Tcl language usage rights can do essentially anything with the
- SQL privileges of the target function's owner.
- </para>
-
- <para>
- The cost of this change is that intentional communication among Perl
- and Tcl functions becomes more difficult. To provide an escape hatch,
- PL/PerlU and PL/TclU functions continue to use only one interpreter
- per session. This is not considered a security issue since all such
- functions execute at the trust level of a database superuser already.
- </para>
-
- <para>
- It is likely that third-party procedural languages that claim to offer
- trusted execution have similar security issues. We advise contacting
- the authors of any PL you are depending on for security-critical
- purposes.
- </para>
-
- <para>
- Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent possible crashes in <function>pg_get_expr()</function> by disallowing
- it from being called with an argument that is not one of the system
- catalog columns it's intended to be used with
- (Heikki Linnakangas, Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
- </para>
-
- <para>
- This occurred when a sub-select contains a join alias reference that
- expands into an expression containing another sub-select.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Defend against functions returning setof record where not all the
- returned rows are actually of the same rowtype (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Take care to fsync the contents of lockfiles (both
- <filename>postmaster.pid</filename> and the socket lockfile) while writing them
- (Tom Lane)
- </para>
-
- <para>
- This omission could result in corrupted lockfile contents if the
- machine crashes shortly after postmaster start. That could in turn
- prevent subsequent attempts to start the postmaster from succeeding,
- until the lockfile is manually removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid recursion while assigning XIDs to heavily-nested
- subtransactions (Andres Freund, Robert Haas)
- </para>
-
- <para>
- The original coding could result in a crash if there was limited
- stack space.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <varname>log_line_prefix</varname>'s <literal>%i</literal> escape,
- which could produce junk early in backend startup (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible data corruption in <command>ALTER TABLE ... SET
- TABLESPACE</command> when archiving is enabled (Jeff Davis)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Allow <command>CREATE DATABASE</command> and <command>ALTER DATABASE ... SET
- TABLESPACE</command> to be interrupted by query-cancel (Guillaume Lelarge)
- </para>
- </listitem>
-
- <listitem>
- <para>
- In PL/Python, defend against null pointer results from
- <function>PyCObject_AsVoidPtr</function> and <function>PyCObject_FromVoidPtr</function>
- (Peter Eisentraut)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <filename>contrib/dblink</filename>'s handling of tables containing
- dropped columns (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix connection leak after <quote>duplicate connection name</quote>
- errors in <filename>contrib/dblink</filename> (Itagaki Takahiro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/dblink</filename> to handle connection names longer than
- 62 bytes correctly (Itagaki Takahiro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update build infrastructure and documentation to reflect the source code
- repository's move from CVS to Git (Magnus Hagander and others)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2010l
- for DST law changes in Egypt and Palestine; also historical corrections
- for Finland.
- </para>
-
- <para>
- This change also adds new names for two Micronesian timezones:
- Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
- abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
- Pacific/Ponape.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-25">
- <title>Release 8.0.25</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2010-05-17</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.24.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <para>
- The <productname>PostgreSQL</productname> community will stop releasing updates
- for the 8.0.X release series in July 2010.
- Users are encouraged to update to a newer release branch soon.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.25</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.22,
- see <xref linkend="release-8-0-22"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Enforce restrictions in <literal>plperl</literal> using an opmask applied to
- the whole interpreter, instead of using <filename>Safe.pm</filename>
- (Tim Bunce, Andrew Dunstan)
- </para>
-
- <para>
- Recent developments have convinced us that <filename>Safe.pm</filename> is too
- insecure to rely on for making <literal>plperl</literal> trustable. This
- change removes use of <filename>Safe.pm</filename> altogether, in favor of using
- a separate interpreter with an opcode mask that is always applied.
- Pleasant side effects of the change include that it is now possible to
- use Perl's <literal>strict</literal> pragma in a natural way in
- <literal>plperl</literal>, and that Perl's <literal>$a</literal> and <literal>$b</literal>
- variables work as expected in sort routines, and that function
- compilation is significantly faster. (CVE-2010-1169)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent PL/Tcl from executing untrustworthy code from
- <structname>pltcl_modules</structname> (Tom)
- </para>
-
- <para>
- PL/Tcl's feature for autoloading Tcl code from a database table
- could be exploited for trojan-horse attacks, because there was no
- restriction on who could create or insert into that table. This change
- disables the feature unless <structname>pltcl_modules</structname> is owned by a
- superuser. (However, the permissions on the table are not checked, so
- installations that really need a less-than-secure modules table can
- still grant suitable privileges to trusted non-superusers.) Also,
- prevent loading code into the unrestricted <quote>normal</quote> Tcl
- interpreter unless we are really going to execute a <literal>pltclu</literal>
- function. (CVE-2010-1170)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Do not allow an unprivileged user to reset superuser-only parameter
- settings (Alvaro)
- </para>
-
- <para>
- Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
- ALL</literal> for himself, or <literal>ALTER DATABASE ... RESET ALL</literal> for
- a database he owns, this would remove all special parameter settings
- for the user or database, even ones that are only supposed to be
- changeable by a superuser. Now, the <command>ALTER</command> will only
- remove the parameters that the user has permission to change.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid possible crash during backend shutdown if shutdown occurs
- when a <literal>CONTEXT</literal> addition would be made to log entries (Tom)
- </para>
-
- <para>
- In some cases the context-printing function would fail because the
- current transaction had already been rolled back when it came time
- to print a log message.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update PL/Perl's <filename>ppport.h</filename> for modern Perl versions
- (Andrew)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix assorted memory leaks in PL/Python (Andreas Freund, Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent infinite recursion in <application>psql</application> when expanding
- a variable that refers to itself (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure that <filename>contrib/pgstattuple</filename> functions respond to cancel
- interrupts promptly (Tatsuhito Kasahara)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make server startup deal properly with the case that
- <function>shmget()</function> returns <literal>EINVAL</literal> for an existing
- shared memory segment (Tom)
- </para>
-
- <para>
- This behavior has been observed on BSD-derived kernels including macOS.
- It resulted in an entirely-misleading startup failure complaining that
- the shared memory request size was too large.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2010j
- for DST law changes in Argentina, Australian Antarctic, Bangladesh,
- Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
- also historical corrections for Taiwan.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-24">
- <title>Release 8.0.24</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2010-03-15</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.23.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <para>
- The <productname>PostgreSQL</productname> community will stop releasing updates
- for the 8.0.X release series in July 2010.
- Users are encouraged to update to a newer release branch soon.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.24</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.22,
- see <xref linkend="release-8-0-22"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Add new configuration parameter <varname>ssl_renegotiation_limit</varname> to
- control how often we do session key renegotiation for an SSL connection
- (Magnus)
- </para>
-
- <para>
- This can be set to zero to disable renegotiation completely, which may
- be required if a broken SSL library is used. In particular, some
- vendors are shipping stopgap patches for CVE-2009-3555 that cause
- renegotiation attempts to fail.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible crashes when trying to recover from a failure in
- subtransaction start (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix server memory leak associated with use of savepoints and a client
- encoding different from server's encoding (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <function>substring()</function> for <type>bit</type> types treat any negative
- length as meaning <quote>all the rest of the string</quote> (Tom)
- </para>
-
- <para>
- The previous coding treated only -1 that way, and would produce an
- invalid result value for other negative values, possibly leading to
- a crash (CVE-2010-0442).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix integer-to-bit-string conversions to handle the first fractional
- byte correctly when the output bit width is wider than the given
- integer by something other than a multiple of 8 bits (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix some cases of pathologically slow regular expression matching (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix the <literal>STOP WAL LOCATION</literal> entry in backup history files to
- report the next WAL segment's name when the end location is exactly at a
- segment boundary (Itagaki Takahiro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- When reading <filename>pg_hba.conf</filename> and related files, do not treat
- <literal>@something</literal> as a file inclusion request if the <literal>@</literal>
- appears inside quote marks; also, never treat <literal>@</literal> by itself
- as a file inclusion request (Tom)
- </para>
-
- <para>
- This prevents erratic behavior if a role or database name starts with
- <literal>@</literal>. If you need to include a file whose path name
- contains spaces, you can still do so, but you must write
- <literal>@"/path to/file"</literal> rather than putting the quotes around
- the whole construct.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent infinite loop on some platforms if a directory is named as
- an inclusion target in <filename>pg_hba.conf</filename> and related files
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix plpgsql failure in one case where a composite column is set to NULL
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <literal>volatile</literal> markings in PL/Python to avoid possible
- compiler-specific misbehavior (Zdenek Kotala)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
- </para>
-
- <para>
- The only known symptom of this oversight is that the Tcl
- <literal>clock</literal> command misbehaves if using Tcl 8.5 or later.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent crash in <filename>contrib/dblink</filename> when too many key
- columns are specified to a <function>dblink_build_sql_*</function> function
- (Rushabh Lathia, Joe Conway)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix assorted crashes in <filename>contrib/xml2</filename> caused by sloppy
- memory management (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2010e
- for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-23">
- <title>Release 8.0.23</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-12-14</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.22.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.23</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.22,
- see <xref linkend="release-8-0-22"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Protect against indirect security threats caused by index functions
- changing session-local state (Gurjeet Singh, Tom)
- </para>
-
- <para>
- This change prevents allegedly-immutable index functions from possibly
- subverting a superuser's session (CVE-2009-4136).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Reject SSL certificates containing an embedded null byte in the common
- name (CN) field (Magnus)
- </para>
-
- <para>
- This prevents unintended matching of a certificate to a server or client
- name during SSL validation (CVE-2009-4034).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible crash during backend-startup-time cache initialization (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent signals from interrupting <literal>VACUUM</literal> at unsafe times
- (Alvaro)
- </para>
-
- <para>
- This fix prevents a PANIC if a <literal>VACUUM FULL</literal> is canceled
- after it's already committed its tuple movements, as well as transient
- errors if a plain <literal>VACUUM</literal> is interrupted after having
- truncated the table.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible crash due to integer overflow in hash table size
- calculation (Tom)
- </para>
-
- <para>
- This could occur with extremely large planner estimates for the size of
- a hashjoin's result.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix very rare crash in <type>inet</type>/<type>cidr</type> comparisons (Chris
- Mikkelson)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix premature drop of temporary files used for a cursor that is accessed
- within a subtransaction (Heikki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PAM password processing to be more robust (Tom)
- </para>
-
- <para>
- The previous code is known to fail with the combination of the Linux
- <literal>pam_krb5</literal> PAM module with Microsoft Active Directory as the
- domain controller. It might have problems elsewhere too, since it was
- making unjustified assumptions about what arguments the PAM stack would
- pass to it.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix rare crash in exception processing in PL/Python (Peter)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure <application>psql</application>'s flex module is compiled with the correct
- system header definitions (Tom)
- </para>
-
- <para>
- This fixes build failures on platforms where
- <literal>--enable-largefile</literal> causes incompatible changes in the
- generated code.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make the postmaster ignore any <literal>application_name</literal> parameter in
- connection request packets, to improve compatibility with future libpq
- versions (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2009s
- for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
- Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
- corrections for Hong Kong.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-22">
- <title>Release 8.0.22</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-09-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.21.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.22</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you have any hash indexes on <type>interval</type> columns,
- you must <command>REINDEX</command> them after updating to 8.0.22.
- Also, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Disallow <command>RESET ROLE</command> and <command>RESET SESSION
- AUTHORIZATION</command> inside security-definer functions (Tom, Heikki)
- </para>
-
- <para>
- This covers a case that was missed in the previous patch that
- disallowed <command>SET ROLE</command> and <command>SET SESSION
- AUTHORIZATION</command> inside security-definer functions.
- (See CVE-2007-6600)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix handling of sub-SELECTs appearing in the arguments of
- an outer-level aggregate function (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix hash calculation for data type <type>interval</type> (Tom)
- </para>
-
- <para>
- This corrects wrong results for hash joins on interval values.
- It also changes the contents of hash indexes on interval columns.
- If you have any such indexes, you must <command>REINDEX</command> them
- after updating.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Treat <function>to_char(..., 'TH')</function> as an uppercase ordinal
- suffix with <literal>'HH'</literal>/<literal>'HH12'</literal> (Heikki)
- </para>
-
- <para>
- It was previously handled as <literal>'th'</literal> (lowercase).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix overflow for <literal>INTERVAL '<replaceable>x</replaceable> ms'</literal>
- when <replaceable>x</replaceable> is more than 2 million and integer
- datetimes are in use (Alex Hunsaker)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix calculation of distance between a point and a line segment (Tom)
- </para>
-
- <para>
- This led to incorrect results from a number of geometric operators.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <type>money</type> data type to work in locales where currency
- amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Properly round datetime input like
- <literal>00:12:57.9999999999999999999999999999</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix poor choice of page split point in GiST R-tree operator classes
- (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix portability issues in plperl initialization (Andrew Dunstan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_ctl</application> to not go into an infinite loop if
- <filename>postgresql.conf</filename> is empty (Jeff Davis)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/xml2</filename>'s <function>xslt_process()</function> to
- properly handle the maximum number of parameters (twenty) (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve robustness of <application>libpq</application>'s code to recover
- from errors during <command>COPY FROM STDIN</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid including conflicting readline and editline header files
- when both libraries are installed (Zdenek Kotala)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2009l
- for DST law changes in Bangladesh, Egypt, Jordan, Pakistan,
- Argentina/San_Luis, Cuba, Jordan (historical correction only),
- Mauritius, Morocco, Palestine, Syria, Tunisia.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-21">
- <title>Release 8.0.21</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-03-16</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.20.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.21</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Prevent error recursion crashes when encoding conversion fails (Tom)
- </para>
-
- <para>
- This change extends fixes made in the last two minor releases for
- related failure scenarios. The previous fixes were narrowly tailored
- for the original problem reports, but we have now recognized that
- <emphasis>any</emphasis> error thrown by an encoding conversion function could
- potentially lead to infinite recursion while trying to report the
- error. The solution therefore is to disable translation and encoding
- conversion and report the plain-ASCII form of any error message,
- if we find we have gotten into a recursive error reporting situation.
- (CVE-2009-0922)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Disallow <command>CREATE CONVERSION</command> with the wrong encodings
- for the specified conversion function (Heikki)
- </para>
-
- <para>
- This prevents one possible scenario for encoding conversion failure.
- The previous change is a backstop to guard against other kinds of
- failures in the same area.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix core dump when <function>to_char()</function> is given format codes that
- are inappropriate for the type of the data argument (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add <literal>MUST</literal> (Mauritius Island Summer Time) to the default list
- of known timezone abbreviations (Xavier Bugaud)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-20">
- <title>Release 8.0.20</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2009-02-02</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.19.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.20</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Improve handling of URLs in <function>headline()</function> function (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve handling of overlength headlines in <function>headline()</function>
- function (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent possible Assert failure or misconversion if an encoding
- conversion is created with the wrong conversion function for the
- specified pair of encodings (Tom, Heikki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Avoid unnecessary locking of small tables in <command>VACUUM</command>
- (Heikki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix uninitialized variables in <filename>contrib/tsearch2</filename>'s
- <function>get_covers()</function> function (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make all documentation reference <literal>pgsql-bugs</literal> and/or
- <literal>pgsql-hackers</literal> as appropriate, instead of the
- now-decommissioned <literal>pgsql-ports</literal> and <literal>pgsql-patches</literal>
- mailing lists (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2009a (for
- Kathmandu and historical DST corrections in Switzerland, Cuba)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-19">
- <title>Release 8.0.19</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-11-03</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.18.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.19</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix backend crash when the client encoding cannot represent a localized
- error message (Tom)
- </para>
-
- <para>
- We have addressed similar issues before, but it would still fail if
- the <quote>character has no equivalent</quote> message itself couldn't
- be converted. The fix is to disable localization and send the plain
- ASCII error message when we detect such a situation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible crash when deeply nested functions are invoked from
- a trigger (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure an error is reported when a newly-defined PL/pgSQL trigger
- function is invoked as a normal function (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect tsearch2 headline generation when single query
- item matches first word of text (Sushant Sinha)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix improper display of fractional seconds in interval values when
- using a non-ISO datestyle in an <option>--enable-integer-datetimes</option>
- build (Ron Mayer)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Ensure <function>SPI_getvalue</function> and <function>SPI_getbinval</function>
- behave correctly when the passed tuple and tuple descriptor have
- different numbers of columns (Tom)
- </para>
-
- <para>
- This situation is normal when a table has had columns added or removed,
- but these two functions didn't handle it properly.
- The only likely consequence is an incorrect error indication.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>ecpg</application>'s parsing of <command>CREATE USER</command> (Michael)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix recent breakage of <literal>pg_ctl restart</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2008i (for
- DST law changes in Argentina, Brazil, Mauritius, Syria)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-18">
- <title>Release 8.0.18</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-09-22</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.17.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.18</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Widen local lock counters from 32 to 64 bits (Tom)
- </para>
-
- <para>
- This responds to reports that the counters could overflow in
- sufficiently long transactions, leading to unexpected <quote>lock is
- already held</quote> errors.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Add checks in executor startup to ensure that the tuples produced by an
- <command>INSERT</command> or <command>UPDATE</command> will match the target table's
- current rowtype (Tom)
- </para>
-
- <para>
- <command>ALTER COLUMN TYPE</command>, followed by re-use of a previously
- cached plan, could produce this type of situation. The check protects
- against data corruption and/or crashes that could ensue.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix datetime input functions to correctly detect integer overflow when
- running on a 64-bit platform (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve performance of writing very long log messages to syslog (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
- ON</literal> query (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix planner to estimate that <literal>GROUP BY</literal> expressions yielding
- boolean results always result in two groups, regardless of the
- expressions' contents (Tom)
- </para>
-
- <para>
- This is very substantially more accurate than the regular <literal>GROUP
- BY</literal> estimate for certain boolean tests like <replaceable>col</replaceable>
- <literal>IS NULL</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
- about the encoding of data sent to or from Tcl (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PL/Python to work with Python 2.5
- </para>
-
- <para>
- This is a back-port of fixes made during the 8.2 development cycle.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve <application>pg_dump</application> and <application>pg_restore</application>'s
- error reporting after failure to send a SQL command (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_ctl</application> to properly preserve postmaster
- command-line arguments across a <literal>restart</literal> (Bruce)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2008f (for
- DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
- Pakistan, Palestine, and Paraguay)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-17">
- <title>Release 8.0.17</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-06-12</para>
- </formalpara>
-
- <para>
- This release contains one serious bug fix over 8.0.16.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.17</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Make <function>pg_get_ruledef()</function> parenthesize negative constants (Tom)
- </para>
-
- <para>
- Before this fix, a negative constant in a view or rule might be dumped
- as, say, <literal>-42::integer</literal>, which is subtly incorrect: it should
- be <literal>(-42)::integer</literal> due to operator precedence rules.
- Usually this would make little difference, but it could interact with
- another recent patch to cause
- <productname>PostgreSQL</productname> to reject what had been a valid
- <command>SELECT DISTINCT</command> view query. Since this could result in
- <application>pg_dump</application> output failing to reload, it is being treated
- as a high-priority fix. The only released versions in which dump
- output is actually incorrect are 8.3.1 and 8.2.7.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-16">
- <title>Release 8.0.16</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>never released</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.15.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.16</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X.
- However, if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</command> so that the new
- column is correctly checked to see if it's been initialized to all
- non-nulls (Brendan Jurd)
- </para>
-
- <para>
- Previous versions neglected to check this requirement at all.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible <command>CREATE TABLE</command> failure when inheriting the
- <quote>same</quote> constraint from multiple parent relations that
- inherited that constraint from a common ancestor (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix conversions between ISO-8859-5 and other encodings to handle
- Cyrillic <quote>Yo</quote> characters (<literal>e</literal> and <literal>E</literal> with
- two dots) (Sergey Burladyan)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix a few datatype input functions
- that were allowing unused bytes in their results to contain
- uninitialized, unpredictable values (Tom)
- </para>
-
- <para>
- This could lead to failures in which two apparently identical literal
- values were not seen as equal, resulting in the parser complaining
- about unmatched <literal>ORDER BY</literal> and <literal>DISTINCT</literal>
- expressions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix a corner case in regular-expression substring matching
- (<literal>substring(<replaceable>string</replaceable> from
- <replaceable>pattern</replaceable>)</literal>) (Tom)
- </para>
-
- <para>
- The problem occurs when there is a match to the pattern overall but
- the user has specified a parenthesized subexpression and that
- subexpression hasn't got a match. An example is
- <literal>substring('foo' from 'foo(bar)?')</literal>.
- This should return NULL, since <literal>(bar)</literal> isn't matched, but
- it was mistakenly returning the whole-pattern match instead (ie,
- <literal>foo</literal>).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2008c (for
- DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
- Argentina/San_Luis, and Chile)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect result from <application>ecpg</application>'s
- <function>PGTYPEStimestamp_sub()</function> function (Michael)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix core dump in <filename>contrib/xml2</filename>'s
- <function>xpath_table()</function> function when the input query returns a
- NULL value (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <filename>contrib/xml2</filename>'s makefile to not override
- <literal>CFLAGS</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <literal>DatumGetBool</literal> macro to not fail with <application>gcc</application>
- 4.3 (Tom)
- </para>
-
- <para>
- This problem affects <quote>old style</quote> (V0) C functions that
- return boolean. The fix is already in 8.3, but the need to
- back-patch it was not realized at the time.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix longstanding <command>LISTEN</command>/<command>NOTIFY</command>
- race condition (Tom)
- </para>
-
- <para>
- In rare cases a session that had just executed a
- <command>LISTEN</command> might not get a notification, even though
- one would be expected because the concurrent transaction executing
- <command>NOTIFY</command> was observed to commit later.
- </para>
-
- <para>
- A side effect of the fix is that a transaction that has executed
- a not-yet-committed <command>LISTEN</command> command will not see any
- row in <structname>pg_listener</structname> for the <command>LISTEN</command>,
- should it choose to look; formerly it would have. This behavior
- was never documented one way or the other, but it is possible that
- some applications depend on the old behavior.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix rare crash when an error occurs during a query using a hash index
- (Heikki)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix input of datetime values for February 29 in years BC (Tom)
- </para>
-
- <para>
- The former coding was mistaken about which years were leap years.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>unrecognized node type</quote> error in some variants of
- <command>ALTER OWNER</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_ctl</application> to correctly extract the postmaster's port
- number from command-line options (Itagaki Takahiro, Tom)
- </para>
-
- <para>
- Previously, <literal>pg_ctl start -w</literal> could try to contact the
- postmaster on the wrong port, leading to bogus reports of startup
- failure.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Use <option>-fwrapv</option> to defend against possible misoptimization
- in recent <application>gcc</application> versions (Tom)
- </para>
-
- <para>
- This is known to be necessary when building <productname>PostgreSQL</productname>
- with <application>gcc</application> 4.3 or later.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix display of constant expressions in <literal>ORDER BY</literal>
- and <literal>GROUP BY</literal> (Tom)
- </para>
-
- <para>
- An explicitly casted constant would be shown incorrectly. This could
- for example lead to corruption of a view definition during
- dump and reload.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>libpq</application> to handle NOTICE messages correctly
- during COPY OUT (Tom)
- </para>
-
- <para>
- This failure has only been observed to occur when a user-defined
- datatype's output routine issues a NOTICE, but there is no
- guarantee it couldn't happen due to other causes.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-15">
- <title>Release 8.0.15</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2008-01-07</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.14,
- including fixes for significant security issues.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <para>
- This is the last 8.0.X release for which the <productname>PostgreSQL</productname>
- community will produce binary packages for <productname>Windows</productname>.
- Windows users are encouraged to move to 8.2.X or later,
- since there are Windows-specific fixes in 8.2.X that
- are impractical to back-port. 8.0.X will continue to
- be supported on other platforms.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.15</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Prevent functions in indexes from executing with the privileges of
- the user running <command>VACUUM</command>, <command>ANALYZE</command>, etc (Tom)
- </para>
-
- <para>
- Functions used in index expressions and partial-index
- predicates are evaluated whenever a new table entry is made. It has
- long been understood that this poses a risk of trojan-horse code
- execution if one modifies a table owned by an untrustworthy user.
- (Note that triggers, defaults, check constraints, etc. pose the
- same type of risk.) But functions in indexes pose extra danger
- because they will be executed by routine maintenance operations
- such as <command>VACUUM FULL</command>, which are commonly performed
- automatically under a superuser account. For example, a nefarious user
- can execute code with superuser privileges by setting up a
- trojan-horse index definition and waiting for the next routine vacuum.
- The fix arranges for standard maintenance operations
- (including <command>VACUUM</command>, <command>ANALYZE</command>, <command>REINDEX</command>,
- and <command>CLUSTER</command>) to execute as the table owner rather than
- the calling user, using the same privilege-switching mechanism already
- used for <literal>SECURITY DEFINER</literal> functions. To prevent bypassing
- this security measure, execution of <command>SET SESSION
- AUTHORIZATION</command> and <command>SET ROLE</command> is now forbidden within a
- <literal>SECURITY DEFINER</literal> context. (CVE-2007-6600)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
- </para>
-
- <para>
- Suitably crafted regular-expression patterns could cause crashes,
- infinite or near-infinite looping, and/or massive memory consumption,
- all of which pose denial-of-service hazards for applications that
- accept regex search patterns from untrustworthy sources.
- (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Require non-superusers who use <filename>/contrib/dblink</filename> to use only
- password authentication, as a security measure (Joe)
- </para>
-
- <para>
- The fix that appeared for this in 8.0.14 was incomplete, as it plugged
- the hole for only some <filename>dblink</filename> functions. (CVE-2007-6601,
- CVE-2007-3278)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update time zone data files to <application>tzdata</application> release 2007k
- (in particular, recent Argentina changes) (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix planner failure in some cases of <literal>WHERE false AND var IN
- (SELECT ...)</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Preserve the tablespace of indexes that are
- rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make archive recovery always start a new WAL timeline, rather than only
- when a recovery stop time was used (Simon)
- </para>
-
- <para>
- This avoids a corner-case risk of trying to overwrite an existing
- archived copy of the last WAL segment, and seems simpler and cleaner
- than the original definition.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>VACUUM</command> not use all of <varname>maintenance_work_mem</varname>
- when the table is too small for it to be useful (Alvaro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix potential crash in <function>translate()</function> when using a multibyte
- database encoding (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PL/Perl to cope when platform's Perl defines type <literal>bool</literal>
- as <literal>int</literal> rather than <literal>char</literal> (Tom)
- </para>
-
- <para>
- While this could theoretically happen anywhere, no standard build of
- Perl did things this way ... until <productname>macOS</productname> 10.5.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PL/Python to not crash on long exception messages (Alvaro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <application>pg_dump</application> to correctly handle inheritance child tables
- that have default expressions different from their parent's (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <application>ecpg</application> parser fixes (Michael)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <filename>contrib/tablefunc</filename>'s <function>crosstab()</function> handle
- NULL rowid as a category in its own right, rather than crashing (Joe)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <type>tsvector</type> and <type>tsquery</type> output routines to
- escape backslashes correctly (Teodor, Bruce)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash of <function>to_tsvector()</function> on huge input strings (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Require a specific version of <productname>Autoconf</productname> to be used
- when re-generating the <command>configure</command> script (Peter)
- </para>
-
- <para>
- This affects developers and packagers only. The change was made
- to prevent accidental use of untested combinations of
- <productname>Autoconf</productname> and <productname>PostgreSQL</productname> versions.
- You can remove the version check if you really want to use a
- different <productname>Autoconf</productname> version, but it's
- your responsibility whether the result works or not.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-14">
- <title>Release 8.0.14</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-09-17</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.13.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.14</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Prevent index corruption when a transaction inserts rows and
- then aborts close to the end of a concurrent <command>VACUUM</command>
- on the same table (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Make <command>CREATE DOMAIN ... DEFAULT NULL</command> work properly (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix excessive logging of <acronym>SSL</acronym> error messages (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix logging so that log messages are never interleaved when using
- the syslogger process (Andrew)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix crash when <varname>log_min_error_statement</varname> logging runs out
- of memory (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix incorrect handling of some foreign-key corner cases (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Prevent <command>CLUSTER</command> from failing
- due to attempting to process temporary tables of other sessions (Alvaro)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Windows socket improvements (Magnus)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Suppress timezone name (<literal>%Z</literal>) in log timestamps on Windows
- because of possible encoding mismatches (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Require non-superusers who use <filename>/contrib/dblink</filename> to use only
- password authentication, as a security measure (Joe)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-13">
- <title>Release 8.0.13</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-04-23</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.12,
- including a security fix.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.13</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Support explicit placement of the temporary-table schema within
- <varname>search_path</varname>, and disable searching it for functions
- and operators (Tom)
- </para>
- <para>
- This is needed to allow a security-definer function to set a
- truly secure value of <varname>search_path</varname>. Without it,
- an unprivileged SQL user can use temporary objects to execute code
- with the privileges of the security-definer function (CVE-2007-2138).
- See <command>CREATE FUNCTION</command> for more information.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <filename>/contrib/tsearch2</filename> crash fixes (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix potential-data-corruption bug in how <command>VACUUM FULL</command> handles
- <command>UPDATE</command> chains (Tom, Pavan Deolasee)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix PANIC during enlargement of a hash index (bug introduced in 8.0.10)
- (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-12">
- <title>Release 8.0.12</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-02-07</para>
- </formalpara>
-
- <para>
- This release contains one fix from 8.0.11.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.12</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Remove overly-restrictive check for type length in constraints and
- functional indexes(Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-11">
- <title>Release 8.0.11</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-02-05</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.10, including
- a security fix.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.11</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Remove security vulnerabilities that allowed connected users
- to read backend memory (Tom)
- </para>
- <para>
- The vulnerabilities involve suppressing the normal check that a SQL
- function returns the data type it's declared to, and changing the
- data type of a table column (CVE-2007-0555, CVE-2007-0556). These
- errors can easily be exploited to cause a backend crash, and in
- principle might be used to read database content that the user
- should not be able to access.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix rare bug wherein btree index page splits could fail
- due to choosing an infeasible split point (Heikki Linnakangas)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix for rare Assert() crash triggered by <literal>UNION</literal> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Tighten security of multi-byte character processing for UTF8 sequences
- over three bytes long (Tom)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-10">
- <title>Release 8.0.10</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2007-01-08</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.9.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.10</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
- <itemizedlist>
-
- <listitem>
- <para>
- Improve handling of <function>getaddrinfo()</function> on AIX (Tom)
- </para>
-
- <para>
- This fixes a problem with starting the statistics collector,
- among other things.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix <quote>failed to re-find parent key</quote> errors in
- <command>VACUUM</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix race condition for truncation of a large relation across a
- gigabyte boundary by <command>VACUUM</command> (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix bugs affecting multi-gigabyte hash indexes (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix possible deadlock in Windows signal handling (Teodor)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix error when constructing an <literal>ARRAY[]</literal> made up of multiple
- empty elements (Tom)
- </para>
- </listitem>
-
- <listitem>
- <para>
- Fix ecpg memory leak during connection (Michael)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <function>to_number()</function> and <function>to_char(numeric)</function>
- are now <literal>STABLE</literal>, not <literal>IMMUTABLE</literal>, for
- new <application>initdb</application> installs (Tom)
- </para>
-
- <para>
- This is because <varname>lc_numeric</varname> can potentially
- change the output of these functions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Improve index usage of regular expressions that use parentheses (Tom)
- </para>
-
- <para>
- This improves <application>psql</application> <literal>\d</literal> performance also.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Update timezone database
- </para>
-
- <para>
- This affects Australian and Canadian daylight-savings rules in
- particular.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-9">
- <title>Release 8.0.9</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-10-16</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.8.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.9</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix crash when referencing <literal>NEW</literal> row
-values in rule WHERE expressions (Tom)</para></listitem>
-<listitem><para>Fix core dump when an untyped literal is taken as
-ANYARRAY</para></listitem>
-<listitem><para>Fix mishandling of AFTER triggers when query contains a SQL
-function returning multiple rows (Tom)</para></listitem>
-<listitem><para>Fix <command>ALTER TABLE ... TYPE</command> to recheck
-<literal>NOT NULL</literal> for <literal>USING</literal> clause (Tom)</para></listitem>
-<listitem><para>Fix <function>string_to_array()</function> to handle overlapping
- matches for the separator string</para>
-<para>For example, <literal>string_to_array('123xx456xxx789', 'xx')</literal>.
-</para></listitem>
-<listitem><para>Fix corner cases in pattern matching for
- <application>psql</application>'s <literal>\d</literal> commands</para></listitem>
-<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
-<listitem><para>Numerous robustness fixes in <application>ecpg</application> (Joachim
-Wieland)</para></listitem>
-<listitem><para>Fix backslash escaping in /contrib/dbmirror</para></listitem>
-<listitem><para>Fix instability of statistics collection on Win32 (Tom, Andrew)</para></listitem>
-<listitem><para>Fixes for <systemitem class="osname">AIX</systemitem> and
-<productname>Intel</productname> compilers (Tom)</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-8">
- <title>Release 8.0.8</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-05-23</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.7,
- including patches for extremely serious security issues.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.8</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
-
- <para>
- Full security against the SQL-injection attacks described in
- CVE-2006-2313 and CVE-2006-2314 might require changes in application
- code. If you have applications that embed untrustworthy strings
- into SQL commands, you should examine them as soon as possible to
- ensure that they are using recommended escaping techniques. In
- most cases, applications should be using subroutines provided by
- libraries or drivers (such as <application>libpq</application>'s
- <function>PQescapeStringConn()</function>) to perform string escaping,
- rather than relying on <foreignphrase>ad hoc</foreignphrase> code to do it.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)</para>
-<para>While <productname>PostgreSQL</productname> has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings. This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-</para></listitem>
-
-<listitem><para>Reject unsafe uses of <literal>\'</literal> in string literals</para>
-<para>As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts <literal>''</literal> and not
-<literal>\'</literal> as a representation of ASCII single quote in SQL string
-literals. By default, <literal>\'</literal> is rejected only when
-<varname>client_encoding</varname> is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter <varname>backslash_quote</varname> is available to
-adjust this behavior when needed. Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-<varname>backslash_quote</varname> is in part to make it obvious that insecure
-clients are insecure.
-</para></listitem>
-
-<listitem><para>Modify <application>libpq</application>'s string-escaping routines to be
-aware of encoding considerations and
-<varname>standard_conforming_strings</varname></para>
-<para>This fixes <application>libpq</application>-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple <productname>PostgreSQL</productname> connections
-concurrently should migrate to <function>PQescapeStringConn()</function> and
-<function>PQescapeByteaConn()</function> to ensure that escaping is done correctly
-for the settings in use in each database connection. Applications that
-do string escaping <quote>by hand</quote> should be modified to rely on library
-routines instead.
-</para></listitem>
-
-<listitem><para>Fix some incorrect encoding conversion functions</para>
-<para><function>win1251_to_iso</function>, <function>alt_to_iso</function>,
-<function>euc_tw_to_big5</function>, <function>euc_tw_to_mic</function>,
-<function>mic_to_euc_tw</function> were all broken to varying
-extents.
-</para></listitem>
-
-<listitem><para>Clean up stray remaining uses of <literal>\'</literal> in strings
-(Bruce, Jan)</para></listitem>
-
-<listitem><para>Fix bug that sometimes caused OR'd index scans to
-miss rows they should have returned</para></listitem>
-
-<listitem><para>Fix WAL replay for case where a btree index has been
-truncated</para></listitem>
-
-<listitem><para>Fix <literal>SIMILAR TO</literal> for patterns involving
-<literal>|</literal> (Tom)</para></listitem>
-
-<listitem><para>Fix <command>SELECT INTO</command> and <command>CREATE TABLE AS</command> to
-create tables in the default tablespace, not the base directory (Kris
-Jurka)</para></listitem>
-
-<listitem><para>Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)</para></listitem>
-
-<listitem><para>Fix for Bonjour on Intel Macs (Ashley Clark)</para></listitem>
-
-<listitem><para>Fix various minor memory leaks</para></listitem>
-
-<listitem><para>Fix problem with password prompting on some Win32 systems
-(Robert Kinberg)</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-7">
- <title>Release 8.0.7</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-02-14</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.6.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.7</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.6,
- see <xref linkend="release-8-0-6"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix potential crash in <command>SET
-SESSION AUTHORIZATION</command> (CVE-2006-0553)</para>
-<para>An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-</para></listitem>
-
-<listitem><para>Fix bug with row visibility logic in self-inserted
-rows (Tom)</para>
-<para>Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be. Repairs bug
-created in 8.0.4, 7.4.9, and 7.3.11 releases.
-</para></listitem>
-
-<listitem><para>Fix race condition that could lead to <quote>file already
-exists</quote> errors during pg_clog and pg_subtrans file creation
-(Tom)</para></listitem>
-
-<listitem><para>Fix cases that could lead to crashes if a cache-invalidation
-message arrives at just the wrong time (Tom)</para></listitem>
-
-<listitem><para>Properly check <literal>DOMAIN</literal> constraints for
-<literal>UNKNOWN</literal> parameters in prepared statements
-(Neil)</para></listitem>
-
-<listitem><para>Ensure <command>ALTER COLUMN TYPE</command> will process
-<literal>FOREIGN KEY</literal>, <literal>UNIQUE</literal>, and <literal>PRIMARY KEY</literal>
-constraints in the proper order (Nakano Yoshihisa)</para></listitem>
-
-<listitem><para>Fixes to allow restoring dumps that have cross-schema
-references to custom operators or operator classes (Tom)</para></listitem>
-
-<listitem><para>Allow <application>pg_restore</application> to continue properly after a
-<command>COPY</command> failure; formerly it tried to treat the remaining
-<command>COPY</command> data as SQL commands (Stephen Frost)</para></listitem>
-
-<listitem><para>Fix <application>pg_ctl</application> <literal>unregister</literal> crash
-when the data directory is not specified (Magnus)</para></listitem>
-
-<listitem><para>Fix <application>ecpg</application> crash on AMD64 and PPC
-(Neil)</para></listitem>
-
-<listitem><para>Recover properly if error occurs during argument passing
-in <application>PL/Python</application> (Neil)</para></listitem>
-
-<listitem><para>Fix <application>PL/Perl</application>'s handling of locales on
-Win32 to match the backend (Andrew)</para></listitem>
-
-<listitem><para>Fix crash when <literal>log_min_messages</literal> is set to
-<literal>DEBUG3</literal> or above in <filename>postgresql.conf</filename> on Win32
-(Bruce)</para></listitem>
-
-<listitem><para>Fix <application>pgxs</application> <literal>-L</literal> library path
-specification for Win32, Cygwin, macOS, AIX (Bruce)</para></listitem>
-
-<listitem><para>Check that SID is enabled while checking for Win32 admin
-privileges (Magnus)</para></listitem>
-
-<listitem><para>Properly reject out-of-range date inputs (Kris
-Jurka)</para></listitem>
-
-<listitem><para>Portability fix for testing presence of <function>finite</function>
-and <function>isinf</function> during configure (Tom)</para></listitem>
-
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-6">
- <title>Release 8.0.6</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2006-01-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.5.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.6</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.3,
- see <xref linkend="release-8-0-3"/>.
- Also, you might need to <command>REINDEX</command> indexes on textual
- columns after updating, if you are affected by the locale or
- <application>plperl</application> issues described below.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix Windows code so that postmaster will continue rather
-than exit if there is no more room in ShmemBackendArray (Magnus)</para>
-<para>The previous behavior could lead to a denial-of-service situation if too
-many connection requests arrive close together. This applies
-<emphasis>only</emphasis> to the Windows port.</para></listitem>
-
-<listitem><para>Fix bug introduced in 8.0 that could allow ReadBuffer
-to return an already-used page as new, potentially causing loss of
-recently-committed data (Tom)</para></listitem>
-
-<listitem><para>Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)</para></listitem>
-
-<listitem><para>Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)</para>
-<para>This might require <command>REINDEX</command> to fix existing indexes on
-textual columns.</para></listitem>
-
-<listitem><para>Set locale environment variables during postmaster startup
-to ensure that <application>plperl</application> won't change the locale later</para>
-<para>This fixes a problem that occurred if the <application>postmaster</application> was
-started with environment variables specifying a different locale than what
-<application>initdb</application> had been told. Under these conditions, any use of
-<application>plperl</application> was likely to lead to corrupt indexes. You might need
-<command>REINDEX</command> to fix existing indexes on
-textual columns if this has happened to you.</para></listitem>
-
-<listitem><para>Allow more flexible relocation of installation
-directories (Tom)</para>
-<para>Previous releases supported relocation only if all installation
-directory paths were the same except for the last component.</para></listitem>
-
-<listitem><para>Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-</para></listitem>
-
-<listitem><para>Various fixes for functions returning <literal>RECORD</literal>s
-(Tom) </para></listitem>
-
-<listitem><para>Fix bug in <filename>/contrib/pgcrypto</filename> gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)</para>
-<para>Salts for Blowfish and standard DES are unaffected.</para></listitem>
-
-<listitem><para>Fix <filename>/contrib/dblink</filename> to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)</para></listitem>
-
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-5">
- <title>Release 8.0.5</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-12-12</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.4.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.5</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.3,
- see <xref linkend="release-8-0-3"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix race condition in transaction log management</para>
-<para>There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.</para>
-</listitem>
-
-<listitem><para>Fix bgwriter problems after recovering from errors
-(Tom)</para>
-<para>
-The background writer was found to leak buffer pins after write errors.
-While not fatal in itself, this might lead to mysterious blockages of
-later VACUUM commands.
-</para>
-</listitem>
-
-<listitem><para>Prevent failure if client sends Bind protocol message
-when current transaction is already aborted</para></listitem>
-
-<listitem><para><filename>/contrib/ltree</filename> fixes (Teodor)</para></listitem>
-
-<listitem><para>AIX and HPUX compile fixes (Tom)</para></listitem>
-
-<listitem><para>Retry file reads and writes after Windows
-NO_SYSTEM_RESOURCES error (Qingqing Zhou)</para></listitem>
-
-<listitem><para>Fix intermittent failure when <varname>log_line_prefix</varname>
-includes <literal>%i</literal></para></listitem>
-
-<listitem><para>Fix <application>psql</application> performance issue with long scripts
-on Windows (Merlin Moncure)</para></listitem>
-
-<listitem><para>Fix missing updates of <filename>pg_group</filename> flat
-file</para></listitem>
-
-<listitem><para>Fix longstanding planning error for outer joins</para>
-<para>This bug sometimes caused a bogus error <quote>RIGHT JOIN is
-only supported with merge-joinable join conditions</quote>.</para></listitem>
-
-<listitem><para>Postpone timezone initialization until after
-<filename>postmaster.pid</filename> is created</para>
-<para>This avoids confusing startup scripts that expect the pid file to appear
-quickly.</para></listitem>
-
-<listitem><para>Prevent core dump in <application>pg_autovacuum</application> when a
-table has been dropped</para></listitem>
-
-<listitem><para>Fix problems with whole-row references (<literal>foo.*</literal>)
-to subquery results</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-4">
- <title>Release 8.0.4</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-10-04</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.3.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.4</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- if you are upgrading from a version earlier than 8.0.3,
- see <xref linkend="release-8-0-3"/>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix error that allowed <command>VACUUM</command> to remove
-<literal>ctid</literal> chains too soon, and add more checking in code that follows
-<literal>ctid</literal> links</para>
-<para>This fixes a long-standing problem that could cause crashes in very rare
-circumstances.</para></listitem>
-<listitem><para>Fix <type>CHAR()</type> to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
-<para>In prior releases, the padding of <type>CHAR()</type> was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.</para></listitem>
-<listitem><para>Force a checkpoint before committing <command>CREATE
-DATABASE</command></para>
-<para>This should fix recent reports of <quote>index is not a btree</quote>
-failures when a crash occurs shortly after <command>CREATE
-DATABASE</command>.</para></listitem>
-<listitem><para>Fix the sense of the test for read-only transaction
-in <command>COPY</command></para>
-<para>The code formerly prohibited <command>COPY TO</command>, where it should
-prohibit <command>COPY FROM</command>.
-</para></listitem>
-<listitem><para>Handle consecutive embedded newlines in <command>COPY</command>
-CSV-mode input</para></listitem>
-<listitem><para>Fix <function>date_trunc(week)</function> for dates near year
-end</para></listitem>
-<listitem><para>Fix planning problem with outer-join ON clauses that reference
-only the inner-side relation</para></listitem>
-<listitem><para>Further fixes for <literal>x FULL JOIN y ON true</literal> corner
-cases</para></listitem>
-<listitem><para>Fix overenthusiastic optimization of <literal>x IN (SELECT
-DISTINCT ...)</literal> and related cases</para></listitem>
-<listitem><para>Fix mis-planning of queries with small <literal>LIMIT</literal>
-values due to poorly thought out <quote>fuzzy</quote> cost
-comparison</para></listitem>
-<listitem><para>Make <function>array_in</function> and <function>array_recv</function> more
-paranoid about validating their OID parameter</para></listitem>
-<listitem><para>Fix missing rows in queries like <literal>UPDATE a=... WHERE
-a...</literal> with GiST index on column <literal>a</literal></para></listitem>
-<listitem><para>Improve robustness of datetime parsing</para></listitem>
-<listitem><para>Improve checking for partially-written WAL
-pages</para></listitem>
-<listitem><para>Improve robustness of signal handling when SSL is
-enabled</para></listitem>
-<listitem><para>Improve MIPS and M68K spinlock code</para></listitem>
-<listitem><para>Don't try to open more than <literal>max_files_per_process</literal>
-files during postmaster startup</para></listitem>
-<listitem><para>Various memory leakage fixes</para></listitem>
-<listitem><para>Various portability improvements</para></listitem>
-<listitem><para>Update timezone data files</para></listitem>
-<listitem><para>Improve handling of DLL load failures on Windows</para></listitem>
-<listitem><para>Improve random-number generation on Windows</para></listitem>
-<listitem><para>Make <literal>psql -f filename</literal> return a nonzero exit code
-when opening the file fails</para></listitem>
-<listitem><para>Change <application>pg_dump</application> to handle inherited check
-constraints more reliably</para></listitem>
-<listitem><para>Fix password prompting in <application>pg_restore</application> on
-Windows</para></listitem>
-<listitem><para>Fix PL/pgSQL to handle <literal>var := var</literal> correctly when
-the variable is of pass-by-reference type</para></listitem>
-<listitem><para>Fix PL/Perl <literal>%_SHARED</literal> so it's actually
-shared</para></listitem>
-<listitem><para>Fix <filename>contrib/pg_autovacuum</filename> to allow sleep
-intervals over 2000 sec</para></listitem>
-<listitem><para>Update <filename>contrib/tsearch2</filename> to use current Snowball
-code</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-3">
- <title>Release 8.0.3</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-05-09</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.2, including several
- security-related issues.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.3</title>
-
- <para>
- A dump/restore is not required for those running 8.0.X. However,
- it is one possible way of handling two significant security problems
- that have been found in the initial contents of 8.0.X system
- catalogs. A dump/initdb/reload sequence using 8.0.3's initdb will
- automatically correct these problems.
- </para>
-
- <para>
- The larger security problem is that the built-in character set encoding
- conversion functions can be invoked from SQL commands by unprivileged
- users, but the functions were not designed for such use and are not
- secure against malicious choices of arguments. The fix involves changing
- the declared parameter list of these functions so that they can no longer
- be invoked from SQL commands. (This does not affect their normal use
- by the encoding conversion machinery.)
- </para>
-
- <para>
- The lesser problem is that the <filename>contrib/tsearch2</filename> module
- creates several functions that are improperly declared to return
- <type>internal</type> when they do not accept <type>internal</type> arguments.
- This breaks type safety for all functions using <type>internal</type>
- arguments.
- </para>
-
- <para>
- It is strongly recommended that all installations repair these errors,
- either by initdb or by following the manual repair procedure given
- below. The errors at least allow unprivileged database users to crash
- their server process, and might allow unprivileged users to gain the
- privileges of a database superuser.
- </para>
-
- <para>
- If you wish not to do an initdb, perform the same manual repair
- procedures shown in the <link linkend="release-7-4-8">7.4.8 release
- notes</link>.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change encoding function signature to prevent
-misuse</para></listitem>
-<listitem><para>Change <filename>contrib/tsearch2</filename> to avoid unsafe use of
-<type>INTERNAL</type> function results</para></listitem>
-<listitem><para>Guard against incorrect second parameter to
-<function>record_out</function></para></listitem>
-<listitem><para>Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes</para>
-<para>This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.</para></listitem>
-<listitem><para>Repair race condition between relation extension and
-VACUUM</para>
-<para>This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-</para></listitem>
-<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</type> values</para>
-<para>
-The comparison code was wrong in the case where the
-<literal>--enable-integer-datetimes</literal> configuration switch had been used.
-NOTE: if you have an index on a <type>TIME WITH TIME ZONE</type> column,
-it will need to be <command>REINDEX</command>ed after installing this update, because
-the fix corrects the sort order of column values.
-</para></listitem>
-<listitem><para>Fix <function>EXTRACT(EPOCH)</function> for
-<type>TIME WITH TIME ZONE</type> values</para></listitem>
-<listitem><para>Fix mis-display of negative fractional seconds in
-<type>INTERVAL</type> values</para>
-<para>
-This error only occurred when the
-<literal>--enable-integer-datetimes</literal> configuration switch had been used.
-</para></listitem>
-<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</literal>
-correctly (Neil)</para></listitem>
-<listitem><para>Still more 64-bit fixes for
-<filename>contrib/intagg</filename></para></listitem>
-<listitem><para>Prevent incorrect optimization of functions returning
-<type>RECORD</type></para></listitem>
-<listitem><para>Prevent crash on <literal>COALESCE(NULL,NULL)</literal></para></listitem>
-<listitem><para>Fix Borland makefile for libpq</para></listitem>
-<listitem><para>Fix <filename>contrib/btree_gist</filename> for <type>timetz</type> type
-(Teodor)</para></listitem>
-<listitem><para>Make <command>pg_ctl</command> check the PID found in
-<filename>postmaster.pid</filename> to see if it is still a live
-process</para></listitem>
-<listitem><para>Fix <command>pg_dump</command>/<command>pg_restore</command> problems caused
-by addition of dump timestamps</para></listitem>
-<listitem><para>Fix interaction between materializing holdable cursors and
-firing deferred triggers during transaction commit</para></listitem>
-<listitem><para>Fix memory leak in SQL functions returning pass-by-reference
-data types</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-2">
- <title>Release 8.0.2</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-04-07</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.1.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.2</title>
-
- <para>
- A dump/restore is not required for those running 8.0.*.
- This release updates the major version number of the
- <productname>PostgreSQL</productname> libraries, so it might be
- necessary to re-link some user applications if they cannot
- find the properly-numbered shared library.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Increment the major version number of all interface
-libraries (Bruce)</para>
-<para>
-This should have been done in 8.0.0. It is required so 7.4.X versions
-of PostgreSQL client applications, like <application>psql</application>,
-can be used on the same machine as 8.0.X applications. This might require
-re-linking user applications that use these libraries.
-</para></listitem>
-<listitem><para>Add Windows-only <varname>wal_sync_method</varname> setting of
-<option>fsync_writethrough</option> (Magnus, Bruce)</para>
-<para>
-This setting causes <productname>PostgreSQL</productname> to write through
-any disk-drive write cache when writing to WAL.
-This behavior was formerly called <option>fsync</option>, but was
-renamed because it acts quite differently from <option>fsync</option> on other
-platforms.
-</para>
-</listitem>
-<listitem><para>Enable the <varname>wal_sync_method</varname> setting of
-<option>open_datasync</option> on Windows, and make it the default for that
- platform (Magnus, Bruce)</para>
-<para>
-Because the default is no longer <option>fsync_writethrough</option>,
-data loss is possible during a power failure if the disk drive has
-write caching enabled. To turn off the write cache on Windows,
-from the <application>Device Manager</application>, choose the drive properties,
-then <literal>Policies</literal>.
-</para>
-</listitem>
-<listitem><para>New cache management algorithm <acronym>2Q</acronym> replaces
-<acronym>ARC</acronym> (Tom)</para>
-<para>
-This was done to avoid a pending US patent on <acronym>ARC</acronym>. The
-<acronym>2Q</acronym> code might be a few percentage points slower than
-<acronym>ARC</acronym> for some work loads. A better cache management algorithm
-will appear in 8.1.
-</para></listitem>
-<listitem><para>Planner adjustments to improve behavior on freshly-created
-tables (Tom)</para></listitem>
-<listitem><para>Allow plpgsql to assign to an element of an array that is
-initially <literal>NULL</literal> (Tom)</para>
-<para>
-Formerly the array would remain <literal>NULL</literal>, but now it becomes a
-single-element array. The main SQL engine was changed to handle
-<command>UPDATE</command> of a null array value this way in 8.0, but the similar
-case in plpgsql was overlooked.
-</para>
-</listitem>
-<listitem><para>Convert <literal>\r\n</literal> and <literal>\r</literal> to <literal>\n</literal>
-in plpython function bodies (Michael Fuhr)</para>
-<para>
- This prevents syntax errors when plpython code is written on a Windows or
- Mac client.
-</para>
-</listitem>
-<listitem><para>Allow SPI cursors to handle utility commands that return rows,
-such as <command>EXPLAIN</command> (Tom)</para></listitem>
-<listitem><para>Fix <command>CLUSTER</command> failure after <command>ALTER TABLE
-SET WITHOUT OIDS</command> (Tom)</para></listitem>
-<listitem><para>Reduce memory usage of <command>ALTER TABLE ADD COLUMN</command>
-(Neil)</para></listitem>
-<listitem><para>Fix <command>ALTER LANGUAGE RENAME</command> (Tom)</para></listitem>
-<listitem><para>Document the Windows-only <literal>register</literal> and
-<literal>unregister</literal> options of <application>pg_ctl</application> (Magnus)</para></listitem>
-<listitem><para>Ensure operations done during backend shutdown are counted by
-statistics collector</para>
-<para>
-This is expected to resolve reports of <application>pg_autovacuum</application>
-not vacuuming the system catalogs often enough — it was not being
-told about catalog deletions caused by temporary table removal during
-backend exit.
-</para></listitem>
-<listitem><para>Change the Windows default for configuration parameter
-<varname>log_destination</varname> to <option>eventlog</option> (Magnus)</para>
-<para>
-By default, a server running on Windows will now send log output to the
-Windows event logger rather than standard error.
-</para></listitem>
-<listitem><para>Make Kerberos authentication work on Windows (Magnus)</para></listitem>
-<listitem><para>Allow <command>ALTER DATABASE RENAME</command> by superusers
-who aren't flagged as having CREATEDB privilege (Tom)</para></listitem>
-<listitem><para>Modify WAL log entries for <command>CREATE</command> and
-<command>DROP DATABASE</command> to not specify absolute paths (Tom)</para>
-<para>This allows point-in-time recovery on a different machine with possibly
-different database location. Note that <command>CREATE TABLESPACE</command> still
-poses a hazard in such situations.
-</para></listitem>
-<listitem><para>Fix crash from a backend exiting with an open transaction
-that created a table and opened a cursor on it (Tom)</para></listitem>
-<listitem><para>Fix <function>array_map()</function> so it can call PL functions
-(Tom)</para></listitem>
-<listitem><para>Several <filename>contrib/tsearch2</filename> and
-<filename>contrib/btree_gist</filename> fixes (Teodor)
-</para></listitem>
-<listitem><para>Fix crash of some <filename>contrib/pgcrypto</filename>
-functions on some platforms (Marko Kreen)</para></listitem>
-<listitem><para>Fix <filename>contrib/intagg</filename> for 64-bit platforms
-(Tom)</para></listitem>
-<listitem><para>Fix ecpg bugs in parsing of <command>CREATE</command> statement
-(Michael)</para></listitem>
-<listitem><para>Work around gcc bug on powerpc and amd64 causing problems in
-ecpg (Christof Petig)</para></listitem>
-<listitem><para>Do not use locale-aware versions of <function>upper()</function>,
-<function>lower()</function>, and <function>initcap()</function> when the locale is
-<literal>C</literal> (Bruce)</para>
-<para>
- This allows these functions to work on platforms that generate errors
- for non-7-bit data when the locale is <literal>C</literal>.
-</para></listitem>
-<listitem><para>Fix <function>quote_ident()</function> to quote names that match keywords (Tom)</para></listitem>
-<listitem><para>Fix <function>to_date()</function> to behave reasonably when
-<literal>CC</literal> and <literal>YY</literal> fields are both used (Karel)</para></listitem>
-<listitem><para>Prevent <function>to_char(interval)</function> from failing
-when given a zero-month interval (Tom)</para></listitem>
-<listitem><para>Fix wrong week returned by <function>date_trunc('week')</function>
-(Bruce)</para>
-<para>
-<function>date_trunc('week')</function>
-returned the wrong year for the first few days of January in some years.
-</para></listitem>
-<listitem><para>Use the correct default mask length for class <literal>D</literal>
-addresses in <type>INET</type> data types (Tom)</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0-1">
- <title>Release 8.0.1</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-01-31</para>
- </formalpara>
-
- <para>
- This release contains a variety of fixes from 8.0.0, including several
- security-related issues.
- For information about new features in the 8.0 major release, see
- <xref linkend="release-8-0"/>.
- </para>
-
- <sect2>
- <title>Migration to Version 8.0.1</title>
-
- <para>
- A dump/restore is not required for those running 8.0.0.
- </para>
- </sect2>
-
- <sect2>
- <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow <command>LOAD</command> to non-superusers</para>
-<para>
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-<command>LOAD</command> can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.</para></listitem>
-<listitem><para>Check that creator of an aggregate function has the right to
-execute the specified transition functions</para>
-<para>
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.</para></listitem>
-<listitem><para>Fix security and 64-bit issues in
-contrib/intagg</para></listitem>
-<listitem><para>Add needed STRICT marking to some contrib functions (Kris
-Jurka)</para></listitem>
-<listitem><para>Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)</para></listitem>
-<listitem><para>Make <command>ALTER TABLE ADD COLUMN</command> enforce domain
-constraints in all cases</para></listitem>
-<listitem><para>Fix planning error for FULL and RIGHT outer joins</para>
-<para>
-The result of the join was mistakenly supposed to be sorted the same as the
-left input. This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-</para></listitem>
-<listitem><para>Improve planning of grouped aggregate queries</para></listitem>
-<listitem><para><command>ROLLBACK TO <replaceable>savepoint</replaceable></command>
-closes cursors created since the savepoint</para></listitem>
-<listitem><para>Fix inadequate backend stack size on Windows</para></listitem>
-<listitem><para>Avoid SHGetSpecialFolderPath() on Windows
-(Magnus)</para></listitem>
-<listitem><para>Fix some problems in running pg_autovacuum as a Windows
-service (Dave Page)</para></listitem>
-<listitem><para>Multiple minor bug fixes in
-pg_dump/pg_restore</para></listitem>
-<listitem><para>Fix ecpg segfault with named structs used in
-typedefs (Michael)</para></listitem>
-</itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="release-8-0">
- <title>Release 8.0</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2005-01-19</para>
- </formalpara>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- Major changes in this release:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>
- Microsoft Windows Native Server
- </term>
-
- <listitem>
- <para>
- This is the first <productname>PostgreSQL</productname> release
- to run natively on <trademark class="registered">Microsoft Windows</trademark> as
- a server. It can run as a <productname>Windows</productname> service. This
- release supports NT-based Windows releases like
- <productname>Windows 2000 SP4</productname>, <productname>Windows XP</productname>, and
- <productname>Windows 2003</productname>. Older releases like
- <productname>Windows 95</productname>, <productname>Windows 98</productname>, and
- <productname>Windows ME</productname> are not supported because these operating
- systems do not have the infrastructure to support
- <productname>PostgreSQL</productname>. A separate installer
- project has been created to ease installation on
- <productname>Windows</productname> — see <ulink
- url="http://www.postgresql.org/ftp/win32/"></ulink>.
- </para>
-
- <para>
- Although tested throughout our release cycle, the Windows port
- does not have the benefit of years of use in production
- environments that <productname>PostgreSQL</productname> has on
- Unix platforms. Therefore it should be treated with the same
- level of caution as you would a new product.
- </para>
-
- <para>
- Previous releases required the Unix emulation toolkit
- <productname>Cygwin</productname> in order to run the server on Windows
- operating systems. <productname>PostgreSQL</productname> has
- supported native clients on Windows for many years.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Savepoints
- </term>
-
- <listitem>
- <para>
- Savepoints allow specific parts of a transaction to be aborted
- without affecting the remainder of the transaction. Prior
- releases had no such capability; there was no way to recover
- from a statement failure within a transaction except by
- aborting the whole transaction. This feature is valuable for
- application writers who require error recovery within a
- complex transaction.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Point-In-Time Recovery
- </term>
-
- <listitem>
- <para>
- In previous releases there was no way to recover from disk
- drive failure except to restore from a previous backup or use
- a standby replication server. Point-in-time recovery allows
- continuous backup of the server. You can recover either to
- the point of failure or to some transaction in the past.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Tablespaces
- </term>
-
- <listitem>
- <para>
- Tablespaces allow administrators to select different file systems
- for storage of individual tables, indexes, and databases.
- This improves performance and control over disk space
- usage. Prior releases used <application>initlocation</application> and
- manual symlink management for such tasks.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Improved Buffer Management, <command>CHECKPOINT</command>,
- <command>VACUUM</command>
- </term>
-
- <listitem>
- <para>
- This release has a more intelligent buffer replacement strategy,
- which will make better use of available shared buffers and
- improve performance. The performance impact of vacuum and
- checkpoints is also lessened.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Change Column Types
- </term>
-
- <listitem>
- <para>
- A column's data type can now be changed with <command>ALTER
- TABLE</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- New Perl Server-Side Language
- </term>
-
- <listitem>
- <para>
- A new version of the <application>plperl</application> server-side language now
- supports a persistent shared storage area, triggers, returning records
- and arrays of records, and SPI calls to access the database.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Comma-separated-value (CSV) support in <command>COPY</command>
- </term>
-
- <listitem>
- <para>
- <command>COPY</command> can now read and write
- comma-separated-value files. It has the flexibility to
- interpret nonstandard quoting and separation characters too.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Migration to Version 8.0</title>
-
- <para>
- A dump/restore using <application>pg_dump</application> is
- required for those wishing to migrate data from any previous
- release.
- </para>
-
- <para>
- Observe the following incompatibilities:
- </para>
-
- <itemizedlist>
-
- <listitem>
- <para>
- In <option>READ COMMITTED</option> serialization mode, volatile functions
- now see the results of concurrent transactions committed up to the
- beginning of each statement within the function, rather than up to the
- beginning of the interactive command that called the function.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Functions declared <option>STABLE</option> or <option>IMMUTABLE</option> always
- use the snapshot of the calling query, and therefore do not see the
- effects of actions taken after the calling query starts, whether in
- their own transaction or other transactions. Such a function must be
- read-only, too, meaning that it cannot use any SQL commands other than
- <command>SELECT</command>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Nondeferred <option>AFTER</option> triggers are now fired immediately
- after completion of the triggering query, rather than upon
- finishing the current interactive command. This makes a
- difference when the triggering query occurred within a function:
- the trigger is invoked before the function proceeds to its next
- operation.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Server configuration parameters <varname>virtual_host</varname> and
- <varname>tcpip_socket</varname> have been replaced with a more general
- parameter <varname>listen_addresses</varname>. Also, the server now listens on
- <literal>localhost</literal> by default, which eliminates the need for the
- <literal>-i</literal> postmaster switch in many scenarios.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Server configuration parameters <varname>SortMem</varname> and
- <varname>VacuumMem</varname> have been renamed to <varname>work_mem</varname>
- and <varname>maintenance_work_mem</varname> to better reflect their
- use. The original names are still supported in
- <command>SET</command> and <command>SHOW</command>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Server configuration parameters <varname>log_pid</varname>,
- <varname>log_timestamp</varname>, and <varname>log_source_port</varname> have been
- replaced with a more general parameter <varname>log_line_prefix</varname>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Server configuration parameter <varname>syslog</varname> has been
- replaced with a more logical <varname>log_destination</varname> variable to
- control the log output destination.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Server configuration parameter <varname>log_statement</varname> has been
- changed so it can selectively log just database modification or
- data definition statements. Server configuration parameter
- <varname>log_duration</varname> now prints only when <varname>log_statement</varname>
- prints the query.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Server configuration parameter <varname>max_expr_depth</varname> parameter has
- been replaced with <varname>max_stack_depth</varname> which measures the
- physical stack size rather than the expression nesting depth. This
- helps prevent session termination due to stack overflow caused by
- recursive functions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <function>length()</function> function no longer counts trailing spaces in
- <type>CHAR(n)</type> values.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Casting an integer to <type>BIT(N)</type> selects the rightmost N bits of the
- integer, not the leftmost N bits as before.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Updating an element or slice of a NULL array value now produces
- a nonnull array result, namely an array containing
- just the assigned-to positions.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Syntax checking of array input values has been tightened up
- considerably. Junk that was previously allowed in odd places with
- odd results now causes an error. Empty-string element values
- must now be written as <literal>""</literal>, rather than writing nothing.
- Also changed behavior with respect to whitespace surrounding
- array elements: trailing whitespace is now ignored, for symmetry
- with leading whitespace (which has always been ignored).
- </para>
- </listitem>
-
- <listitem>
- <para>
- Overflow in integer arithmetic operations is now detected and
- reported as an error.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The arithmetic operators associated with the single-byte
- <type>"char"</type> data type have been removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <function>extract()</function> function (also called
- <function>date_part</function>) now returns the proper year for BC dates.
- It previously returned one less than the correct year. The
- function now also returns the proper values for millennium and
- century.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <type>CIDR</type> values now must have their nonmasked bits be zero.
- For example, we no longer allow
- <literal>204.248.199.1/31</literal> as a <type>CIDR</type> value. Such
- values should never have been accepted by
- <productname>PostgreSQL</productname> and will now be rejected.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <command>EXECUTE</command> now returns a completion tag that
- matches the executed statement.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <application>psql</application>'s <command>\copy</command> command now reads or
- writes to the query's <literal>stdin/stdout</literal>, rather than
- <application>psql</application>'s <literal>stdin/stdout</literal>. The previous
- behavior can be accessed via new
- <option>pstdin</option>/<option>pstdout</option> parameters.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The JDBC client interface has been removed from the core
- distribution, and is now hosted at <ulink url=
- "http://jdbc.postgresql.org"></ulink>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The Tcl client interface has also been removed. There are several
- Tcl interfaces now hosted at <ulink url=
- "http://gborg.postgresql.org"></ulink>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The server now uses its own time zone database, rather than the
- one supplied by the operating system. This will provide consistent
- behavior across all platforms. In most cases, there should be
- little noticeable difference in time zone behavior, except that
- the time zone names used by <command>SET</command>/<command>SHOW</command>
- <varname>TimeZone</varname> might be different from what your platform provides.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <application>Configure</application>'s threading option no longer requires
- users to run tests or edit configuration files; threading options
- are now detected automatically.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Now that tablespaces have been implemented,
- <application>initlocation</application> has been removed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The API for user-defined GiST indexes has been changed. The
- Union and PickSplit methods are now passed a pointer to a
- special <structname>GistEntryVector</structname> structure,
- rather than a <type>bytea</type>.
- </para>
- </listitem>
-
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Deprecated Features</title>
-
- <para>
- Some aspects of <productname>PostgreSQL</productname>'s behavior
- have been determined to be suboptimal. For the sake of backward
- compatibility these have not been removed in 8.0, but they are
- considered deprecated and will be removed in the next major
- release.
- </para>
-
- <itemizedlist>
- <listitem>
- <para>
- The 8.1 release will remove the <function>to_char()</function> function
- for intervals.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The server now warns of empty strings passed to
- <type>oid</type>/<type>float4</type>/<type>float8</type> data
- types, but continues to interpret them as zeroes as before.
- In the next major release, empty strings will be con