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
<para>
Allow <link linkend="GIN"><acronym>GIN</></> index builds to
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>
</listitem>
......@@ -467,55 +467,130 @@ This commit is also listed under libpq and psql
</sect4>
<sect4>
<title>General Performance</title>
<title>Sorting</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
2016-04-08 [071180377] Use quicksort, not replacement selection, for external s
2016-03-17 [0011c0091] Improve memory management for external sorts.
-->
<para>
Avoid re-vacuuming pages containing only frozen tuples (Masahiko
Sawada, Robert Haas, Andres Freund)
Improve sorting performance by using quicksort, not replacement
selection sort, when performing external sort steps (Peter
Geoghegan)
</para>
<para>
Formerly, anti-wraparound vacuum had to visit every page of
a table, even pages where there was nothing to do. Now, pages
containing only already-frozen tuples are identified in the table's
visibility map, and can be skipped by vacuum even when doing
transaction wraparound prevention. This should greatly reduce the
cost of maintaining large tables containing mostly-unchanged data.
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>
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.
Speed up text sorts where the same string occurs multiple times
(Peter Geoghegan)
</para>
</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>
Avoid useless heap-truncation attempts during <command>VACUUM</>
(Jeff Janes, Tom Lane)
Speed up sorting of <type>uuid</>, <type>bytea</>, and
<type>char(n)</> fields by using <quote>abbreviated</> keys
(Peter Geoghegan)
</para>
<para>
This change avoids taking an exclusive table lock in some cases
where no truncation is possible. The main benefit comes from
avoiding unnecessary query cancellations on standby servers.
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>
......@@ -531,111 +606,138 @@ This commit is also listed under libpq and psql
<para>
This change avoids substantial replication delays that sometimes
occurre while replaying such operations.
occurred while replaying such operations.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Optimizer Statistics</title>
<itemizedlist>
<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>
Avoid computing <literal>GROUP BY</> columns if they are
functionally dependent on other columns (David Rowley)
Improve <command>ANALYZE</>'s estimates for columns with many nulls
(Tomas Vondra, Alex Shulgin)
</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.
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-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
2016-04-04 [84f9a35e3] Improve estimate of distinct values in estimate_num_grou
-->
<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.
Improve planner's estimate of the number of distinct values in
a query result (Tomas Vondra)
</para>
</listitem>
<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
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>
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)
Use foreign key relationships to infer selectivity for join
predicates (Tomas Vondra, David Rowley)
</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.
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>
<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>
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.
Avoid re-vacuuming pages containing only frozen tuples (Masahiko
Sawada, Robert Haas, Andres Freund)
</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.
Formerly, anti-wraparound vacuum had to visit every page of
a table, even pages where there was nothing to do. Now, pages
containing only already-frozen tuples are identified in the table's
visibility map, and can be skipped by vacuum even when doing
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>
</listitem>
<listitem>
<!--
2016-03-10 [9cd00c457] Checkpoint sorting and balancing.
2015-12-30 [e84290823] Avoid useless truncation attempts during VACUUM.
-->
<para>
Perform checkpoint writes in sorted order (Fabien Coelho,
Andres Freund)
Avoid useless heap-truncation attempts during <command>VACUUM</>
(Jeff Janes, Tom Lane)
</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.
This change avoids taking an exclusive table lock in some cases
where no truncation is possible. The main benefit comes from
avoiding unnecessary query cancellations on standby servers.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>General Performance</title>
<itemizedlist>
<listitem>
<!--
2016-04-08 [848ef42bb] Add the "snapshot too old" feature
......@@ -666,6 +768,45 @@ This commit is also listed under libpq and psql
<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
-->
<para>
......@@ -687,25 +828,63 @@ This commit is also listed under libpq and psql
<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
2016-03-10 [9cd00c457] Checkpoint sorting and balancing.
-->
<para>
Use foreign key relationships to infer selectivity for join
predicates (Tomas Vondra, David Rowley)
Perform checkpoint writes in sorted order (Fabien Coelho,
Andres Freund)
</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.
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-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>
</listitem>
......@@ -808,35 +987,6 @@ This commit is also listed under libpq and psql
<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
-->
<para>
......@@ -851,69 +1001,6 @@ This commit is also listed under libpq and psql
<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.
-->
<para>
......@@ -924,57 +1011,6 @@ This commit is also listed under libpq and psql
<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
-->
<para>
......@@ -1017,6 +1053,21 @@ This commit is also listed under libpq and psql
<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
-->
<para>
......@@ -1082,21 +1133,6 @@ This commit is also listed under libpq and psql
<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()
-->
<para>
......@@ -1219,18 +1255,18 @@ This commit is also listed under libpq and psql
<listitem>
<!--
2016-02-02 [7d17e683f] Add support for systemd service notifications
2016-03-16 [c6dda1f48] Add idle_in_transaction_session_timeout.
-->
<para>
Add configure option <option>--with-systemd</> to enable
calling <function>sd_notify()</> at server start and stop (Peter
Eisentraut)
Allow sessions to be terminated automatically if they are in
idle-in-transaction state for too long (Vik Fearing)
</para>
<para>
This allows the use of <application>systemd</> service units of
type <literal>notify</>, which greatly simplifies the management
of <productname>PostgreSQL</> under <application>systemd</>.
This behavior is controlled by the new configuration parameter
<xref linkend="guc-idle-in-transaction-session-timeout">. It can
be useful to prevent forgotten transactions from holding locks
or preventing vacuum cleanup for too long.
</para>
</listitem>
......@@ -1247,18 +1283,18 @@ This commit is also listed under libpq and psql
<listitem>
<!--
2016-03-16 [c6dda1f48] Add idle_in_transaction_session_timeout.
2016-02-02 [7d17e683f] Add support for systemd service notifications
-->
<para>
Allow sessions to be terminated automatically if they are in
idle-in-transaction state for too long (Vik Fearing)
Add configure option <option>--with-systemd</> to enable
calling <function>sd_notify()</> at server start and stop (Peter
Eisentraut)
</para>
<para>
This behavior is controlled by the new configuration parameter
<xref linkend="guc-idle-in-transaction-session-timeout">. It can
be useful to prevent forgotten transactions from holding locks
or preventing vacuum cleanup for too long.
This allows the use of <application>systemd</> service units of
type <literal>notify</>, which greatly simplifies the management
of <productname>PostgreSQL</> under <application>systemd</>.
</para>
</listitem>
......@@ -1857,6 +1893,30 @@ XXX this is pending backpatch, may need to remove
<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
-->
<para>
......@@ -1917,30 +1977,6 @@ XXX this is pending backpatch, may need to remove
<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-11 [8829af47e] Fix merge affixes for numeric ones
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