Commit d125d257 authored by Bruce Momjian's avatar Bruce Momjian

docs: my third pass over the 9.6 release notes

Backpatch-through: 9.6
parent 0bb51aa9
...@@ -401,7 +401,7 @@ This commit is also listed under libpq and psql ...@@ -401,7 +401,7 @@ This commit is also listed under libpq and psql
<para> <para>
Allow <link linkend="GIN"><acronym>GIN</></> index builds to Allow <link linkend="GIN"><acronym>GIN</></> index builds to
make effective use of <xref linkend="guc-maintenance-work-mem"> make effective use of <xref linkend="guc-maintenance-work-mem">
settings larger than 1GB (Robert Abraham, Teodor Sigaev) settings larger than 1 GB (Robert Abraham, Teodor Sigaev)
</para> </para>
</listitem> </listitem>
...@@ -467,55 +467,130 @@ This commit is also listed under libpq and psql ...@@ -467,55 +467,130 @@ This commit is also listed under libpq and psql
</sect4> </sect4>
<sect4> <sect4>
<title>General Performance</title> <title>Sorting</title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<!-- <!--
2016-03-01 [a892234f8] Change the format of the VM fork to add a second bit per 2016-04-08 [071180377] Use quicksort, not replacement selection, for external s
2016-03-08 [77a1d1e79] Department of second thoughts: remove PD_ALL_FROZEN. 2016-03-17 [0011c0091] Improve memory management for external sorts.
2016-03-10 [fd31cd265] Don't vacuum all-frozen pages.
2016-03-11 [7087166a8] pg_upgrade: Convert old visibility map format to new for
2016-06-17 [ede62e56f] Add VACUUM (DISABLE_PAGE_SKIPPING) for emergencies.
2016-07-18 [eca0f1db1] Clear all-frozen visibilitymap status when locking tuple
2016-08-04 [e7caacf73] Fix hard to hit race condition in heapam's tuple locking
--> -->
<para> <para>
Avoid re-vacuuming pages containing only frozen tuples (Masahiko Improve sorting performance by using quicksort, not replacement
Sawada, Robert Haas, Andres Freund) selection sort, when performing external sort steps (Peter
Geoghegan)
</para> </para>
<para> <para>
Formerly, anti-wraparound vacuum had to visit every page of The new approach makes better use of the <acronym>CPU</> cache
a table, even pages where there was nothing to do. Now, pages for typical cache sizes and data volumes. Where necessary,
containing only already-frozen tuples are identified in the table's the behavior can be adjusted via the new configuration parameter
visibility map, and can be skipped by vacuum even when doing <xref linkend="guc-replacement-sort-tuples">.
transaction wraparound prevention. This should greatly reduce the
cost of maintaining large tables containing mostly-unchanged data.
</para> </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> <para>
If necessary, vacuum can be forced to process all-frozen Speed up text sorts where the same string occurs multiple times
pages using the new <literal>DISABLE_PAGE_SKIPPING</> option. (Peter Geoghegan)
Normally, this should never be needed but it might help in
recovering from visibility-map corruption.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<!-- <!--
2015-12-30 [e84290823] Avoid useless truncation attempts during VACUUM. 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> <para>
Avoid useless heap-truncation attempts during <command>VACUUM</> Speed up sorting of <type>uuid</>, <type>bytea</>, and
(Jeff Janes, Tom Lane) <type>char(n)</> fields by using <quote>abbreviated</> keys
(Peter Geoghegan)
</para> </para>
<para> <para>
This change avoids taking an exclusive table lock in some cases Support for abbreviated keys has also been
where no truncation is possible. The main benefit comes from added to the non-default operator classes <link
avoiding unnecessary query cancellations on standby servers. 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> </para>
</listitem> </listitem>
...@@ -531,111 +606,138 @@ This commit is also listed under libpq and psql ...@@ -531,111 +606,138 @@ This commit is also listed under libpq and psql
<para> <para>
This change avoids substantial replication delays that sometimes This change avoids substantial replication delays that sometimes
occurre while replaying such operations. occurred while replaying such operations.
</para> </para>
</listitem> </listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Optimizer Statistics</title>
<itemizedlist>
<listitem> <listitem>
<!-- <!--
2016-02-11 [d4c3a156c] Remove GROUP BY columns that are functionally dependent 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> <para>
Avoid computing <literal>GROUP BY</> columns if they are Improve <command>ANALYZE</>'s estimates for columns with many nulls
functionally dependent on other columns (David Rowley) (Tomas Vondra, Alex Shulgin)
</para> </para>
<para> <para>
If a <literal>GROUP BY</> clause includes all columns of a Previously <command>ANALYZE</> tended to underestimate the number
non-deferred primary key, as well as other columns of the same of non-<literal>NULL</> distinct values in a column with many
table, those other columns are redundant and can be dropped <literal>NULL</>s, and was also inaccurate in computing the
from the grouping. This saves computation in many common cases. most-common values.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<!-- <!--
2016-03-11 [9118d03a8] When appropriate, postpone SELECT output expressions til 2016-04-04 [84f9a35e3] Improve estimate of distinct values in estimate_num_grou
2016-03-25 [d543170f2] Don't split up SRFs when choosing to postpone SELECT out
--> -->
<para> <para>
When appropriate, postpone evaluation of <command>SELECT</> Improve planner's estimate of the number of distinct values in
output expressions until after an <literal>ORDER BY</> sort a query result (Tomas Vondra)
(Konstantin Knizhnik)
</para>
<para>
This change ensures that volatile or expensive functions in the
output list are executed in the order suggested by <literal>ORDER
BY</>, and that they are not evaluated more times than required
when there is a <literal>LIMIT</> clause. Previously, these
properties held if the ordering was performed by an index scan or
pre-merge-join sort, but not if it was performed by a top-level
sort.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<!-- <!--
2016-03-10 [428b1d6b2] Allow to trigger kernel writeback after a configurable n 2016-04-08 [137805f89] Use Foreign Key relationships to infer multi-column join
2016-04-13 [fa11a09fe] Fix assorted portability issues with using msync() for d 2016-06-07 [77ba61080] Revert "Use Foreign Key relationships to infer multi-col
2016-04-24 [8f91d87d4] Fix documentation & config inconsistencies around 428b1d 2016-06-18 [100340e2d] Restore foreign-key-aware estimation of join relation si
2016-04-26 [72a98a639] Don't open formally non-existent segments in _mdfd_getse
2016-05-04 [a71248708] Fix transient mdsync() errors of truncated relations due
2016-02-16 [7975c5e0a] Allow the WAL writer to flush WAL at a reduced rate.
2016-06-10 [4bc0f165c] Change default of backend_flush_after GUC to 0 (disabled
--> -->
<para> <para>
Where feasible, trigger kernel writeback after a configurable Use foreign key relationships to infer selectivity for join
number of writes, to prevent accumulation of dirty data in kernel predicates (Tomas Vondra, David Rowley)
disk buffers (Fabien Coelho, Andres Freund)
</para> </para>
<para> <para>
<productname>PostgreSQL</> writes data to the kernel's disk cache, If a table <literal>t</> has a foreign key restriction, say
from where it will be flushed to physical storage in due time. <literal>(a,b) REFERENCES r (x,y)</>, then a <literal>WHERE</>
Many operating systems are not smart about managing this and allow condition such as <literal>t.a = r.x AND t.b = r.y</> cannot
large amounts of dirty data to accumulate before deciding to flush select more than one <literal>r</> row per <literal>t</> row.
it all at once, leading to long delays for new I/O requests. The planner formerly considered <literal>AND</> conditions
This change attempts to alleviate this problem by explicitly to be independent and would often drastically misestimate
requesting data flushes after a configurable interval. selectivity as a result. Now it compares the <literal>WHERE</>
conditions to applicable foreign key constraints and produces
better estimates.
</para> </para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><command>VACUUM</></title>
<itemizedlist>
<listitem>
<!--
2016-03-01 [a892234f8] Change the format of the VM fork to add a second bit per
2016-03-08 [77a1d1e79] Department of second thoughts: remove PD_ALL_FROZEN.
2016-03-10 [fd31cd265] Don't vacuum all-frozen pages.
2016-03-11 [7087166a8] pg_upgrade: Convert old visibility map format to new for
2016-06-17 [ede62e56f] Add VACUUM (DISABLE_PAGE_SKIPPING) for emergencies.
2016-07-18 [eca0f1db1] Clear all-frozen visibilitymap status when locking tuple
2016-08-04 [e7caacf73] Fix hard to hit race condition in heapam's tuple locking
-->
<para> <para>
On Linux, <function>sync_file_range()</> is used for this purpose, Avoid re-vacuuming pages containing only frozen tuples (Masahiko
and the feature is on by default on Linux because that function has few Sawada, Robert Haas, Andres Freund)
downsides. This sync capability is also available on other platforms
that have <function>msync()</> or <function>posix_fadvise()</>,
but those interfaces have some undesirable side-effects so the
feature is disabled by default on non-Linux platforms.
</para> </para>
<para> <para>
The new configuration parameters <xref Formerly, anti-wraparound vacuum had to visit every page of
linkend="guc-backend-flush-after">, <xref a table, even pages where there was nothing to do. Now, pages
linkend="guc-bgwriter-flush-after">, <xref containing only already-frozen tuples are identified in the table's
linkend="guc-checkpoint-flush-after">, and <xref visibility map, and can be skipped by vacuum even when doing
linkend="guc-wal-writer-flush-after"> control this behavior. transaction wraparound prevention. This should greatly reduce the
cost of maintaining large tables containing mostly-unchanged data.
</para>
<para>
If necessary, vacuum can be forced to process all-frozen
pages using the new <literal>DISABLE_PAGE_SKIPPING</> option.
Normally, this should never be needed but it might help in
recovering from visibility-map corruption.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<!-- <!--
2016-03-10 [9cd00c457] Checkpoint sorting and balancing. 2015-12-30 [e84290823] Avoid useless truncation attempts during VACUUM.
--> -->
<para> <para>
Perform checkpoint writes in sorted order (Fabien Coelho, Avoid useless heap-truncation attempts during <command>VACUUM</>
Andres Freund) (Jeff Janes, Tom Lane)
</para> </para>
<para> <para>
Previously, checkpoints wrote out dirty pages in whatever order This change avoids taking an exclusive table lock in some cases
they happen to appear in shared buffers, which usually is nearly where no truncation is possible. The main benefit comes from
random. That performs poorly, especially on rotating media. avoiding unnecessary query cancellations on standby servers.
This change causes checkpoint-driven writes to be done in order
by file and block number, and to be balanced across tablespaces.
</para> </para>
</listitem> </listitem>
</itemizedlist>
</sect4>
<sect4>
<title>General Performance</title>
<itemizedlist>
<listitem> <listitem>
<!-- <!--
2016-04-08 [848ef42bb] Add the "snapshot too old" feature 2016-04-08 [848ef42bb] Add the "snapshot too old" feature
...@@ -666,6 +768,45 @@ This commit is also listed under libpq and psql ...@@ -666,6 +768,45 @@ This commit is also listed under libpq and psql
<listitem> <listitem>
<!-- <!--
2016-02-11 [d4c3a156c] Remove GROUP BY columns that are functionally dependent
-->
<para>
Avoid computing <literal>GROUP BY</> columns if they are
functionally dependent on other columns (David Rowley)
</para>
<para>
If a <literal>GROUP BY</> clause includes all columns of a
non-deferred primary key, as well as other columns of the same
table, those other columns are redundant and can be dropped
from the grouping. This saves computation in many common cases.
</para>
</listitem>
<listitem>
<!--
2016-03-11 [9118d03a8] When appropriate, postpone SELECT output expressions til
2016-03-25 [d543170f2] Don't split up SRFs when choosing to postpone SELECT out
-->
<para>
When appropriate, postpone evaluation of <command>SELECT</>
output expressions until after an <literal>ORDER BY</> sort
(Konstantin Knizhnik)
</para>
<para>
This change ensures that volatile or expensive functions in the
output list are executed in the order suggested by <literal>ORDER
BY</>, and that they are not evaluated more times than required
when there is a <literal>LIMIT</> clause. Previously, these
properties held if the ordering was performed by an index scan or
pre-merge-join sort, but not if it was performed by a top-level
sort.
</para>
</listitem>
<listitem>
<!--
2016-03-31 [f9aefcb91] Support using index-only scans with partial indexes in m 2016-03-31 [f9aefcb91] Support using index-only scans with partial indexes in m
--> -->
<para> <para>
...@@ -687,25 +828,63 @@ This commit is also listed under libpq and psql ...@@ -687,25 +828,63 @@ This commit is also listed under libpq and psql
<listitem> <listitem>
<!-- <!--
2016-04-08 [137805f89] Use Foreign Key relationships to infer multi-column join 2016-03-10 [9cd00c457] Checkpoint sorting and balancing.
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> <para>
Use foreign key relationships to infer selectivity for join Perform checkpoint writes in sorted order (Fabien Coelho,
predicates (Tomas Vondra, David Rowley) Andres Freund)
</para> </para>
<para> <para>
If a table <literal>t</> has a foreign key restriction, say Previously, checkpoints wrote out dirty pages in whatever order
<literal>(a,b) REFERENCES r (x,y)</>, then a <literal>WHERE</> they happen to appear in shared buffers, which usually is nearly
condition such as <literal>t.a = r.x AND t.b = r.y</> cannot random. That performs poorly, especially on rotating media.
select more than one <literal>r</> row per <literal>t</> row. This change causes checkpoint-driven writes to be done in order
The planner formerly considered <literal>AND</> conditions by file and block number, and to be balanced across tablespaces.
to be independent and would often drastically misestimate </para>
selectivity as a result. Now it compares the <literal>WHERE</> </listitem>
conditions to applicable foreign key constraints and produces
better estimates. <listitem>
<!--
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-24 [8f91d87d4] Fix documentation & config inconsistencies around 428b1d
2016-04-26 [72a98a639] Don't open formally non-existent segments in _mdfd_getse
2016-05-04 [a71248708] Fix transient mdsync() errors of truncated relations due
2016-02-16 [7975c5e0a] Allow the WAL writer to flush WAL at a reduced rate.
2016-06-10 [4bc0f165c] Change default of backend_flush_after GUC to 0 (disabled
-->
<para>
Where feasible, trigger kernel writeback after a configurable
number of writes, to prevent accumulation of dirty data in kernel
disk buffers (Fabien Coelho, Andres Freund)
</para>
<para>
<productname>PostgreSQL</> writes data to the kernel's disk cache,
from where it will be flushed to physical storage in due time.
Many operating systems are not smart about managing this and allow
large amounts of dirty data to accumulate before deciding to flush
it all at once, leading to long delays for new I/O requests.
This change attempts to alleviate this problem by explicitly
requesting data flushes after a configurable interval.
</para>
<para>
On Linux, <function>sync_file_range()</> is used for this purpose,
and the feature is on by default on Linux because that function has few
downsides. This sync capability is also available on other platforms
that have <function>msync()</> or <function>posix_fadvise()</>,
but those interfaces have some undesirable side-effects so the
feature is disabled by default on non-Linux platforms.
</para>
<para>
The new configuration parameters <xref
linkend="guc-backend-flush-after">, <xref
linkend="guc-bgwriter-flush-after">, <xref
linkend="guc-checkpoint-flush-after">, and <xref
linkend="guc-wal-writer-flush-after"> control this behavior.
</para> </para>
</listitem> </listitem>
...@@ -808,35 +987,6 @@ This commit is also listed under libpq and psql ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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>&lt;-&gt;</> and
<literal>&lt;<replaceable>N</>&gt;</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 ...@@ -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>&lt;-&gt;</> and
<literal>&lt;<replaceable>N</>&gt;</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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment