From 4cc3ba9aae1646eb8433dd8ee16aade50dad79bc Mon Sep 17 00:00:00 2001
From: Peter Geoghegan <pg@bowt.ie>
Date: Thu, 9 May 2019 18:39:06 -0700
Subject: [PATCH] Suggested changes to v12 release notes.

---
 doc/src/sgml/release-12.sgml | 81 +++++++++++++++++++++++++-----------
 1 file changed, 57 insertions(+), 24 deletions(-)

diff --git a/doc/src/sgml/release-12.sgml b/doc/src/sgml/release-12.sgml
index 54f66e13dc..5f2caa29c4 100644
--- a/doc/src/sgml/release-12.sgml
+++ b/doc/src/sgml/release-12.sgml
@@ -319,6 +319,26 @@ Remove the ability to disable dynamic shared memory (Kyotaro Horiguchi)
 <para>
 Specifically, dynamic_shared_memory_type can no longer be set to 'none'.
 </para>
+</listitem>
+
+<listitem>
+<!--
+Author: Peter Geoghegan <pg@bowt.ie>
+2019-03-20 [dd299df8] Make heap TID a tiebreaker nbtree index column.
+-->
+
+<para>
+  Lower the limit on the size of new B-tree index tuples by 8 bytes
+  (Peter Geoghegan)
+</para>
+
+<para>
+  The definition of the "1/3 of a page" restriction on new B-tree
+  entries has been revised to account for the possible overhead of
+  storing table TIDs in branch page keys.  Indexes in databases that
+  are migrated using pg_upgrade are not affected, unless and until
+  they are reindexed.
+</para>
 </listitem>
 
    </itemizedlist>
@@ -559,18 +579,48 @@ Prevent current_schema and current_schemas() from being run by parallel workers
 <!--
 Author: Alexander Korotkov <akorotkov@postgresql.org>
 2018-07-28 [d2086b08b] Reduce path length for locking leaf B-tree pages during 
-Author: Peter Geoghegan <pg@bowt.ie>
-2019-03-25 [f21668f32] Add "split after new tuple" nbtree optimization.
-Author: Peter Geoghegan <pg@bowt.ie>
-2019-04-23 [9b1092626] Prevent O(N^2) unique index insertion edge case.
 -->
-
 <para>
-Improve speed of btree index insertions (Alexander Korotkov, Peter Geoghegan)
+  Don't re-lock B-Tree leaf pages while inserting a new entry (Alexander Korotkov)
+</para>
+</listitem>
+
+<listitem>
+<!--
+Author: Peter Geoghegan <pg@bowt.ie>
+2019-03-20 [e5adcb78] Refactor nbtree insertion scankeys.
+Author: Peter Geoghegan <pg@bowt.ie>
+2019-03-20 [dd299df8] Make heap TID a tiebreaker nbtree index column.
+-->
+<para>
+ Make B-tree index keys unique by treating table TID as a tiebreaker
+ column internally (Peter Geoghegan, Heikki Linnakangas)
 </para>
 
 <para>
- LOOKUP, INDEX CLEANUP IMPROVEMENTS?
+ The new approach has more predictable performance characteristics
+ with indexes that have many duplicate entries, particularly when
+ there are <command>DELETE</command>s or <command>UPDATE</command>s
+ that affect a large number of contiguous table rows.
+</para>
+</listitem>
+
+<listitem>
+<!--
+Author: Peter Geoghegan <pg@bowt.ie>
+2019-03-20 [fab25024] Consider secondary factors during nbtree splits.
+Author: Peter Geoghegan <pg@bowt.ie>
+2019-03-25 [f21668f32] Add "split after new tuple" nbtree optimization.
+-->
+<para>
+ Make more sophisticated decisions about where to split B-tree pages
+ (Peter Geoghegan)
+</para>
+
+<para>
+ The algorithm for choosing B-tree split points now considers the
+ overall pattern of how new entries are inserted, which can result in
+ more free space being available where it is likely to be needed.
 </para>
 </listitem>
 
@@ -621,23 +671,6 @@ Allow index-only scans to be more efficient on indexes with many columns (Konsta
 </para>
 </listitem>
 
-<listitem>
-<!--
-Author: Peter Geoghegan <pg@bowt.ie>
-2019-03-20 [dd299df81] Make heap TID a tiebreaker nbtree index column.
-Author: Peter Geoghegan <pg@bowt.ie>
-2019-03-20 [fab250243] Consider secondary factors during nbtree splits.
--->
-
-<para>
-Have new btree indexes sort duplicate index entries in heap-storage order (Peter Geoghegan)
-</para>
-
-<para>
-Btree indexes pg_upgraded from previous releases will not have this ordering.  This slightly reduces the maximum length of indexed values.
-</para>
-</listitem>
-
 <listitem>
 <!--
 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-- 
2.17.1

