diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml index 9003b1f6e4f09a2eff528ce24f1e05010d66bdf0..8d7356e27fcfb2c2886aab90f7691f7282068827 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 <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><-></> 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 --> <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><-></> 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-11 [8829af47e] Fix merge affixes for numeric ones 2016-03-17 [f4ceed6ce] Improve support of Hunspell