diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml
index 9003b1f6e4f..8d7356e27fc 100644
--- a/doc/src/sgml/release-9.6.sgml
+++ b/doc/src/sgml/release-9.6.sgml
@@ -401,7 +401,7 @@ This commit is also listed under libpq and psql
Allow GIN>> index builds to
make effective use of
- settings larger than 1GB (Robert Abraham, Teodor Sigaev)
+ settings larger than 1 GB (Robert Abraham, Teodor Sigaev)
@@ -467,7 +467,217 @@ This commit is also listed under libpq and psql
- General Performance
+ Sorting
+
+
+
+
+
+
+ Improve sorting performance by using quicksort, not replacement
+ selection sort, when performing external sort steps (Peter
+ Geoghegan)
+
+
+
+ The new approach makes better use of the CPU> cache
+ for typical cache sizes and data volumes. Where necessary,
+ the behavior can be adjusted via the new configuration parameter
+ .
+
+
+
+
+
+
+ Speed up text sorts where the same string occurs multiple times
+ (Peter Geoghegan)
+
+
+
+
+
+
+ Speed up sorting of uuid>, bytea>, and
+ char(n)> fields by using abbreviated> keys
+ (Peter Geoghegan)
+
+
+
+ Support for abbreviated keys has also been
+ added to the non-default operator classes text_pattern_ops>>,
+ varchar_pattern_ops>, and
+ bpchar_pattern_ops>. Processing of ordered-set
+ aggregates can also now exploit abbreviated keys.
+
+
+
+
+
+
+ Speed up CREATE INDEX CONCURRENTLY> by treating
+ TID>s as 64-bit integers during sorting (Peter
+ Geoghegan)
+
+
+
+
+
+
+
+
+ Locking
+
+
+
+
+
+
+ Reduce contention for the ProcArrayLock> (Amit Kapila,
+ Robert Haas)
+
+
+
+
+
+
+ Improve performance by moving buffer content locks into the buffer
+ descriptors (Andres Freund, Simon Riggs)
+
+
+
+
+
+
+ Replace shared-buffer header spinlocks with atomic operations to
+ improve scalability (Alexander Korotkov, Andres Freund)
+
+
+
+
+
+
+ Use atomic operations, rather than a spinlock, to protect an
+ LWLock>'s wait queue (Andres Freund)
+
+
+
+
+
+
+ Partition the shared hash table freelist to reduce contention on
+ multi-CPU>-socket servers (Aleksander Alekseev)
+
+
+
+
+
+
+ Reduce interlocking on standby servers during the replay of btree
+ index vacuuming operations (Simon Riggs)
+
+
+
+ This change avoids substantial replication delays that sometimes
+ occurred while replaying such operations.
+
+
+
+
+
+
+
+
+ Optimizer Statistics
+
+
+
+
+
+
+ Improve ANALYZE>'s estimates for columns with many nulls
+ (Tomas Vondra, Alex Shulgin)
+
+
+
+ Previously ANALYZE> tended to underestimate the number
+ of non-NULL> distinct values in a column with many
+ NULL>s, and was also inaccurate in computing the
+ most-common values.
+
+
+
+
+
+
+ Improve planner's estimate of the number of distinct values in
+ a query result (Tomas Vondra)
+
+
+
+
+
+
+ Use foreign key relationships to infer selectivity for join
+ predicates (Tomas Vondra, David Rowley)
+
+
+
+ If a table t> has a foreign key restriction, say
+ (a,b) REFERENCES r (x,y)>, then a WHERE>
+ condition such as t.a = r.x AND t.b = r.y> cannot
+ select more than one r> row per t> row.
+ The planner formerly considered AND> conditions
+ to be independent and would often drastically misestimate
+ selectivity as a result. Now it compares the WHERE>
+ conditions to applicable foreign key constraints and produces
+ better estimates.
+
+
+
+
+
+
+
+
+ VACUUM>
@@ -519,19 +729,40 @@ This commit is also listed under libpq and psql
+
+
+
+
+
+ General Performance
+
+
+
- Reduce interlocking on standby servers during the replay of btree
- index vacuuming operations (Simon Riggs)
+ Allow old MVCC> snapshots to be invalidated after a
+ configurable timeout (Kevin Grittner)
- This change avoids substantial replication delays that sometimes
- occurre while replaying such operations.
+ Normally, deleted tuples cannot be physically removed by
+ vacuuming until the last transaction that could see>
+ them is gone. A transaction that stays open for a long
+ time can thus cause considerable table bloat because
+ space cannot be recycled. This feature allows setting
+ a time-based limit, via the new configuration parameter
+ , on how long an
+ MVCC> snapshot is guaranteed to be valid. After that,
+ dead tuples are candidates for removal. A transaction using an
+ outdated snapshot will get an error if it attempts to read a page
+ that potentially could have contained such data.
@@ -576,6 +807,45 @@ This commit is also listed under libpq and psql
+
+ Allow use of an index-only
+ scan on a partial index when the index's WHERE>
+ clause references columns which are not indexed (Tomas Vondra,
+ Kyotaro Horiguchi)
+
+
+
+ For example, CREATE INDEX tidx_partial ON t(b) WHERE a
+ > 0> could not previously be used for an index-only scan by a
+ query that only referenced a> in its WHERE>
+ clause because a> is not an indexed value like
+ b> is.
+
+
+
+
+
+
+
+ Perform checkpoint writes in sorted order (Fabien Coelho,
+ Andres Freund)
+
+
+
+ Previously, checkpoints wrote out dirty pages in whatever order
+ they happen to appear in shared buffers, which usually is nearly
+ random. That performs poorly, especially on rotating media.
+ This change causes checkpoint-driven writes to be done in order
+ by file and block number, and to be balanced across tablespaces.
+
+
+
+
+
-
- Perform checkpoint writes in sorted order (Fabien Coelho,
- Andres Freund)
-
-
-
- Previously, checkpoints wrote out dirty pages in whatever order
- they happen to appear in shared buffers, which usually is nearly
- random. That performs poorly, especially on rotating media.
- This change causes checkpoint-driven writes to be done in order
- by file and block number, and to be balanced across tablespaces.
-
-
-
-
-
-
- Allow old MVCC> snapshots to be invalidated after a
- configurable timeout (Kevin Grittner)
-
-
-
- Normally, deleted tuples cannot be physically removed by
- vacuuming until the last transaction that could see>
- them is gone. A transaction that stays open for a long
- time can thus cause considerable table bloat because
- space cannot be recycled. This feature allows setting
- a time-based limit, via the new configuration parameter
- , on how long an
- MVCC> snapshot is guaranteed to be valid. After that,
- dead tuples are candidates for removal. A transaction using an
- outdated snapshot will get an error if it attempts to read a page
- that potentially could have contained such data.
-
-
-
-
-
-
- Allow use of an index-only
- scan on a partial index when the index's WHERE>
- clause references columns which are not indexed (Tomas Vondra,
- Kyotaro Horiguchi)
-
-
-
- For example, CREATE INDEX tidx_partial ON t(b) WHERE a
- > 0> could not previously be used for an index-only scan by a
- query that only referenced a> in its WHERE>
- clause because a> is not an indexed value like
- b> is.
-
-
-
-
-
-
-
- Use foreign key relationships to infer selectivity for join
- predicates (Tomas Vondra, David Rowley)
-
-
-
- If a table t> has a foreign key restriction, say
- (a,b) REFERENCES r (x,y)>, then a WHERE>
- condition such as t.a = r.x AND t.b = r.y> cannot
- select more than one r> row per t> row.
- The planner formerly considered AND> conditions
- to be independent and would often drastically misestimate
- selectivity as a result. Now it compares the WHERE>
- conditions to applicable foreign key constraints and produces
- better estimates.
-
-
-
-
-
@@ -808,35 +987,6 @@ This commit is also listed under libpq and psql
-
- Improve ANALYZE>'s estimates for columns with many nulls
- (Tomas Vondra, Alex Shulgin)
-
-
-
- Previously ANALYZE> tended to underestimate the number
- of non-NULL> distinct values in a column with many
- NULL>s, and was also inaccurate in computing the
- most-common values.
-
-
-
-
-
-
- Improve planner's estimate of the number of distinct values in
- a query result (Tomas Vondra)
-
-
-
-
-
@@ -851,69 +1001,6 @@ This commit is also listed under libpq and psql
-
- Improve sorting performance by using quicksort, not replacement
- selection sort, when performing external sort steps (Peter
- Geoghegan)
-
-
-
- The new approach makes better use of the CPU> cache
- for typical cache sizes and data volumes. Where necessary,
- the behavior can be adjusted via the new configuration parameter
- .
-
-
-
-
-
-
- Speed up text sorts where the same string occurs multiple times
- (Peter Geoghegan)
-
-
-
-
-
-
- Speed up sorting of uuid>, bytea>, and
- char(n)> fields by using abbreviated> keys
- (Peter Geoghegan)
-
-
-
- Support for abbreviated keys has also been
- added to the non-default operator classes text_pattern_ops>>,
- varchar_pattern_ops>, and
- bpchar_pattern_ops>. Processing of ordered-set
- aggregates can also now exploit abbreviated keys.
-
-
-
-
-
-
- Speed up CREATE INDEX CONCURRENTLY> by treating
- TID>s as 64-bit integers during sorting (Peter
- Geoghegan)
-
-
-
-
-
@@ -924,57 +1011,6 @@ This commit is also listed under libpq and psql
-
- Reduce contention for the ProcArrayLock> (Amit Kapila,
- Robert Haas)
-
-
-
-
-
-
- Improve performance by moving buffer content locks into the buffer
- descriptors (Andres Freund, Simon Riggs)
-
-
-
-
-
-
- Replace shared-buffer header spinlocks with atomic operations to
- improve scalability (Alexander Korotkov, Andres Freund)
-
-
-
-
-
-
- Use atomic operations, rather than a spinlock, to protect an
- LWLock>'s wait queue (Andres Freund)
-
-
-
-
-
-
- Partition the shared hash table freelist to reduce contention on
- multi-CPU>-socket servers (Aleksander Alekseev)
-
-
-
-
-
@@ -1017,6 +1053,21 @@ This commit is also listed under libpq and psql
+
+ Add pg_control_system()>>,
+ pg_control_checkpoint()>,
+ pg_control_recovery()>, and
+ pg_control_init()> functions to expose fields of
+ pg_control> to SQL> (Joe Conway, Michael
+ Paquier)
+
+
+
+
+
@@ -1082,21 +1133,6 @@ This commit is also listed under libpq and psql
-
- Add pg_control_system()>>,
- pg_control_checkpoint()>,
- pg_control_recovery()>, and
- pg_control_init()> functions to expose fields of
- pg_control> to SQL> (Joe Conway, Michael
- Paquier)
-
-
-
-
-
@@ -1219,18 +1255,18 @@ This commit is also listed under libpq and psql
- Add configure option
- This allows the use of systemd> service units of
- type notify>, which greatly simplifies the management
- of PostgreSQL> under systemd>.
+ This behavior is controlled by the new configuration parameter
+ . It can
+ be useful to prevent forgotten transactions from holding locks
+ or preventing vacuum cleanup for too long.
@@ -1247,18 +1283,18 @@ This commit is also listed under libpq and psql
- Allow sessions to be terminated automatically if they are in
- idle-in-transaction state for too long (Vik Fearing)
+ Add configure option
- This behavior is controlled by the new configuration parameter
- . It can
- be useful to prevent forgotten transactions from holding locks
- or preventing vacuum cleanup for too long.
+ This allows the use of systemd> service units of
+ type notify>, which greatly simplifies the management
+ of PostgreSQL> under systemd>.
@@ -1857,6 +1893,30 @@ XXX this is pending backpatch, may need to remove
+
+ Improve full-text search to support searching for phrases, that
+ is, lexemes appearing adjacent to each other in a specific order,
+ or with a specified distance between them (Teodor Sigaev, Oleg
+ Bartunov, Dmitry Ivanov)
+
+
+
+ A phrase-search query can be specified in tsquery>
+ input using the new operators <->> and
+ <N>>. The former means
+ that the lexemes before and after it must appear adjacent to
+ each other in that order. The latter means they must be exactly
+ N> lexemes apart.
+
+
+
+
+
@@ -1917,30 +1977,6 @@ XXX this is pending backpatch, may need to remove
-
- Improve full-text search to support searching for phrases, that
- is, lexemes appearing adjacent to each other in a specific order,
- or with a specified distance between them (Teodor Sigaev, Oleg
- Bartunov, Dmitry Ivanov)
-
-
-
- A phrase-search query can be specified in tsquery>
- input using the new operators <->> and
- <N>>. The former means
- that the lexemes before and after it must appear adjacent to
- each other in that order. The latter means they must be exactly
- N> lexemes apart.
-
-
-
-
-