mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
docs: my third pass over the 9.6 release notes
Backpatch-through: 9.6
This commit is contained in:
parent
f1222ad61a
commit
dd028e904c
@ -467,7 +467,217 @@ This commit is also listed under libpq and psql
|
|||||||
</sect4>
|
</sect4>
|
||||||
|
|
||||||
<sect4>
|
<sect4>
|
||||||
<title>General Performance</title>
|
<title>Sorting</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-04-08 [071180377] Use quicksort, not replacement selection, for external s
|
||||||
|
2016-03-17 [0011c0091] Improve memory management for external sorts.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Improve sorting performance by using quicksort, not replacement
|
||||||
|
selection sort, when performing external sort steps (Peter
|
||||||
|
Geoghegan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The new approach makes better use of the <acronym>CPU</> cache
|
||||||
|
for typical cache sizes and data volumes. Where necessary,
|
||||||
|
the behavior can be adjusted via the new configuration parameter
|
||||||
|
<xref linkend="guc-replacement-sort-tuples">.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2015-10-09 [0e57b4d8b] Speed up text sorts where the same strings occur multipl
|
||||||
|
2015-10-20 [5be94a9eb] Be a bit more rigorous about how we cache strcoll and st
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Speed up text sorts where the same string occurs multiple times
|
||||||
|
(Peter Geoghegan)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2015-11-06 [a76ef15d9] Add sort support routine for the UUID data type.
|
||||||
|
2016-02-03 [b47b4dbf6] Extend sortsupport for text to more opclasses.
|
||||||
|
2016-02-17 [f1f5ec1ef] Reuse abbreviated keys in ordered [set] aggregates.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Speed up sorting of <type>uuid</>, <type>bytea</>, and
|
||||||
|
<type>char(n)</> fields by using <quote>abbreviated</> keys
|
||||||
|
(Peter Geoghegan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Support for abbreviated keys has also been
|
||||||
|
added to the non-default operator classes <link
|
||||||
|
linkend="indexes-opclass"><literal>text_pattern_ops</></>,
|
||||||
|
<literal>varchar_pattern_ops</>, and
|
||||||
|
<literal>bpchar_pattern_ops</>. Processing of ordered-set
|
||||||
|
aggregates can also now exploit abbreviated keys.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2015-12-16 [b648b7034] Speed up CREATE INDEX CONCURRENTLY's TID sort.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Speed up <command>CREATE INDEX CONCURRENTLY</> by treating
|
||||||
|
<acronym>TID</>s as 64-bit integers during sorting (Peter
|
||||||
|
Geoghegan)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title>Locking</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2015-08-06 [0e141c0fb] Reduce ProcArrayLock contention by removing backends in
|
||||||
|
2015-09-03 [4aec49899] Assorted code review for recent ProcArrayLock patch.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Reduce contention for the <literal>ProcArrayLock</> (Amit Kapila,
|
||||||
|
Robert Haas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2015-12-15 [6150a1b08] Move buffer I/O and content LWLocks out of the main tran
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Improve performance by moving buffer content locks into the buffer
|
||||||
|
descriptors (Andres Freund, Simon Riggs)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-04-10 [48354581a] Allow Pin/UnpinBuffer to operate in a lockfree manner.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Replace shared-buffer header spinlocks with atomic operations to
|
||||||
|
improve scalability (Alexander Korotkov, Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-04-10 [008608b9d] Avoid the use of a separate spinlock to protect a LWLock
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Use atomic operations, rather than a spinlock, to protect an
|
||||||
|
<literal>LWLock</>'s wait queue (Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-03-23 [44ca4022f] Partition the freelist for shared dynahash tables.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Partition the shared hash table freelist to reduce contention on
|
||||||
|
multi-<acronym>CPU</>-socket servers (Aleksander Alekseev)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-01-09 [687f2cd7a] Avoid pin scan for replay of XLOG_BTREE_VACUUM
|
||||||
|
2016-04-03 [3e4b7d879] Avoid pin scan for replay of XLOG_BTREE_VACUUM in all ca
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Reduce interlocking on standby servers during the replay of btree
|
||||||
|
index vacuuming operations (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change avoids substantial replication delays that sometimes
|
||||||
|
occurred while replaying such operations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title>Optimizer Statistics</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-04-01 [be4b4dc75] Omit null rows when applying the Haas-Stokes estimator f
|
||||||
|
2016-04-01 [3d3bf62f3] Omit null rows when setting the threshold for what's a m
|
||||||
|
2016-04-04 [391159e03] Partially revert commit 3d3bf62f30200500637b24fdb7b992a9
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Improve <command>ANALYZE</>'s estimates for columns with many nulls
|
||||||
|
(Tomas Vondra, Alex Shulgin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously <command>ANALYZE</> tended to underestimate the number
|
||||||
|
of non-<literal>NULL</> distinct values in a column with many
|
||||||
|
<literal>NULL</>s, and was also inaccurate in computing the
|
||||||
|
most-common values.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-04-04 [84f9a35e3] Improve estimate of distinct values in estimate_num_grou
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Improve planner's estimate of the number of distinct values in
|
||||||
|
a query result (Tomas Vondra)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-04-08 [137805f89] Use Foreign Key relationships to infer multi-column join
|
||||||
|
2016-06-07 [77ba61080] Revert "Use Foreign Key relationships to infer multi-col
|
||||||
|
2016-06-18 [100340e2d] Restore foreign-key-aware estimation of join relation si
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Use foreign key relationships to infer selectivity for join
|
||||||
|
predicates (Tomas Vondra, David Rowley)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If a table <literal>t</> has a foreign key restriction, say
|
||||||
|
<literal>(a,b) REFERENCES r (x,y)</>, then a <literal>WHERE</>
|
||||||
|
condition such as <literal>t.a = r.x AND t.b = r.y</> cannot
|
||||||
|
select more than one <literal>r</> row per <literal>t</> row.
|
||||||
|
The planner formerly considered <literal>AND</> conditions
|
||||||
|
to be independent and would often drastically misestimate
|
||||||
|
selectivity as a result. Now it compares the <literal>WHERE</>
|
||||||
|
conditions to applicable foreign key constraints and produces
|
||||||
|
better estimates.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title><command>VACUUM</></title>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
@ -519,19 +729,40 @@ This commit is also listed under libpq and psql
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title>General Performance</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-01-09 [687f2cd7a] Avoid pin scan for replay of XLOG_BTREE_VACUUM
|
2016-04-08 [848ef42bb] Add the "snapshot too old" feature
|
||||||
2016-04-03 [3e4b7d879] Avoid pin scan for replay of XLOG_BTREE_VACUUM in all ca
|
2016-05-06 [2cc41acd8] Fix hash index vs "snapshot too old" problemms
|
||||||
|
2016-05-06 [7e3da1c47] Mitigate "snapshot too old" performance regression on NU
|
||||||
|
2016-08-03 [3e2f3c2e4] Prevent "snapshot too old" from trying to return pruned
|
||||||
|
2016-08-07 [9ee1cf04a] Fix TOAST access failure in RETURNING queries.
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
Reduce interlocking on standby servers during the replay of btree
|
Allow old <acronym>MVCC</> snapshots to be invalidated after a
|
||||||
index vacuuming operations (Simon Riggs)
|
configurable timeout (Kevin Grittner)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This change avoids substantial replication delays that sometimes
|
Normally, deleted tuples cannot be physically removed by
|
||||||
occurre while replaying such operations.
|
vacuuming until the last transaction that could <quote>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
|
||||||
|
<xref linkend="guc-old-snapshot-threshold">, on how long an
|
||||||
|
<acronym>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.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -576,6 +807,45 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
|
2016-03-31 [f9aefcb91] Support using index-only scans with partial indexes in m
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Allow use of an <link linkend="indexes-index-only-scans">index-only
|
||||||
|
scan</link> on a partial index when the index's <literal>WHERE</>
|
||||||
|
clause references columns which are not indexed (Tomas Vondra,
|
||||||
|
Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For example, <command>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 <literal>a</> in its <literal>WHERE</>
|
||||||
|
clause because <literal>a</> is not an indexed value like
|
||||||
|
<literal>b</> is.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
2016-03-10 [9cd00c457] Checkpoint sorting and balancing.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Perform checkpoint writes in sorted order (Fabien Coelho,
|
||||||
|
Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
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.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
2016-03-10 [428b1d6b2] Allow to trigger kernel writeback after a configurable n
|
2016-03-10 [428b1d6b2] Allow to trigger kernel writeback after a configurable n
|
||||||
2016-04-13 [fa11a09fe] Fix assorted portability issues with using msync() for d
|
2016-04-13 [fa11a09fe] Fix assorted portability issues with using msync() for d
|
||||||
2016-04-24 [8f91d87d4] Fix documentation & config inconsistencies around 428b1d
|
2016-04-24 [8f91d87d4] Fix documentation & config inconsistencies around 428b1d
|
||||||
@ -620,97 +890,6 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-03-10 [9cd00c457] Checkpoint sorting and balancing.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Perform checkpoint writes in sorted order (Fabien Coelho,
|
|
||||||
Andres Freund)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
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.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-08 [848ef42bb] Add the "snapshot too old" feature
|
|
||||||
2016-05-06 [2cc41acd8] Fix hash index vs "snapshot too old" problemms
|
|
||||||
2016-05-06 [7e3da1c47] Mitigate "snapshot too old" performance regression on NU
|
|
||||||
2016-08-03 [3e2f3c2e4] Prevent "snapshot too old" from trying to return pruned
|
|
||||||
2016-08-07 [9ee1cf04a] Fix TOAST access failure in RETURNING queries.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Allow old <acronym>MVCC</> snapshots to be invalidated after a
|
|
||||||
configurable timeout (Kevin Grittner)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Normally, deleted tuples cannot be physically removed by
|
|
||||||
vacuuming until the last transaction that could <quote>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
|
|
||||||
<xref linkend="guc-old-snapshot-threshold">, on how long an
|
|
||||||
<acronym>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.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-03-31 [f9aefcb91] Support using index-only scans with partial indexes in m
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Allow use of an <link linkend="indexes-index-only-scans">index-only
|
|
||||||
scan</link> on a partial index when the index's <literal>WHERE</>
|
|
||||||
clause references columns which are not indexed (Tomas Vondra,
|
|
||||||
Kyotaro Horiguchi)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
For example, <command>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 <literal>a</> in its <literal>WHERE</>
|
|
||||||
clause because <literal>a</> is not an indexed value like
|
|
||||||
<literal>b</> is.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-08 [137805f89] Use Foreign Key relationships to infer multi-column join
|
|
||||||
2016-06-07 [77ba61080] Revert "Use Foreign Key relationships to infer multi-col
|
|
||||||
2016-06-18 [100340e2d] Restore foreign-key-aware estimation of join relation si
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Use foreign key relationships to infer selectivity for join
|
|
||||||
predicates (Tomas Vondra, David Rowley)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
If a table <literal>t</> has a foreign key restriction, say
|
|
||||||
<literal>(a,b) REFERENCES r (x,y)</>, then a <literal>WHERE</>
|
|
||||||
condition such as <literal>t.a = r.x AND t.b = r.y</> cannot
|
|
||||||
select more than one <literal>r</> row per <literal>t</> row.
|
|
||||||
The planner formerly considered <literal>AND</> conditions
|
|
||||||
to be independent and would often drastically misestimate
|
|
||||||
selectivity as a result. Now it compares the <literal>WHERE</>
|
|
||||||
conditions to applicable foreign key constraints and produces
|
|
||||||
better estimates.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2015-08-04 [804163bc2] Share transition state between different aggregates when
|
2015-08-04 [804163bc2] Share transition state between different aggregates when
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -808,35 +987,6 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-04-01 [be4b4dc75] Omit null rows when applying the Haas-Stokes estimator f
|
|
||||||
2016-04-01 [3d3bf62f3] Omit null rows when setting the threshold for what's a m
|
|
||||||
2016-04-04 [391159e03] Partially revert commit 3d3bf62f30200500637b24fdb7b992a9
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Improve <command>ANALYZE</>'s estimates for columns with many nulls
|
|
||||||
(Tomas Vondra, Alex Shulgin)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Previously <command>ANALYZE</> tended to underestimate the number
|
|
||||||
of non-<literal>NULL</> distinct values in a column with many
|
|
||||||
<literal>NULL</>s, and was also inaccurate in computing the
|
|
||||||
most-common values.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-04 [84f9a35e3] Improve estimate of distinct values in estimate_num_grou
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Improve planner's estimate of the number of distinct values in
|
|
||||||
a query result (Tomas Vondra)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-08 [719c84c1b] Extend relations multiple blocks at a time to improve sc
|
2016-04-08 [719c84c1b] Extend relations multiple blocks at a time to improve sc
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -851,69 +1001,6 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-04-08 [071180377] Use quicksort, not replacement selection, for external s
|
|
||||||
2016-03-17 [0011c0091] Improve memory management for external sorts.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Improve sorting performance by using quicksort, not replacement
|
|
||||||
selection sort, when performing external sort steps (Peter
|
|
||||||
Geoghegan)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The new approach makes better use of the <acronym>CPU</> cache
|
|
||||||
for typical cache sizes and data volumes. Where necessary,
|
|
||||||
the behavior can be adjusted via the new configuration parameter
|
|
||||||
<xref linkend="guc-replacement-sort-tuples">.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2015-10-09 [0e57b4d8b] Speed up text sorts where the same strings occur multipl
|
|
||||||
2015-10-20 [5be94a9eb] Be a bit more rigorous about how we cache strcoll and st
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Speed up text sorts where the same string occurs multiple times
|
|
||||||
(Peter Geoghegan)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2015-11-06 [a76ef15d9] Add sort support routine for the UUID data type.
|
|
||||||
2016-02-03 [b47b4dbf6] Extend sortsupport for text to more opclasses.
|
|
||||||
2016-02-17 [f1f5ec1ef] Reuse abbreviated keys in ordered [set] aggregates.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Speed up sorting of <type>uuid</>, <type>bytea</>, and
|
|
||||||
<type>char(n)</> fields by using <quote>abbreviated</> keys
|
|
||||||
(Peter Geoghegan)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Support for abbreviated keys has also been
|
|
||||||
added to the non-default operator classes <link
|
|
||||||
linkend="indexes-opclass"><literal>text_pattern_ops</></>,
|
|
||||||
<literal>varchar_pattern_ops</>, and
|
|
||||||
<literal>bpchar_pattern_ops</>. Processing of ordered-set
|
|
||||||
aggregates can also now exploit abbreviated keys.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2015-12-16 [b648b7034] Speed up CREATE INDEX CONCURRENTLY's TID sort.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Speed up <command>CREATE INDEX CONCURRENTLY</> by treating
|
|
||||||
<acronym>TID</>s as 64-bit integers during sorting (Peter
|
|
||||||
Geoghegan)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-08 [5364b357f] Increase maximum number of clog buffers.
|
2016-04-08 [5364b357f] Increase maximum number of clog buffers.
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -924,57 +1011,6 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2015-08-06 [0e141c0fb] Reduce ProcArrayLock contention by removing backends in
|
|
||||||
2015-09-03 [4aec49899] Assorted code review for recent ProcArrayLock patch.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Reduce contention for the <literal>ProcArrayLock</> (Amit Kapila,
|
|
||||||
Robert Haas)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2015-12-15 [6150a1b08] Move buffer I/O and content LWLocks out of the main tran
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Improve performance by moving buffer content locks into the buffer
|
|
||||||
descriptors (Andres Freund, Simon Riggs)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-10 [48354581a] Allow Pin/UnpinBuffer to operate in a lockfree manner.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Replace shared-buffer header spinlocks with atomic operations to
|
|
||||||
improve scalability (Alexander Korotkov, Andres Freund)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-04-10 [008608b9d] Avoid the use of a separate spinlock to protect a LWLock
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Use atomic operations, rather than a spinlock, to protect an
|
|
||||||
<literal>LWLock</>'s wait queue (Andres Freund)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-03-23 [44ca4022f] Partition the freelist for shared dynahash tables.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Partition the shared hash table freelist to reduce contention on
|
|
||||||
multi-<acronym>CPU</>-socket servers (Aleksander Alekseev)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2015-07-05 [6c82d8d1f] Further reduce overhead for passing plpgsql variables to
|
2015-07-05 [6c82d8d1f] Further reduce overhead for passing plpgsql variables to
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -1017,6 +1053,21 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
|
2016-03-05 [dc7d70ea0] Expose control file data via SQL accessible functions.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Add <link
|
||||||
|
linkend="functions-controldata"><function>pg_control_system()</></>,
|
||||||
|
<function>pg_control_checkpoint()</>,
|
||||||
|
<function>pg_control_recovery()</>, and
|
||||||
|
<function>pg_control_init()</> functions to expose fields of
|
||||||
|
<filename>pg_control</> to <acronym>SQL</> (Joe Conway, Michael
|
||||||
|
Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
2016-02-17 [a5c43b886] Add new system view, pg_config
|
2016-02-17 [a5c43b886] Add new system view, pg_config
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -1082,21 +1133,6 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-03-05 [dc7d70ea0] Expose control file data via SQL accessible functions.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
Add <link
|
|
||||||
linkend="functions-controldata"><function>pg_control_system()</></>,
|
|
||||||
<function>pg_control_checkpoint()</>,
|
|
||||||
<function>pg_control_recovery()</>, and
|
|
||||||
<function>pg_control_init()</> functions to expose fields of
|
|
||||||
<filename>pg_control</> to <acronym>SQL</> (Joe Conway, Michael
|
|
||||||
Paquier)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-01-12 [e63bb4549] Add new user fn pg_current_xlog_flush_location()
|
2016-01-12 [e63bb4549] Add new user fn pg_current_xlog_flush_location()
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -1219,18 +1255,18 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-02-02 [7d17e683f] Add support for systemd service notifications
|
2016-03-16 [c6dda1f48] Add idle_in_transaction_session_timeout.
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
Add configure option <option>--with-systemd</> to enable
|
Allow sessions to be terminated automatically if they are in
|
||||||
calling <function>sd_notify()</> at server start and stop (Peter
|
idle-in-transaction state for too long (Vik Fearing)
|
||||||
Eisentraut)
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This allows the use of <application>systemd</> service units of
|
This behavior is controlled by the new configuration parameter
|
||||||
type <literal>notify</>, which greatly simplifies the management
|
<xref linkend="guc-idle-in-transaction-session-timeout">. It can
|
||||||
of <productname>PostgreSQL</> under <application>systemd</>.
|
be useful to prevent forgotten transactions from holding locks
|
||||||
|
or preventing vacuum cleanup for too long.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1247,18 +1283,18 @@ This commit is also listed under libpq and psql
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-03-16 [c6dda1f48] Add idle_in_transaction_session_timeout.
|
2016-02-02 [7d17e683f] Add support for systemd service notifications
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
Allow sessions to be terminated automatically if they are in
|
Add configure option <option>--with-systemd</> to enable
|
||||||
idle-in-transaction state for too long (Vik Fearing)
|
calling <function>sd_notify()</> at server start and stop (Peter
|
||||||
|
Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This behavior is controlled by the new configuration parameter
|
This allows the use of <application>systemd</> service units of
|
||||||
<xref linkend="guc-idle-in-transaction-session-timeout">. It can
|
type <literal>notify</>, which greatly simplifies the management
|
||||||
be useful to prevent forgotten transactions from holding locks
|
of <productname>PostgreSQL</> under <application>systemd</>.
|
||||||
or preventing vacuum cleanup for too long.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1857,6 +1893,30 @@ XXX this is pending backpatch, may need to remove
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
|
2016-04-07 [bb140506d] Phrase full text search.
|
||||||
|
2016-06-27 [028350f61] Make exact distance match for FTS phrase operator
|
||||||
|
2016-06-27 [3dbbd0f02] Do not fallback to AND for FTS phrase operator.
|
||||||
|
2016-06-27 [6734a1cac] Change predecence of phrase operator.
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
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)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A phrase-search query can be specified in <type>tsquery</>
|
||||||
|
input using the new operators <literal><-></> and
|
||||||
|
<literal><<replaceable>N</>></literal>. 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
|
||||||
|
<replaceable>N</> lexemes apart.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
2015-12-22 [6efbded6e] Allow omitting one or both boundaries in an array slice
|
2015-12-22 [6efbded6e] Allow omitting one or both boundaries in an array slice
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
@ -1917,30 +1977,6 @@ XXX this is pending backpatch, may need to remove
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
2016-04-07 [bb140506d] Phrase full text search.
|
|
||||||
2016-06-27 [028350f61] Make exact distance match for FTS phrase operator
|
|
||||||
2016-06-27 [3dbbd0f02] Do not fallback to AND for FTS phrase operator.
|
|
||||||
2016-06-27 [6734a1cac] Change predecence of phrase operator.
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
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)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
A phrase-search query can be specified in <type>tsquery</>
|
|
||||||
input using the new operators <literal><-></> and
|
|
||||||
<literal><<replaceable>N</>></literal>. 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
|
|
||||||
<replaceable>N</> lexemes apart.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<!--
|
|
||||||
2016-03-04 [d78a7d9c7] Improve support of Hunspell in ispell dictionary.
|
2016-03-04 [d78a7d9c7] Improve support of Hunspell in ispell dictionary.
|
||||||
2016-03-11 [8829af47e] Fix merge affixes for numeric ones
|
2016-03-11 [8829af47e] Fix merge affixes for numeric ones
|
||||||
2016-03-17 [f4ceed6ce] Improve support of Hunspell
|
2016-03-17 [f4ceed6ce] Improve support of Hunspell
|
||||||
|
Loading…
x
Reference in New Issue
Block a user