diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml index 6c4a96c8e48..1144f50a7b2 100644 --- a/doc/src/sgml/release-9.6.sgml +++ b/doc/src/sgml/release-9.6.sgml @@ -29,34 +29,34 @@ - Elimination of repetitive scanning of old data by autovacuum + Eliminate repetitive scanning of old data by autovacuum - Synchronous replication now allows multiple standby servers for + Synchronous replication now allows multiple standby servers, for increased reliability - Full-text search for phrases + Allow Full-text search for phrases (multiple adjacent words) - Support for remote joins, sorts, and updates - in postgres_fdw + Support foreign/remote joins, sorts, and UPDATEs in + postgres_fdw Substantial performance improvements, especially in the area of - improving scalability on many-CPU servers + scalability on multi-CPU-socket servers @@ -73,9 +73,9 @@ Migration to Version 9.6 - A dump/restore using , or use - of , is required for those wishing to migrate - data from any previous release. + A dump/restore using , or use of , is required for those wishing to migrate data + from any previous release. @@ -85,11 +85,221 @@ - - - To be filled in, but issues are called out in relevant sections below - - + + + + Change the column name in the + information_schema.routines + view from result_cast_character_set_name + to result_cast_char_set_name (Clément + Prévost) + + + + The SQL:2011 standard specifies the longer name, but that appears + to be a mistake, because adjacent column names use the shorter + style, as do other information_schema views. + + + + + + + Improve the pg_stat_activity + view's information about what a process is waiting for (Amit + Kapila, Ildus Kurbangaliev) + + + + Historically a process has only been shown as waiting if it was + waiting for a heavy weight lock. Now waits for light weight locks + and buffer pins are also shown in pg_stat_activity. + Also, the type of lock being waited for is now visible. + These changes replace the waiting column with + wait_event_type and wait_event. + + + + + + + In to_char(), + do not count a minus sign (when needed) as part of the field + width for time-related fields (Bruce Momjian) + + + + For example, to_char('-4 years'::interval, 'YY') + now returns -04, rather than -4. + + + + + + + Make extract() behave + more reasonably with infinite inputs (Vitaly Burovoy) + + + + Historically the extract() function just returned + zero given an infinite timestamp, regardless of the given + unit name. Make it return infinity + or -infinity as appropriate when the + requested field is one that is monotonically increasing (e.g, + year, epoch), or NULL when + it is not (e.g., day, hour). Also, + throw the expected error for bad unit names. + + + + + + + Remove PL/pgSQL's feature that suppressed the + innermost line of CONTEXT for messages emitted by + RAISE commands (Pavel Stehule) + + + + This ancient backwards-compatibility hack was agreed to have + outlived its usefulness. + + + + + + + Fix text search parser to allow leading digits in email + and host tokens (Artur Zakirov) + + + + In most cases this will result in few changes in the parsing of + text. But if you have data where such addresses occur frequently, + it may be worth rebuilding dependent tsvector columns + and indexes so that addresses of this form will be found properly + by text searches. + + + + + + + Extend contrib/unaccent's standard + unaccent.rules file to handle all diacritics + known to Unicode, and expand ligatures correctly (Thomas Munro, + Léonard Benedetti) + + + + The previous version omitted some less-common letters with + diacritic marks. It now also expands ligatures into separate + letters. Installations that use this rules file may wish to + rebuild tsvector columns and indexes that depend on + the result. + + + + + + + Remove the long-deprecated + CREATEUSER/NOCREATEUSER options from + CREATE ROLE and allied commands (Tom Lane) + + + + CREATEUSER actually meant SUPERUSER, + for ancient backwards-compatibility reasons. This has been a + constant source of confusion for people who (reasonably) expect + it to mean CREATEROLE. It has been deprecated for + ten years now, so fix the problem by removing it. + + + + + + + Treat role names beginning with pg_ as reserved + (Stephen Frost) + + + + User creation of such role names is now disallowed. This prevents + conflicts with built-in roles created by initdb. + + + + + + + Support multiple and + command-line options (Pavel Stehule, Catalin Iacob) + + + + To allow this with sane behavior, one backwards incompatibility + had to be introduced: no longer implies + . + + + + + + + Improve pg_restore's switch to + match all types of relations, not only plain tables (Craig Ringer) + + + + + + + Change the display format of NextXID in + pg_controldata and related places (Joe Conway, + Bruce Momjian) + + + + Display epoch-and-transaction-ID values in the format + number:number. + The previous format + number/number was + confusingly similar to that used for LSNs. + + @@ -140,26 +350,28 @@ 2016-06-16 [75be66464] Invent min_parallel_relation_size GUC to replace a hard- --> - Parallel queries (Robert Haas, Amit Kapila, David Rowley, many others) + Parallel queries (Robert Haas, Amit Kapila, David Rowley, + many others) - With 9.6, PostgreSQL introduces initial support for - parallel execution of large queries. Only strictly read-only queries - where the driving table is accessed via a sequential scan can be - parallelized. Hash joins and nested loops can be performed in - parallel, as can aggregation (for supported aggregates). Much - remains to be done, but this is already a useful set of features. + With 9.6, PostgreSQL introduces initial support + for parallel execution of large queries. Only strictly read-only + queries where the driving table is accessed via a sequential scan + can be parallelized. Hash joins and nested loops can be performed + in parallel, as can aggregation (for supported aggregates). + Much remains to be done, but this is already a useful set of + features. - Use of parallel query execution can be controlled through the new - configuration parameters - , + Use of parallel query execution can be controlled + through the new configuration parameters , , - , - , and - . + , , and . @@ -168,8 +380,8 @@ 2015-09-16 [7aea8e4f2] Determine whether it's safe to attempt a parallel plan f --> - Provide infrastructure for marking functions as parallel-safe or not - (Robert Haas, Amit Kapila) + Provide infrastructure for marking functions as parallel-safe or + not (Robert Haas, Amit Kapila) @@ -187,9 +399,9 @@ 2015-09-02 [30bb26b5e] Allow usage of huge maintenance_work_mem for GIN build. --> - Allow GIN index builds to make effective use - of maintenance_work_mem settings larger than 1GB - (Robert Abraham, Teodor Sigaev) + Allow GIN index builds to + make effective use of + settings larger than 1GB (Robert Abraham, Teodor Sigaev) @@ -200,7 +412,7 @@ --> Add pages deleted from a GIN index's pending list to the free space - map immediately, to reduce bloat if the table isn't vacuumed often + map immediately, to reduce bloat if the table is not vacuumed often (Jeff Janes, Teodor Sigaev) @@ -210,9 +422,11 @@ 2016-01-28 [7f46eaf03] Add gin_clean_pending_list function to clean up GIN pend --> - Add gin_clean_pending_list() function to allow manual - invocation of pending-list cleanup for a GIN index, separately from - vacuuming or analyzing the parent table (Jeff Janes) + Add gin_clean_pending_list() + function to allow manual invocation of pending-list cleanup for a + GIN index, separately from vacuuming or analyzing the parent table + (Jeff Janes) @@ -222,14 +436,15 @@ 2015-09-17 [22f519c92] Fix bug introduced by microvacuum for GiST --> - Improve handling of dead index tuples in GiST indexes - (Anastasia Lubennikova) + Improve handling of dead index tuples in GiST indexes (Anastasia Lubennikova) Dead index tuples are now marked as such when an index scan notices - that the corresponding heap tuple is dead; and when inserting tuples, - marked-dead tuples will be removed if needed to make space on the page. + that the corresponding heap tuple is dead. When inserting tuples, + marked-dead tuples will be removed if needed to make space on + the page. @@ -238,8 +453,8 @@ 2016-03-30 [acdf2a8b3] Introduce SP-GiST operator class over box. --> - Add an SP-GiST operator class for type box - (Alexander Lebedev) + Add an SP-GiST operator class for + type box (Alexander Lebedev) @@ -263,24 +478,24 @@ 2016-08-04 [e7caacf73] Fix hard to hit race condition in heapam's tuple locking --> - Avoid re-vacuuming pages containing only frozen tuples - (Masahiko Sawada, Robert Haas, Andres Freund) + Avoid re-vacuuming pages containing only frozen tuples (Masahiko + Sawada, Robert Haas, Andres Freund) - Formerly, an anti-wraparound vacuum had to visit every page of a - table whether or not there was anything to do there. Now, pages + 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 it's doing + 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-unchanging data. + cost of maintaining large tables containing mostly-unchanged data. - If necessary, vacuum can be forced to process all-frozen pages - using its new DISABLE_PAGE_SKIPPING option. This - should never be needed normally, but it might help for example - in recovering from visibility-map corruption. + If necessary, vacuum can be forced to process all-frozen + pages using the new DISABLE_PAGE_SKIPPING option. + This should never be needed normally, but it might help in + recovering from visibility-map corruption. @@ -294,8 +509,8 @@ - This change avoids taking an exclusive table lock in some cases where - no truncation is really possible. The main benefit comes from + 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. @@ -306,8 +521,8 @@ 2016-04-03 [3e4b7d879] Avoid pin scan for replay of XLOG_BTREE_VACUUM in all ca --> - Reduce interlocking on standby servers during replay of btree index - vacuuming operations (Simon Riggs) + Reduce interlocking on standby servers during the replay of btree + index vacuuming operations (Simon Riggs) @@ -321,15 +536,15 @@ 2016-02-11 [d4c3a156c] Remove GROUP BY columns that are functionally dependent --> - Drop entries from GROUP BY if they are functionally - dependent on other entries (David Rowley) + Avoid computing GROUP BY columns if they are + functionally dependent on other columns (David Rowley) If a GROUP BY clause includes all columns of a non-deferred primary key, as well as other columns of the same - relation, those other columns are redundant and can be dropped from - the grouping. This saves computation in many common cases. + relation, those other columns are redundant and can be dropped + from the grouping. This saves computation in many common cases. @@ -339,18 +554,19 @@ 2016-03-25 [d543170f2] Don't split up SRFs when choosing to postpone SELECT out --> - When appropriate, postpone evaluation of SELECT output - expressions till after ORDER BY sorting + When appropriate, postpone evaluation of SELECT + output expressions until after an ORDER BY sort (Konstantin Knizhnik) This change ensures that volatile or expensive functions in the output list are executed in the order suggested by ORDER - BY, and that they are not evaluated more times than required when - there's a LIMIT. 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 step. + BY, and that they are not evaluated more times than required + when there is a 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. @@ -365,17 +581,17 @@ 2016-06-10 [4bc0f165c] Change default of backend_flush_after GUC to 0 (disabled --> - 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) + 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) PostgreSQL writes data to the kernel's disk cache, - from where it should be flushed to physical storage in due time. - Many operating systems are not very smart about managing this, and - will allow large amounts of dirty data to accumulate then decide to - flush it all at once, leading to long delays for new I/O requests. + 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. @@ -383,18 +599,18 @@ On Linux, sync_file_range() is used for this purpose, and the feature is on by default because that function has few - downsides. The feature is also available on other platforms that - have msync() or posix_fadvise(), but those - interfaces have some undesirable side-effects so the feature is not - enabled by default on other platforms. + downsides. The feature is also available on other platforms + that have msync() or posix_fadvise(), + but those interfaces have some undesirable side-effects so the + feature is not enabled by default on other platforms. - The new configuration parameters - , - , - , and - control this behavior. + The new configuration parameters , , , and control this behavior. @@ -403,16 +619,16 @@ 2016-03-10 [9cd00c457] Checkpoint sorting and balancing. --> - Perform checkpoint writes in sorted order - (Fabien Coelho, Andres Freund) + Perform checkpoint writes in sorted order (Fabien Coelho, + Andres Freund) - Previously, checkpoints wrote out dirty pages in whatever order they - happen to appear in within 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. + 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. @@ -425,21 +641,22 @@ 2016-08-07 [9ee1cf04a] Fix TOAST access failure in RETURNING queries. --> - Allow old MVCC snapshots to be invalidated after a configurable - timeout (Kevin Grittner) + Allow old MVCC snapshots to be invalidated after a + configurable timeout (Kevin Grittner) - Normally, deleted tuples cannot be physically removed by vacuuming - until the last transaction that could see them is gone. - A transaction that stays open for a long time can thus cause - considerable table bloat because space cannot be recycled. This - feature allows setting a time-based limit, via the new configuration - parameter , on how long an - MVCC snapshot is guaranteed valid. After that, dead tuples are - candidates for removal. A transaction using an outdated snapshot - will get an error, but only if it attempts to read a page that's been - modified recently enough that it might have contained such data. + Normally, deleted tuples cannot be physically removed by + vacuuming until the last transaction that could see + them is gone. A transaction that stays open for a long + time can thus cause considerable table bloat because + space cannot be recycled. This feature allows setting + a time-based limit, via the new configuration parameter + , on how long an + MVCC snapshot is guaranteed to be valid. After that, + dead tuples are candidates for removal. A transaction using an + outdated snapshot will get an error if it attempts to read a page + that potentially could have contained such data. @@ -448,15 +665,18 @@ 2016-03-31 [f9aefcb91] Support using index-only scans with partial indexes in m --> - Allow using an index-only - scan with a partial index when the index's predicate involves - column(s) not stored in the index (Tomas Vondra, Kyotaro Horiguchi) + Allow use of an index-only + scan on a partial index when the index's WHERE + clause references columns which are not indexed (Tomas Vondra, + Kyotaro Horiguchi) - An index-only scan is now allowed if the query mentions such columns - only in WHERE clauses that match the index predicate. + For example, CREATE INDEX tidx_partial ON t(b) WHERE a > + 0 could not previously be used for an index-only scan because + a is not an indexed value like b is. + @@ -466,19 +686,20 @@ 2016-06-18 [100340e2d] Restore foreign-key-aware estimation of join relation si --> - Use foreign key relationships to infer selectivity for - join predicates (Tomas Vondra, David Rowley) + Use foreign key relationships to infer selectivity for join + predicates (Tomas Vondra, David Rowley) - If a table t has a foreign key restriction, - say (a,b) REFERENCES r (x,y), then a WHERE - condition such as t.a = r.x AND t.b = r.y cannot select - more than one r row per t row. The planner - formerly considered the AND'ed conditions to be independent and would - often drastically misestimate the selectivity as a result. Now it - compares the WHERE conditions to applicable foreign key - constraints and arrives at a better estimate. + If a table t has a foreign key restriction, say + (a,b) REFERENCES r (x,y), then a WHERE + condition such as t.a = r.x AND t.b = r.y cannot + select more than one r row per t row. + The planner formerly considered the AND'ed conditions + to be independent and would often drastically misestimate the + selectivity as a result. Now it compares the WHERE + conditions to applicable foreign key constraints and produces a + better estimate. @@ -487,9 +708,14 @@ 2015-08-04 [804163bc2] Share transition state between different aggregates when --> - Improve aggregate-function performance by sharing calculations across - multiple aggregates if they have the same arguments and transition - functions (David Rowley) + Improve aggregate-function performance by sharing calculations + across multiple aggregates if they have the same arguments and + transition functions (David Rowley) + + + + For example, SELECT AVG(x), SUM(x) FROM x can use a + single per-row compuation for both aggregates. @@ -499,9 +725,9 @@ --> Speed up visibility tests for recently-created tuples by checking - our transaction snapshot, not pg_clog, to decide if the - source transaction should be considered committed (Jeff Janes, Tom - Lane) + our transaction snapshot, not pg_clog, to decide + if the source transaction should be considered committed (Jeff + Janes, Tom Lane) @@ -520,16 +746,16 @@ 2016-03-10 [e0694cf9c] Reduce size of two phase file header --> - Improve performance of short-lived prepared transactions - (Stas Kelvich, Simon Riggs, Pavan Deolasee) + Improve performance of short-lived prepared transactions (Stas + Kelvich, Simon Riggs, Pavan Deolasee) - Two-phase commit information is now written only to WAL - during PREPARE TRANSACTION, and read back from there - during COMMIT PREPARED. A separate state file is created - only if the pending transaction does not get committed or aborted by - the time of the next checkpoint. + Two-phase commit information is now written only to WAL + during PREPARE TRANSACTION, and read from + WAL during COMMIT PREPARED. A separate + state file is created only if the pending transaction does not + get committed or aborted by the time of the next checkpoint. @@ -557,7 +783,8 @@ 2016-02-06 [aa2387e2f] Improve speed of timestamp/time/date output functions. --> - Improve speed of the output functions for timestamps, times, and dates + Improve speed of the output functions for timestamp with + and without timezone, time, and date data types (David Rowley, Andres Freund) @@ -567,8 +794,9 @@ 2016-03-10 [37c54863c] Rework wait for AccessExclusiveLocks on Hot Standby --> - Avoid some unnecessary cancellations of hot-standby queries during - replay of actions that take AccessExclusiveLocks (Jeff Janes) + Avoid some unnecessary cancellations of hot-standby queries + during replay of actions that take AccessExclusive + locks (Jeff Janes) @@ -584,9 +812,10 @@ - Previously the code tended to underestimate the number of non-null - distinct values in a column with many nulls, and it also might make - poor decisions about what is a most-common value. + Previously it tended to underestimate the number of + non-NULL distinct values in a column with many + NULLs, and it also was inaccurate in computing the + most-common values. @@ -595,8 +824,8 @@ 2016-04-04 [84f9a35e3] Improve estimate of distinct values in estimate_num_grou --> - Improve planner's estimate of the number of distinct values in a - query result (Tomas Vondra) + Improve planner's estimate of the number of distinct values in + a query result (Tomas Vondra) @@ -605,7 +834,7 @@ 2016-04-08 [719c84c1b] Extend relations multiple blocks at a time to improve sc --> - Extend relations multiple blocks at a time, when there is contention + Extend relations multiple blocks at a time when there is contention for the relation's extension lock (Dilip Kumar) @@ -621,15 +850,14 @@ --> Improve sorting performance by using quicksort, not replacement - selection, within steps of an external sort (Peter Geoghegan) + selection when performing external sort steps (Peter Geoghegan) - The new approach makes better use of CPU cache for typical cache - sizes and data volumes. Where necessary, the behavior can be - adjusted via the new configuration - parameter , - which see for further details. + The new approach makes better use of the CPU cache + for typical cache sizes and data volumes. Where necessary, + the behavior can be adjusted via the new configuration parameter + . @@ -639,7 +867,7 @@ 2015-10-20 [5be94a9eb] Be a bit more rigorous about how we cache strcoll and st --> - Speed up text sorts where the same strings occur multiple times + Speed up text sorts where the same string occurs multiple times (Peter Geoghegan) @@ -651,17 +879,17 @@ 2016-02-17 [f1f5ec1ef] Reuse abbreviated keys in ordered [set] aggregates. --> - Speed up sorting of uuid, bytea, - and char(n) fields by using abbreviated keys + Speed up the sorting of uuid, bytea, and + char(n) fields by using abbreviated keys (Peter Geoghegan) - Support for abbreviated keys has also been added to the non-default - operator classes text_pattern_ops, - varchar_pattern_ops, and bpchar_pattern_ops. - Processing of ordered-set aggregates can also now exploit - abbreviated keys. + Support for abbreviated keys has also + been added to the non-default operator classes + text_pattern_ops, varchar_pattern_ops, + and bpchar_pattern_ops. Processing of ordered-set + aggregates can also now exploit abbreviated keys. @@ -670,8 +898,9 @@ 2015-12-16 [b648b7034] Speed up CREATE INDEX CONCURRENTLY's TID sort. --> - Speed up CREATE INDEX CONCURRENTLY by treating TIDs - as 64-bit integers during the sort phase (Peter Geoghegan) + Speed up CREATE INDEX CONCURRENTLY by treating + TIDs as 64-bit integers during the sort phase (Peter + Geoghegan) @@ -680,8 +909,8 @@ 2016-04-08 [5364b357f] Increase maximum number of clog buffers. --> - Increase the number of clog buffers for better scalability - (Amit Kapila, Andres Freund) + Increase the number of clog buffers for better scalability (Amit + Kapila, Andres Freund) @@ -691,7 +920,8 @@ 2015-09-03 [4aec49899] Assorted code review for recent ProcArrayLock patch. --> - Reduce contention for the ProcArrayLock (Amit Kapila, Robert Haas) + Reduce contention for the ProcArrayLock (Amit Kapila, + Robert Haas) @@ -710,8 +940,8 @@ 2016-04-10 [48354581a] Allow Pin/UnpinBuffer to operate in a lockfree manner. --> - Replace shared-buffer header spinlocks with atomic operations - to improve scalability (Alexander Korotkov, Andres Freund) + Replace shared-buffer header spinlocks with atomic operations to + improve scalability (Alexander Korotkov, Andres Freund) @@ -720,8 +950,8 @@ 2016-04-10 [008608b9d] Avoid the use of a separate spinlock to protect a LWLock --> - Use atomic operations, rather than a spinlock, to protect an LWLock's - wait queue (Andres Freund) + Use atomic operations, rather than a spinlock, to protect an + LWLock's wait queue (Andres Freund) @@ -730,8 +960,8 @@ 2016-03-23 [44ca4022f] Partition the freelist for shared dynahash tables. --> - Partition the freelist for shared hash tables, to reduce contention - on many-CPU servers (Aleksander Alekseev) + Partition the shared hash table freelist to reduce contention on + multi-CPU-socket servers (Aleksander Alekseev) @@ -740,9 +970,9 @@ 2015-07-05 [6c82d8d1f] Further reduce overhead for passing plpgsql variables to --> - Speed up expression evaluation in PL/pgSQL by keeping - ParamListInfo entries for simple variables valid at all times - (Tom Lane) + Speed up expression evaluation in PL/pgSQL by + keeping ParamListInfo entries for simple variables + valid at all times (Tom Lane) @@ -751,36 +981,8 @@ 2015-07-06 [4f33621f3] Don't set SO_SNDBUF on recent Windows versions that have --> - Avoid reducing the SO_SNDBUF setting below its default on - recent Windows versions (Chen Huajun) - - - - - - - - - System Catalogs - - - - - - - Change column name - in information_schema.routines view - from result_cast_character_set_name - to result_cast_char_set_name - (Clément Prévost) - - - - SQL:2011 specifies the longer name, but that appears to be a mistake, - because adjacent column names use the shorter style, as do - other information_schema views. + Avoid reducing the SO_SNDBUF setting below its default + on recent Windows versions (Chen Huajun) @@ -795,31 +997,11 @@ - - Improve the pg_stat_activity - view's information about what a process is waiting for (Amit Kapila, - Ildus Kurbangaliev) - - - - Historically a process has only been shown as waiting if it was - waiting for a heavyweight lock. Now waits for lightweight locks - and buffer pins are also shown in pg_stat_activity. - Also, the type of lock being waited for is now visible. - These changes replace the waiting column - with wait_event_type and wait_event. - - - - - - Add pg_stat_progress_vacuum + Add pg_stat_progress_vacuum system view to provide progress reporting for VACUUM operations (Amit Langote, Robert Haas, Vinayak Pokale, Rahila Syed) @@ -836,8 +1018,9 @@ This view exposes the same information available from - the pg_config utility, namely assorted compile-time - configuration information for PostgreSQL. + the the pg_config comand-line utility, + namely assorted compile-time configuration information for + PostgreSQL. @@ -846,8 +1029,8 @@ 2015-08-10 [3f811c2d6] Add confirmed_flush column to pg_replication_slots. --> - Add a confirmed_flush_lsn column to - the pg_replication_slots + Add a confirmed_flush_lsn column to the pg_replication_slots system view (Marko Tiikkaja) @@ -859,9 +1042,10 @@ 2016-07-07 [60d50769b] Rename pg_stat_wal_receiver.conn_info to conninfo. --> - Add pg_stat_wal_receiver + Add pg_stat_wal_receiver system view to provide information about the state of a hot-standby - server's WAL receiver process (Michael Paquier) + server's WAL receiver process (Michael Paquier) @@ -870,19 +1054,21 @@ 2016-02-22 [52f5d578d] Create a function to reliably identify which sessions bl --> - Add pg_blocking_pids() function to reliably identify - which sessions block which others (Tom Lane) + Add pg_blocking_pids() + function to reliably identify which sessions block which others + (Tom Lane) - This function returns an array of the process IDs of any sessions that - are blocking the session with the given process ID. Historically - users have obtained such information using a self-join on - the pg_locks view; but it's unreasonably tedious to do - it that way with any modicum of correctness, and the addition of - parallel queries has made the approach entirely impractical, since - locks might be held or awaited by child worker processes rather than - the session's main process. + This function returns an array of the process IDs of any + sessions that are blocking the session with the given process ID. + Historically users have obtained such information using a self-join + on the pg_locks view; but it is unreasonably tedious + to do it that way with any modicum of correctness, and the addition + of parallel queries has made the approach entirely impractical, + since locks might be held or awaited by child worker processes + rather than the session's main process. @@ -891,11 +1077,13 @@ 2016-03-05 [dc7d70ea0] Expose control file data via SQL accessible functions. --> - Add pg_control_system(), + Add pg_control_system(), pg_control_checkpoint(), - pg_control_recovery(), - and pg_control_init() functions to expose fields - of pg_control to SQL (Joe Conway, Michael Paquier) + pg_control_recovery(), and + pg_control_init() functions to expose fields of + pg_control to SQL (Joe Conway, Michael + Paquier) @@ -904,8 +1092,9 @@ 2016-01-12 [e63bb4549] Add new user fn pg_current_xlog_flush_location() --> - Add function pg_current_xlog_flush_location() to expose - the current transaction log flush location (Tomas Vondra) + Add function pg_current_xlog_flush_location() + to expose the current transaction log flush location (Tomas Vondra) @@ -914,8 +1103,9 @@ 2015-07-17 [a04bb65f7] Add new function pg_notification_queue_usage. --> - Add function pg_notification_queue_usage() to report - how full the NOTIFY queue is (Brendan Jurd) + Add function pg_notification_queue_usage() + to report how full the NOTIFY queue is (Brendan Jurd) @@ -929,27 +1119,10 @@ The memory usage dump printed to the postmaster log during an - out-of-memory failure now summarizes statistics when there are a large - number of memory contexts, rather than possibly printing a very large - report. There's also a grand total summary line now. - - - - - - - Change display format for NextXID in pg_controldata - and related places (Joe Conway, Bruce Momjian) - - - - Display epoch-and-transaction-ID values in the - format number:number. - The previous - format number/number was - confusingly similar to that used for LSNs. + out-of-memory failure now summarizes statistics when there are a + large number of memory contexts, rather than possibly printing + a very large report. There is also a grand total + summary line now. @@ -967,13 +1140,14 @@ 2016-04-08 [34c33a1f0] Add BSD authentication method. --> - Create a bsd authentication method to allow use of - the BSD Authentication service for PostgreSQL - client authentication (Marisa Emerson) + Add an bsd authentication method to allow the use of + the BSD Authentication service for + PostgreSQL client authentication (Marisa Emerson) - BSD Authentication is currently only available on OpenBSD. + BSD Authentication is currently only available on OpenBSD. @@ -982,9 +1156,9 @@ 2016-04-08 [2f1d2b7a7] Set PAM_RHOST item for PAM authentication --> - When using PAM authentication, provide the client IP address or host - name to PAM modules via the PAM_RHOST item (Grzegorz - Sampolski) + When using PAM authentication, provide the client + IP address or host name to PAM modules via the + PAM_RHOST item (Grzegorz Sampolski) @@ -993,13 +1167,13 @@ 2016-01-07 [5e0b5dcab] Provide more detail in postmaster log for password authe --> - Provide detail in the postmaster log for more password authentication - failures (Tom Lane) + Provide detail in the postmaster log during more password + authentication failures (Tom Lane) - All ordinarily-reachable password authentication failure cases should - now provide specific DETAIL fields in the log. + All ordinarily-reachable password authentication failure cases + should now provide specific DETAIL fields in the log. @@ -1008,7 +1182,8 @@ 2015-09-06 [643beffe8] Support RADIUS passwords up to 128 characters --> - Support RADIUS passwords up to 128 characters long (Marko Tiikkaja) + Support RADIUS passwords up to 128 characters long + (Marko Tiikkaja) @@ -1017,10 +1192,11 @@ 2016-04-08 [35e2e357c] Add authentication parameters compat_realm and upn_usena --> - Add new SSPI authentication parameters compat_realm - and upn_username, to control whether NetBIOS or Kerberos - realm names and user names are used during SSPI authentication - (Christian Ullrich) + Add new SSPI authentication parameters + compat_realm and upn_username to control + whether NetBIOS or Kerberos + realm names and user names are used during SSPI + authentication (Christian Ullrich) @@ -1038,14 +1214,14 @@ 2016-02-02 [7d17e683f] Add support for systemd service notifications --> - Add This allows the use of systemd service units of - type notify, which greatly simplifies management + type notify, which greatly simplifies the management of PostgreSQL under systemd. @@ -1056,7 +1232,7 @@ --> Allow effective_io_concurrency to be set as a - tablespace parameter, to support cases where different tablespaces + tablespace parameter to support cases where different tablespaces have different I/O characteristics (Julien Rouhaud) @@ -1066,15 +1242,15 @@ 2016-03-16 [c6dda1f48] Add idle_in_transaction_session_timeout. --> - Allow sessions to be terminated automatically if they sit too long in - an idle-in-transaction state (Vik Fearing) + Allow sessions to be terminated automatically if they are in + idle-in-transaction state for too long (Vik Fearing) - This behavior is enabled and controlled by the new configuration - parameter . - It can be useful to prevent forgotten transactions from holding onto - locks or preventing vacuum cleanup for very long periods. + This behavior is controlled by the new configuration parameter + . It can + be useful to prevent forgotten transactions from holding locks + or preventing vacuum cleanup for too long. @@ -1084,8 +1260,9 @@ 2015-09-07 [b1e1862a1] Coordinate log_line_prefix options 'm' and 'n' to share --> - Add log_line_prefix option %n to print the - time as a Unix epoch, with milliseconds (Tomas Vondra, Jeff Davis) + Add log_line_prefix option %n to print + the current time as a Unix epoch, with milliseconds (Tomas Vondra, + Jeff Davis) @@ -1095,10 +1272,10 @@ 2016-03-16 [fc201dfd9] Add syslog_split_messages parameter --> - Add - and - configuration parameters to provide more control over message format - when logging to syslog (Peter Eisentraut) + Add and configuration parameters + to provide more control over the message format when logging to + syslog (Peter Eisentraut) @@ -1107,16 +1284,16 @@ 2016-03-18 [b555ed810] Merge wal_level "archive" and "hot_standby" into new nam --> - Merge the archive and hot_standby values of - the configuration parameter into a - single value replica (Peter Eisentraut) + Merge the archive and hot_standby values + of the configuration parameter + into a single new value replica (Peter Eisentraut) - Making a distinction between these settings no longer appears to be a - good idea, and it's in the way of planned future simplification of - replication setup. The old names are still accepted but are - converted internally. + Making a distinction between these settings is no longer useful, + and is part of a planned future simplification of replication + setup. The old names are still accepted but are converted + internally. @@ -1125,17 +1302,19 @@ 2016-03-19 [9a83564c5] Allow SSL server key file to have group read access if o --> - Allow the server's SSL key file to have group read access if owned by - root (Christoph Berg) + Allow the server's SSL key file to have group read + access if owned by root (Christoph Berg) - Formerly we insisted on the key file being owned by the user running - the PostgreSQL server, but that is inconvenient for - some systems (such as Debian) that wish to manage certificates - centrally. So also allow the case where the key file is owned by - root and has group read access. It's up to the root admin to ensure - that such a group doesn't include any untrusted users. + Formerly, we insisted on the key file being owned by the + user running the PostgreSQL server, but + that is inconvenient for some systems (such as Debian) that are configured to manage + certificates centrally. Therefore, allow the case where the key + file is owned by root and has group read access. + It is up to the root admin to ensure that the group does not + include any untrusted users. @@ -1153,20 +1332,20 @@ 2015-11-12 [ac1d7945f] Make idle backends exit if the postmaster dies. --> - Force backends to exit if the postmaster dies - (Rajeev Rastogi, Robert Haas) + Force backends to exit if the postmaster dies (Rajeev Rastogi, + Robert Haas) - Under normal circumstances the postmaster should always outlive its - child processes. If for some reason it dies, cause backend sessions - to exit with an error. Formerly, existing backends would continue to - run until their client disconnects; but that is unsafe and - inefficient, and furthermore it prevents a new postmaster from being - started until the last old backend is gone. Backends will detect - postmaster death when waiting for client I/O, so the exit will not be - instantaneous, but in most circumstances it should happen no later - than the end of the current query. + Under normal circumstances the postmaster should always outlive + its child processes. If for some reason the postmaster dies, + force backend sessions to exit with an error. Formerly, existing + backends would continue to run until their client disconnects, + but that is unsafe and inefficient. It also prevents a new + postmaster from being started until the last old backend has + exited. Backends will detect postmaster death when waiting for + client I/O, so the exit will not be instantaneous, but it in most + cases should happen no later than the end of the current query. @@ -1180,14 +1359,15 @@ - When using serializable transaction isolation, it is desirable that - any error due to a concurrent transaction should manifest as a - serialization failure, thereby cueing the application that a retry - might succeed. Unfortunately, this doesn't reliably happen for - duplicate-key failures caused by concurrent insertions. This change - ensures that such an error will be reported as a serialization error, - if the application explicitly checked for the presence of a - conflicting key (and didn't find it) earlier in the transaction. + When using serializable transaction isolation, it is desirable + that any error due to concurrent transactions should manifest + as a serialization failure, thereby cueing the application that + a retry might succeed. Unfortunately, this does not reliably + happen for duplicate-key failures caused by concurrent insertions. + This change ensures that such an error will be reported as a + serialization error if the application explicitly checked for + the presence of a conflicting key (and did not find it) earlier + in the transaction. @@ -1197,13 +1377,14 @@ XXX this is pending backpatch, may need to remove 2016-04-26 [c6ff84b06] Emit invalidations to standby for transactions without x --> - Ensure that invalidation messages are recorded in WAL even when - issued by a transaction that has no XID assigned (Andres Freund) + Ensure that invalidation messages are recorded in WAL + even when issued by a transaction that has no XID + assigned (Andres Freund) This fixes some corner cases in which transactions on standby - servers failed to notice changes such as new indexes. + servers failed to notice changes, such as new indexes. @@ -1213,8 +1394,8 @@ XXX this is pending backpatch, may need to remove 2016-04-28 [e2c79e14d] Prevent multiple cleanup process for pending list in GIN --> - Prevent multiple processes from trying to clean a GIN index's pending - list concurrently (Teodor Sigaev, Jeff Janes) + Prevent multiple processes from trying to clean a GIN + index's pending list concurrently (Teodor Sigaev, Jeff Janes) @@ -1241,15 +1422,15 @@ XXX this is pending backpatch, may need to remove 2016-04-30 [17d5db352] Remove warning about num_sync being too large in synchro --> - Support synchronous replication with multiple synchronous standby - servers, not just one (Masahiko Sawada, Beena Emerson, Michael - Paquier, Fujii Masao, Kyotaro Horiguchi) + Support synchronous replication using multiple synchronous + standby servers, not just one (Masahiko Sawada, Beena Emerson, + Michael Paquier, Fujii Masao, Kyotaro Horiguchi) - The number of standby servers that must acknowledge a commit before - it's considered done is now configurable as part of the - parameter. + The number of standby servers that must acknowledge a commit + before it is considered complete is now configurable as part of + the parameter. @@ -1258,15 +1439,16 @@ XXX this is pending backpatch, may need to remove 2016-03-29 [314cbfc5d] Add new replication mode synchronous_commit = 'remote_ap --> - Add new setting remote_apply for configuration parameter - (Thomas Munro) + Add new setting remote_apply for configuration + parameter (Thomas Munro) - In this mode, the master waits for the transaction to be applied on - the standby server, not just written to disk. That means that you - can count on a transaction started on the standby to see all commits - previously acknowledged by the master. + In this mode, the master waits for the transaction to be + applied on the standby server, not just written + to disk. That means that you can count on a transaction started + on the standby to see all commits previously acknowledged by + the master. @@ -1276,15 +1458,16 @@ XXX this is pending backpatch, may need to remove 2015-09-06 [c314ead5b] Add ability to reserve WAL upon slot creation via replic --> - Add a feature to the replication protocol, and a corresponding option - to the pg_create_physical_replication_slot() function, - to allow reserving WAL immediately when creating a replication slot - (Gurjeet Singh, Michael Paquier) + Add a feature to the replication + protocol, and a corresponding option to the pg_create_physical_replication_slot() + function, to allow reserving WAL immediately when + creating a replication slot (Gurjeet Singh, Michael Paquier) - This allows creation of a replication slot to guarantee that all the - WAL for a base backup will be available afterwards. + This allows creation of a replication slot to guarantee that all + the WAL for a base backup will be available afterwards. @@ -1293,15 +1476,15 @@ XXX this is pending backpatch, may need to remove 2015-07-28 [0dc848b03] pg_basebackup: Add -slot option --> - Add a option to pg_basebackup - (Peter Eisentraut) + Add a option to + pg_basebackup (Peter Eisentraut) - This lets pg_basebackup use a replication slot defined - for WAL streaming. After the base backup completes, selecting the - same slot for regular streaming replication allows seamless startup of - the new standby server. + This lets pg_basebackup use a replication + slot defined for WAL streaming. After the base + backup completes, selecting the same slot for regular streaming + replication allows seamless startup of the new standby server. @@ -1311,8 +1494,10 @@ XXX this is pending backpatch, may need to remove 2016-07-11 [87d84d67b] Fix start WAL filename for concurrent backups from stand --> - Extend pg_start_backup() and pg_stop_backup() - to support non-exclusive backups (Magnus Hagander) + Extend pg_start_backup() + and pg_stop_backup() to support non-exclusive backups + (Magnus Hagander) @@ -1330,16 +1515,17 @@ XXX this is pending backpatch, may need to remove 2016-07-26 [d8411a6c8] Allow functions that return sets of tuples to return sim --> - Allow functions that return sets of tuples to return simple NULLs - (Andrew Gierth, Tom Lane) + Allow functions that return sets of tuples to return simple + NULLs (Andrew Gierth, Tom Lane) In the context of SELECT FROM function(...), a function that returned a set of composite values was previously not allowed - to return a plain NULL value as part of the set. Now that is - allowed and interpreted as a row of NULLs. This avoids corner-case - errors with, for example, unnesting an array of composite values. + to return a plain NULL value as part of the set. + Now that is allowed and interpreted as a row of NULLs. + This avoids corner-case errors with, for example, unnesting an + array of composite values. @@ -1348,9 +1534,9 @@ XXX this is pending backpatch, may need to remove 2016-08-03 [a3c7a993d] Make INSERT-from-multiple-VALUES-rows handle targetlist --> - Fully support array subscripts and field selections in the target - column list of an INSERT with - multiple VALUES rows (Tom Lane) + Fully support array subscripts and field selections in the + target column list of an INSERT with multiple + VALUES rows (Tom Lane) @@ -1370,9 +1556,10 @@ XXX this is pending backpatch, may need to remove - This change allows command tags for SELECT etc. to - correctly report tuple counts larger than 4 billion. So will - PL/pgSQL's GET DIAGNOSTICS ... ROW_COUNT command. + This change allows command tags, e.g. SELECT, to + correctly report tuple counts larger than 4 billion. This also + applies to PL/pgSQL's GET DIAGNOSTICS ... ROW_COUNT + command. @@ -1381,19 +1568,19 @@ XXX this is pending backpatch, may need to remove 2015-11-28 [8d32717b6] Avoid doing encoding conversions by double-conversion vi --> - Avoid doing encoding conversions by double-conversion - through MULE_INTERNAL encoding (Tom Lane) + Avoid doing encoding conversions by converting through the + MULE_INTERNAL encoding (Tom Lane) - Previously, many conversions for Cyrillic and Central European - single-byte encodings were done by converting to a + Previously, many conversions for Cyrillic and Central + European single-byte encodings were done by converting to a related MULE_INTERNAL coding scheme and then to the - destination encoding. Aside from being inefficient, this meant that - when the conversion encountered an untranslatable character, the error - message would confusingly complain about failure to convert to or - from MULE_INTERNAL, rather than the user-visible - encodings. + destination encoding. Aside from being inefficient, this meant + that when the conversion encountered an untranslatable character, + the error message would confusingly complain about failure to + convert to or from MULE_INTERNAL, rather than the + user-visible encoding. @@ -1409,12 +1596,13 @@ XXX this is pending backpatch, may need to remove - Previously, the foreign join pushdown infrastructure left the question - of security entirely up to individual foreign data wrappers, but it - would be easy for an FDW to inadvertently open up subtle security - holes that way. So, make it the core code's job to determine which - role ID will access each table, and don't attempt join pushdown unless - it's the same for all relevant relations. + Previously, the foreign join pushdown infrastructure left the + question of security entirely up to individual foreign data + wrappers, but it would be too easy for an FDW to + inadvertently open up subtle security hole. So, make it the core + code's job to determine which role ID will access each table, + and do not attempt join pushdown unless the role is the same for + all relevant relations. @@ -1432,13 +1620,14 @@ XXX this is pending backpatch, may need to remove 2015-11-27 [92e38182d] COPY (INSERT/UPDATE/DELETE .. RETURNING ..) --> - Allow COPY to copy the output of - an INSERT/UPDATE/DELETE + Allow COPY to copy the output of an + INSERT/UPDATE/DELETE ... RETURNING query (Marko Tiikkaja) - Previously, an intermediate CTE had to be written to get this result. + Previously, an intermediate CTE had to be written to + get this result. @@ -1452,11 +1641,11 @@ XXX this is pending backpatch, may need to remove - This command allows a database object to be marked as depending on an - extension, so that it will automatically go away if the extension is - dropped (without needing CASCADE). But the object is not - part of the extension, and thus for example will be dumped separately - by pg_dump. + This command allows a database object to be marked as depending + on an extension, so that it will be automatically dropped if + the extension is dropped (without needing CASCADE). + However, the object is not part of the extension, and thus will + be dumped separately by pg_dump. @@ -1467,8 +1656,8 @@ XXX this is pending backpatch, may need to remove Make ALTER object SET SCHEMA do nothing when the object is already in the requested schema, rather than - throwing an error as it historically has for most object types (Marti - Raudsepp) + throwing an error as it historically has for most object types + (Marti Raudsepp) @@ -1478,8 +1667,8 @@ XXX this is pending backpatch, may need to remove 2015-12-31 [0dab5ef39] Fix ALTER OPERATOR to update dependencies properly. --> - Add options to ALTER OPERATOR to change the - selectivity functions associated with an existing operator + Add options to ALTER OPERATOR to allow changing + the selectivity functions associated with an existing operator (Yury Zhuravlev) @@ -1489,8 +1678,8 @@ XXX this is pending backpatch, may need to remove 2015-07-29 [2cd40adb8] Add IF NOT EXISTS processing to ALTER TABLE ADD COLUMN --> - Add an @@ -1500,8 +1689,8 @@ XXX this is pending backpatch, may need to remove 2016-03-10 [fcb4bfddb] Reduce lock level for altering fillfactor --> - Reduce the lock strength needed by ALTER TABLE when - setting fillfactor and autovacuum-related relation options + Reduce the lock strength needed by ALTER TABLE + when setting fillfactor and autovacuum-related relation options (Fabrízio de Royes Mello, Simon Riggs) @@ -1511,8 +1700,9 @@ XXX this is pending backpatch, may need to remove 2016-03-23 [473b93287] Support CREATE ACCESS METHOD --> - Introduce CREATE ACCESS METHOD to allow extensions to - create index access methods (Alexander Korotkov, Petr Jelínek) + Introduce CREATE ACCESS METHOD to allow extensions + to create index access methods (Alexander Korotkov, Petr + Jelínek) @@ -1522,27 +1712,8 @@ XXX this is pending backpatch, may need to remove --> Add a CASCADE option to CREATE - EXTENSION, to automatically create extensions it depends on - (Petr Jelínek) - - - - - - - Remove the - long-deprecated CREATEUSER/NOCREATEUSER - options from CREATE ROLE and allied commands (Tom Lane) - - - - CREATEUSER actually meant SUPERUSER, for - ancient backwards-compatibility reasons. That's been a constant - source of confusion for people who (reasonably) expect it to - mean CREATEROLE. It's been deprecated for ten years - now, so fix the problem by removing it. + EXTENSION to automatically create extensions it depends + on (Petr Jelínek) @@ -1551,8 +1722,8 @@ XXX this is pending backpatch, may need to remove 2015-10-05 [b943f502b] Have CREATE TABLE LIKE add OID column if any LIKEd table --> - Make CREATE TABLE ... LIKE include an OID column if any - source table has one (Bruce Momjian) + Make CREATE TABLE ... LIKE include an OID + column if any source table has one (Bruce Momjian) @@ -1561,14 +1732,14 @@ XXX this is pending backpatch, may need to remove 2015-12-16 [f27a6b15e] Mark CHECK constraints declared NOT VALID valid if creat --> - If a CHECK constraint is declared NOT VALID in - a table creation command, automatically mark it valid (Amit Langote, - Amul Sul) + If a CHECK constraint is declared NOT VALID + in a table creation command, automatically mark it as valid + (Amit Langote, Amul Sul) - This matches the longstanding behavior of FOREIGN KEY - constraints. + This possible because the table has no existing rows. This matches + the longstanding behavior of FOREIGN KEY constraints. @@ -1577,16 +1748,16 @@ XXX this is pending backpatch, may need to remove 2016-03-25 [c94959d41] Fix DROP OPERATOR to reset oprcom/oprnegate links to the --> - Fix DROP OPERATOR to - clear pg_operator.oprcom - and pg_operator.oprnegate links to the - dropped operator (Roma Sokolov) + Fix DROP OPERATOR to clear + pg_operator.oprcom and + pg_operator.oprnegate links to + the dropped operator (Roma Sokolov) - Formerly such links were left as-is, which could pose a problem in - the somewhat unlikely event that the dropped operator's OID was - reused for another operator. + Formerly such links were left as-is, which could pose a problem + in the somewhat unlikely event that the dropped operator's + OID was reused for another operator. @@ -1611,15 +1782,15 @@ XXX this is pending backpatch, may need to remove 2016-04-16 [c34df8a00] Disallow creation of indexes on system columns (except f --> - Disallow creation of indexes on system columns, except for OID - (David Rowley) + Disallow creation of indexes on system columns, except for + OID columns (David Rowley) - Such indexes were never considered supported, and would very possibly - misbehave since the system might change the system-column fields of a - tuple without updating indexes. But there was no error check to - prevent them from being created. + Such indexes were never considered supported, and would very + possibly misbehave since the system might change the system-column + fields of a tuple without updating indexes. However, previously + there were no error checks to prevent them from being created. @@ -1644,29 +1815,13 @@ XXX this is pending backpatch, may need to remove Formerly, many security-sensitive functions contained hard-wired checks that would throw an error if they were called by a - non-superuser role. This forced use of superuser roles for some - relatively pedestrian tasks. The hard-wired error checks are now gone - in favor of making initdb revoke the default - public EXECUTE privilege on these functions. This allows - installations to choose to grant usage of such functions to trusted - roles that need not have full superuser privilege. - - - - - - - Treat role names beginning with pg_ as reserved - (Stephen Frost) - - - - User creation of such role names is now disallowed. This prevents - conflicts with built-in roles created by initdb. + non-superuser role. This forced the use of superuser roles for + some relatively pedestrian tasks. The hard-wired error checks + are now gone in favor of making initdb revoke the + default public EXECUTE privilege on these functions. + This allows installations to choose to grant usage of such + functions to trusted roles that need not have full superuser + privilege. @@ -1675,9 +1830,9 @@ XXX this is pending backpatch, may need to remove 2016-04-08 [7a542700d] Create default roles --> - Create some built-in roles that - can be used to grant access to what were previously superuser-only - functions (Stephen Frost) + Create some built-in roles + that can be used to grant access to what were previously + superuser-only functions (Stephen Frost) @@ -1696,14 +1851,13 @@ XXX this is pending backpatch, may need to remove --> Allow omitting one or both boundaries in an array slice specifier, - for example array_col[3:] - (Yury Zhuravlev) + e.g. array_col[3:] (Yury Zhuravlev) Omitted boundaries are taken as the upper or lower limit of the - corresponding array subscript. This allows simpler specification of - many common use-cases. + corresponding array subscript. This allows simpler specification + for many common use-cases. @@ -1712,19 +1866,19 @@ XXX this is pending backpatch, may need to remove 2016-03-16 [a70e13a39] Be more careful about out-of-range dates and timestamps. --> - Be more careful about out-of-range dates and timestamps - (Vitaly Burovoy) + Be more careful about out-of-range dates and timestamps (Vitaly + Burovoy) - This change prevents unexpected out-of-range errors - for timestamp with time zone values very close to the - implementation limits. Previously, the same value might be - accepted or not depending on the timezone setting, + This change prevents unexpected out-of-range errors for + timestamp with time zone values very close to the + implementation limits. Previously, the same value might + be accepted or not depending on the timezone setting, meaning that a dump and reload could fail on a value that had been - accepted when presented. Now the limits are enforced according to - the equivalent UTC time, not local time, so as to be independent - of timezone. + accepted when presented. Now the limits are enforced according + to the equivalent UTC time, not local time, so as to + be independent of timezone. @@ -1739,15 +1893,15 @@ XXX this is pending backpatch, may need to remove 2016-03-30 [50861cd68] Improve portability of I/O behavior for the geometric ty --> - In the geometric data types, make sure that infinity and NaN - component values are treated consistently during input and output - (Tom Lane) + In the geometric data types, make sure that infinity + and NaN component values are treated consistently + during input and output (Tom Lane) - Such values will now always print the same way as they would in a - simple float8 column, and be accepted the same way on input - as well. Previously the behavior was somewhat platform-dependent. + Such values will now always print the same as they would in + a simple float8 column, and be accepted the same way + on input. Previously the behavior was platform-dependent. @@ -1759,36 +1913,19 @@ XXX this is pending backpatch, may need to remove 2016-06-27 [6734a1cac] Change predecence of phrase operator. --> - 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) + Improve full-text search to support searching for phrases, that + is, lexemes appearing adjacent to each other in a specific order, + or with a specified distance between them (Teodor Sigaev, Oleg + Bartunov, Dmitry Ivanov) - A phrase-search query can be specified in tsquery input - using the new operators <-> and - <N>. The former means that - the lexemes before and after it must appear adjacent to each other in - that order. The latter means they must be exactly N - lexemes apart. - - - - - - - Fix text search parser to allow leading digits in email - and host tokens (Artur Zakirov) - - - - In most cases this will result in few changes in the parsing of text. - But if you have data where such addresses occur frequently, it may be - worth rebuilding dependent tsvector columns and indexes, so - that addresses of this form will be found properly by text searches. + A phrase-search query can be specified in tsquery + input using the new operators <-> and + <N>. The former means + that the lexemes before and after it must appear adjacent to + each other in that order. The latter means they must be exactly + N lexemes apart. @@ -1799,8 +1936,9 @@ XXX this is pending backpatch, may need to remove 2016-03-17 [f4ceed6ce] Improve support of Hunspell --> - Upgrade the ispell dictionary to handle modern Hunspell - files and support more languages (Artur Zakirov) + Upgrade the ispell dictionary to handle modern + Hunspell files and support more languages + (Artur Zakirov) @@ -1809,16 +1947,15 @@ XXX this is pending backpatch, may need to remove 2015-10-30 [12c9a0400] Implement lookbehind constraints in our regular-expressi --> - Implement lookbehind constraints in regular expressions - (Tom Lane) + Implement look-behind constraints in regular expressions (Tom Lane) - A lookbehind constraint is like a lookahead constraint in that it - consumes no text; but it checks for existence (or nonexistence) of a - match ending at the current point in the string, rather than one - starting at the current point. Similar features exist in many other - regular-expression engines. + A look-behind constraint is like a lookahead constraint in that it + consumes no text; but it checks for existence (or nonexistence) + of a match ending at the current point in the string, rather + than one starting at the current point. Similar features exist + in many other regular-expression engines. @@ -1827,13 +1964,13 @@ XXX this is pending backpatch, may need to remove 2015-09-16 [b44d92b67] Sync regex code with Tcl 8.6.4. --> - In regular expressions, if an apparent three-digit octal - escape \nnn would exceed 377 (255 - decimal), assume it is a two-digit octal escape instead (Tom Lane) + In regular expressions, if an apparent three-digit octal escape + \nnn would exceed 377 (255 decimal), + assume it is a two-digit octal escape instead (Tom Lane) - This makes the behavior match current Tcl releases. + This makes the behavior match current Tcl releases. @@ -1842,10 +1979,9 @@ XXX this is pending backpatch, may need to remove 2015-11-07 [c5e86ea93] Add "xid <> xid" and "xid <> int4" operators. --> - Add xid <> xid - and xid <> int4 operators, - for consistency with the corresponding = operators - (Michael Paquier) + Add xid <> xid and xid + <> int4 operators, for consistency + with the corresponding = operators (Michael Paquier) @@ -1863,9 +1999,11 @@ XXX this is pending backpatch, may need to remove 2016-04-06 [0b62fd036] Add jsonb_insert --> - Add jsonb_insert() function to insert a new element into - a jsonb array, or a not-previously-existing key into - a jsonb object (Dmitry Dolgov) + Add jsonb_insert() + function to insert a new element into a jsonb array, + or a not-previously-existing key into a jsonb object + (Dmitry Dolgov) @@ -1900,11 +2038,12 @@ XXX this is pending backpatch, may need to remove - For example, sind() measures its argument in - degrees, whereas sin() measures in radians. - These functions go to some lengths to deliver exact results for values - where an exact result can be expected, such - as sind(30) = 0.5 exactly. + For example, sind() + measures its argument in degrees, whereas sin() + measures in radians. These functions go to some lengths to + deliver exact results for values where an exact result can be + expected, e.g. sind(30) = 0.5. @@ -1913,33 +2052,16 @@ XXX this is pending backpatch, may need to remove 2016-01-22 [fd5200c3d] Improve cross-platform consistency of Inf/NaN handling i --> - Ensure that trigonometric functions handle infinity and NaN inputs per - the POSIX standard (Dean Rasheed) + Ensure that trigonometric functions handle infinity + and NaN inputs per the POSIX standard + (Dean Rasheed) - The POSIX standard says that these functions should return NaN for NaN - input, and should throw an error for out-of-range inputs including - infinity; but previously, our actual behavior varied across platforms. - - - - - - - Make extract() behave more reasonably with infinite - inputs (Vitaly Burovoy) - - - - Historically the extract() function just returned zero - given an infinite timestamp, regardless of the given unit name. Make - it return infinity or -infinity - as appropriate when the requested field is one that is monotonically - increasing (e.g, year, epoch), or NULL when it is not (e.g., day, - hour). Also, throw the expected error for bad unit names. + The POSIX standard says that these functions should + return NaN for NaN input, and should throw an error for + out-of-range inputs including infinity; but previously, + our actual behavior varied across platforms. @@ -1948,8 +2070,9 @@ XXX this is pending backpatch, may need to remove 2016-03-29 [e511d878f] Allow to_timestamp(float8) to convert float infinity to --> - Make to_timestamp(float8) convert float infinity to - timestamp infinity (Vitaly Burovoy) + Make to_timestamp(float8) convert float + infinity to timestamp infinity (Vitaly + Burovoy) @@ -1967,11 +2090,12 @@ XXX this is pending backpatch, may need to remove - These are ts_delete(), ts_filter(), - unnest(), tsvector_to_array(), - array_to_tsvector(), and a variant - of setweight() that sets the weight only for specified - lexeme(s). + These are ts_delete(), + ts_filter(), unnest(), + tsvector_to_array(), array_to_tsvector(), + and a variant of setweight() that sets the weight + only for specified lexeme(s). @@ -1980,10 +2104,10 @@ XXX this is pending backpatch, may need to remove 2015-09-17 [9acb9007d] Fix oversight in tsearch type check --> - Allow ts_stat_sql() - and tsvector_update_trigger() to operate on values that - are of types binary-compatible with the expected argument type, not - just that argument type; for example allow citext + Allow ts_stat_sql() and + tsvector_update_trigger() to operate on values that + are of types binary-compatible with the expected argument type, + not just that argument type; for example allow citext where text is expected (Teodor Sigaev) @@ -1993,16 +2117,17 @@ XXX this is pending backpatch, may need to remove 2016-02-04 [6819514fc] Add num_nulls() and num_nonnulls() to count NULL argumen --> - Add variadic functions num_nulls() + Add variadic functions num_nulls() and num_nonnulls() that count the number of their - arguments that are null or nonnull (Marko Tiikkaja) + arguments that are null or non-null (Marko Tiikkaja) - An example usage is CHECK(num_nonnulls(a,b,c) = 1) which - asserts that exactly one of a,b,c isn't NULL. These functions can - also be used to count the number of null or nonnull elements in an - array. + An example usage is CHECK(num_nonnulls(a,b,c) = 1) + which asserts that exactly one of a,b,c is not NULL. + These functions can also be used to count the number of null or + nonnull elements in an array. @@ -2011,23 +2136,10 @@ XXX this is pending backpatch, may need to remove 2016-03-18 [3187d6de0] Introduce parse_ident() --> - Add function parse_ident() to split a qualified, - possibly quoted SQL identifier into its parts (Pavel Stehule) - - - - - - - In to_char(), do not count a minus sign (when needed) as - part of the field width for time-related fields (Bruce Momjian) - - - - For example, to_char('-4 years'::interval, 'YY') now - returns -04, rather than -4. + Add function parse_ident() + to split a qualified, possibly quoted SQL identifier + into its parts (Pavel Stehule) @@ -2036,13 +2148,15 @@ XXX this is pending backpatch, may need to remove 2015-10-05 [28b3a3d41] to_number(): allow 'V' to divide by 10^(the number of d --> - In to_number(), interpret V as dividing by - 10 to the power of the number of digits following V - (Bruce Momjian) + In to_number(), + interpret V as dividing by 10 to the power of the + number of digits following V (Bruce Momjian) - This makes it operate in an inverse fashion to to_char(). + This makes it operate in an inverse fashion to + to_char(). @@ -2056,8 +2170,8 @@ XXX this is pending backpatch, may need to remove - This avoids the need to write an explicit cast in most cases where - the argument isn't a simple literal constant. + This avoids the need to write an explicit cast in most cases + where the argument is not a simple literal constant. @@ -2066,13 +2180,15 @@ XXX this is pending backpatch, may need to remove 2016-02-20 [53874c522] Add pg_size_bytes() to parse human-readable size strings --> - Add pg_size_bytes() function to convert human-readable - size strings to numbers (Pavel Stehule, Vitaly Burovoy, Dean Rasheed) + Add pg_size_bytes() + function to convert human-readable size strings to numbers (Pavel + Stehule, Vitaly Burovoy, Dean Rasheed) - This function converts strings like those produced - by pg_size_pretty() into sizes in bytes. An example + This function converts strings like those produced by + pg_size_pretty() into sizes in bytes. An example usage is SELECT oid::regclass FROM pg_class WHERE pg_total_relation_size(oid) > pg_size_bytes('10 GB'). @@ -2083,8 +2199,10 @@ XXX this is pending backpatch, may need to remove 2015-11-06 [8a1fab36a] pg_size_pretty: Format negative values similar to positi --> - In pg_size_pretty(), format negative numbers similarly - to positive ones (Adrian Vondendriesch) + In pg_size_pretty(), + format negative numbers similarly to positive ones (Adrian + Vondendriesch) @@ -2098,13 +2216,14 @@ XXX this is pending backpatch, may need to remove 2015-07-02 [10fb48d66] Add an optional missing_ok argument to SQL function curr --> - Add an optional missing_ok argument to - the current_setting() function (David Christensen) + Add an optional missing_ok argument to the current_setting() + function (David Christensen) This allows avoiding an error for an unrecognized parameter name; - instead the result is NULL. + instead the result is NULL. @@ -2115,13 +2234,15 @@ XXX this is pending backpatch, may need to remove 2016-08-07 [8a8c6b538] Fix crash when pg_get_viewdef_name_ext() is passed a non --> - Change various catalog-inspection functions to return NULL for - invalid input (Michael Paquier) + Change various catalog-inspection functions to return + NULL for invalid input (Michael Paquier) - pg_get_viewdef() now returns NULL if given an invalid - view OID, and several similar functions likewise return NULL for + pg_get_viewdef() + now returns NULL if given an invalid view OID, + and several similar functions likewise return NULL for bad input. Previously, such cases usually led to cache lookup failed errors, which are not meant to occur in user-facing cases. @@ -2133,13 +2254,14 @@ XXX this is pending backpatch, may need to remove 2016-08-02 [dd5eb805d] Remove unused arguments from pg_replication_origin_xact_ --> - Fix pg_replication_origin_xact_reset() to not have any - arguments (Fujii Masao) + Fix pg_replication_origin_xact_reset() + to not have any arguments (Fujii Masao) - The documentation said that it has no arguments, and the C code - didn't expect any arguments, but the entry in pg_proc + The documentation said that it has no arguments, and the C code did + not expect any arguments, but the entry in pg_proc mistakenly specified two arguments. @@ -2158,40 +2280,23 @@ XXX this is pending backpatch, may need to remove 2015-08-21 [fcdfce682] Detect mismatched CONTINUE and EXIT statements at plpgsq --> - In PL/pgSQL, - detect mismatched CONTINUE and EXIT statements - while compiling PL/pgSQL functions, rather than at execution + In PL/pgSQL, detect mismatched + CONTINUE and EXIT statements while + compiling PL/pgSQL functions, rather than at execution time (Jim Nasby) - - Remove PL/pgSQL's feature that suppressed the innermost line - of CONTEXT for messages emitted by RAISE - commands (Pavel Stehule) - - - - This ancient backwards-compatibility hack was agreed to have outlived - its usefulness. - - - - - - Extend PL/Python's error-reporting and message-reporting functions to - allow specifying additional message fields besides the primary error - message (Pavel Stehule) + Extend PL/Python's error-reporting and + message-reporting functions to allow specifying additional message + fields besides the primary error message (Pavel Stehule) @@ -2200,9 +2305,10 @@ This commit is also listed under libpq and psql 2016-04-05 [1d2fe56e4] Fix PL/Python for recursion and interleaved set-returnin --> - Allow PL/Python functions to call themselves recursively via SPI, - and fix the behavior when multiple set-returning PL/Python functions - are called within one query (Alexey Grishchenko, Tom Lane) + Allow PL/Python functions to call themselves recursively + via SPI, and fix the behavior when multiple + set-returning PL/Python functions are called within one query + (Alexey Grishchenko, Tom Lane) @@ -2211,8 +2317,8 @@ This commit is also listed under libpq and psql 2015-11-05 [8c75ad436] Fix memory leaks in PL/Python. --> - Fix session-lifespan memory leaks in PL/Python - (Heikki Linnakangas, Haribabu Kommi, Tom Lane) + Fix session-lifespan memory leaks in PL/Python (Heikki Linnakangas, + Haribabu Kommi, Tom Lane) @@ -2222,8 +2328,9 @@ This commit is also listed under libpq and psql 2016-03-02 [e2609323e] Make PL/Tcl require Tcl 8.4 or later. --> - Modernize PL/Tcl to use Tcl's object APIs - instead of simple strings (Jim Nasby, Karl Lehenbauer) + Modernize PL/Tcl to use Tcl's object + APIs instead of simple strings (Jim Nasby, Karl + Lehenbauer) @@ -2239,13 +2346,13 @@ This commit is also listed under libpq and psql --> In PL/Tcl, make database-reported errors return - additional information in Tcl's errorCode global variable - (Jim Nasby, Tom Lane) + additional information in Tcl's errorCode global + variable (Jim Nasby, Tom Lane) - This feature follows the Tcl convention for returning auxiliary data - about an error. + This feature follows the Tcl convention for returning auxiliary + data about an error. @@ -2255,13 +2362,14 @@ This commit is also listed under libpq and psql --> Fix PL/Tcl to perform encoding conversion between - the database encoding and UTF-8, which is what Tcl expects (Tom Lane) + the database encoding and UTF-8, which is what Tcl + expects (Tom Lane) - Previously, strings were passed through without conversion, leading - to misbehavior with non-ASCII characters when the database encoding - isn't UTF-8. + Previously, strings were passed through without conversion, + leading to misbehavior with non-ASCII characters when + the database encoding was not UTF-8. @@ -2280,16 +2388,18 @@ This commit is also listed under libpq and psql This commit is also listed under psql and PL/pgSQL --> - Introduce a feature in libpq whereby - the CONTEXT field of messages can be suppressed, either + Introduce a feature in libpq whereby the + CONTEXT field of messages can be suppressed, either always or only for non-error messages (Pavel Stehule) - The default behavior of PQerrorMessage() is now to - print CONTEXT only for errors. The new - function PQsetErrorContextVisibility() can be used to - adjust this. + The default behavior of PQerrorMessage() + is now to print CONTEXT + only for errors. The new function PQsetErrorContextVisibility() + can be used to adjust this. @@ -2313,13 +2423,15 @@ This commit is also listed under psql and PL/pgSQL 2015-11-27 [40cb21f70] Improve PQhost() to return useful data for default Unix- --> - Improve libpq's PQhost() function to - return useful data for default Unix-socket connections (Tom Lane) + Improve libpq's PQhost() function to return + useful data for default Unix-socket connections (Tom Lane) - Previously it would return NULL if no explicit host specification had - been given; now it returns the default socket directory path. + Previously it would return NULL if no explicit host + specification had been given; now it returns the default socket + directory path. @@ -2328,8 +2440,8 @@ This commit is also listed under psql and PL/pgSQL 2016-02-16 [fc1ae7d2e] Change ecpg lexer to accept comments with line breaks in --> - Fix ecpg's lexer to handle line breaks within comments - starting on preprocessor directive lines (Michael Meskes) + Fix ecpg's lexer to handle line breaks within + comments starting on preprocessor directive lines (Michael Meskes) @@ -2347,14 +2459,14 @@ This commit is also listed under psql and PL/pgSQL 2015-09-14 [d02426029] Check existency of table/schema for -t/-n option (pg_dum --> - Add - This option causes the program to complain if there is no match for - a or option, rather than - silently doing nothing. + This option causes the program to complain if there is no match + for a or option, rather + than silently doing nothing. @@ -2367,16 +2479,15 @@ This commit is also listed under psql and PL/pgSQL 2016-05-06 [e1b120a8c] Only issue LOCK TABLE commands when necessary --> - In pg_dump, - dump locally-made changes in privilege assignments for system objects - (Stephen Frost) + In pg_dump, dump locally-made changes in privilege + assignments for system objects (Stephen Frost) - While it's always been possible for a superuser to change the - privilege assignments for built-in or extension-created objects, - such changes were formerly lost in a dump and reload. Now, - pg_dump recognizes and dumps such changes. + While it has always been possible for a superuser to change + the privilege assignments for built-in or extension-created + objects, such changes were formerly lost in a dump and reload. + Now, pg_dump recognizes and dumps such changes. (This works only when dumping from a 9.6 or later server, however.) @@ -2386,19 +2497,9 @@ This commit is also listed under psql and PL/pgSQL 2016-04-06 [3b3fcc4ee] pg_dump: Add table qualifications to some tags --> - In pg_dump, include the table name in object tags - for object types that are only uniquely named per-table (for - example, triggers) (Peter Eisentraut) - - - - - - - Improve pg_restore's switch to - match all types of relations, not only plain tables (Craig Ringer) + In pg_dump, include the table name in object + tags for object types that are only uniquely named per-table + (for example, triggers) (Peter Eisentraut) @@ -2411,34 +2512,17 @@ This commit is also listed under psql and PL/pgSQL - - Support multiple and - command-line options (Pavel Stehule, Catalin Iacob) - - - - To allow this with sane behavior, one backwards incompatibility had to - be introduced: no longer - implies . - - - - - - Add a \crosstabview command that prints the - results of a query in a cross-tabulated display - (Daniel Vérité) + Add a \crosstabview command that prints the results of + a query in a cross-tabulated display (Daniel Vérité) - In the crosstab display, data values from one query result column are - placed in a grid whose column and row headers come from other query - result columns. + In the crosstab display, data values from one query result column + are placed in a grid whose column and row headers come from other + query result columns. @@ -2452,10 +2536,10 @@ This commit is also listed under psql and PL/pgSQL - This is very handy after getting an unexpected error — you no - longer need to adjust the VERBOSITY variable and recreate - the failure in order to see error fields that aren't shown by - default. + This is useful after getting an unexpected error — you + no longer need to adjust the VERBOSITY variable and + recreate the failure in order to see error fields that are not + shown by default. @@ -2465,13 +2549,13 @@ This commit is also listed under psql and PL/pgSQL 2016-05-06 [9b66aa006] Fix psql's \ev and \sv commands so that they handle view --> - Add \ev and \sv commands - for editing and showing view definitions (Petr Korobeinikov) + Add \ev and \sv commands for editing and + showing view definitions (Petr Korobeinikov) - These are parallel to the existing \ef and \sf - commands for functions. + These are parallel to the existing \ef and + \sf commands for functions. @@ -2480,8 +2564,8 @@ This commit is also listed under psql and PL/pgSQL 2016-04-04 [2bbe9112a] Add a \gexec command to psql for evaluation of computed --> - Add a \gexec command that executes a query and re-submits - the result(s) as new queries (Corey Huinker) + Add a \gexec command that executes a query and + re-submits the result(s) as new queries (Corey Huinker) @@ -2490,9 +2574,9 @@ This commit is also listed under psql and PL/pgSQL 2015-10-05 [2145a7660] psql: allow \pset C in setting the title, matches \C --> - Allow \pset C string to set the - table title, for consistency - with \C string (Bruce Momjian) + Allow \pset C string + to set the table title, for consistency with \C + string (Bruce Momjian) @@ -2501,8 +2585,9 @@ This commit is also listed under psql and PL/pgSQL 2016-03-11 [69ab7b9d6] psql: Don't automatically use expanded format when there --> - In \pset expanded auto mode, do not use expanded format - for query results with only one column (Andreas Karlsson, Robert Haas) + In \pset expanded auto mode, do not use expanded + format for query results with only one column (Andreas Karlsson, + Robert Haas) @@ -2512,16 +2597,16 @@ This commit is also listed under psql and PL/pgSQL 2016-06-15 [9901d8ac2] Use strftime("%c") to format timestamps in psql's \watch --> - Improve the headers output by the \watch command + Improve the headers output of the \watch command (Michael Paquier, Tom Lane) - Include the \pset title string if one has been set, and - shorten the prefabricated part of the header to be - timestamp (every Ns). - Also, the timestamp format now obeys psql's locale - environment. + Include the \pset title string if one has + been set, and shorten the prefabricated part of the + header to be timestamp (every + Ns). Also, the timestamp format now + obeys psql's locale environment. @@ -2530,13 +2615,13 @@ This commit is also listed under psql and PL/pgSQL 2015-12-20 [d854118c8] Teach psql's tab completion to consider the entire input --> - Improve tab-completion logic to consider the - entire input query, not only the current line (Tom Lane) + Improve tab-completion logic to consider the entire input query, + not only the current line (Tom Lane) - Previously, breaking a command into multiple lines defeated any tab - completion rules that would have needed to see words on earlier lines. + Previously, breaking a command into multiple lines defeated any + tab completion rules that needed to see words on earlier lines. @@ -2559,8 +2644,8 @@ This commit is also listed under psql and PL/pgSQL Numerous minor improvements in tab-completion behavior (Peter Eisentraut, Vik Fearing, Kevin Grittner, Kyotaro Horiguchi, Jeff - Janes, Andreas Karlsson, Fujii Masao, Thomas Munro, Masahiko Sawada, - Pavel Stehule) + Janes, Andreas Karlsson, Fujii Masao, Thomas Munro, Masahiko + Sawada, Pavel Stehule) @@ -2569,8 +2654,8 @@ This commit is also listed under psql and PL/pgSQL 2015-07-07 [275f05c99] Add psql PROMPT variable showing the pid of the connecte --> - Add a PROMPT option %p to - insert the process ID of the connected backend (Julien Rouhaud) + Add a PROMPT option %p to insert the + process ID of the connected backend (Julien Rouhaud) @@ -2580,9 +2665,9 @@ This commit is also listed under psql and PL/pgSQL This commit is also listed under libpq and PL/pgSQL --> - Introduce a feature whereby the CONTEXT field of messages - can be suppressed, either always or only for non-error messages - (Pavel Stehule) + Introduce a feature whereby the CONTEXT field of + messages can be suppressed, either always or only for non-error + messages (Pavel Stehule) @@ -2621,10 +2706,10 @@ This commit is also listed under libpq and PL/pgSQL - This change allows SQL commands in scripts to span multiple lines. - Existing custom scripts will need to be modified to add a semicolon - at the end of each line that does not have one already. (Doing so - does not break the script for use with older versions + This change allows SQL commands in scripts to span multiple + lines. Existing custom scripts will need to be modified to add a + semicolon at the end of each line that does not have one already. + (Doing so does not break the script for use with older versions of pgbench.) @@ -2637,9 +2722,9 @@ This commit is also listed under libpq and PL/pgSQL 2016-05-06 [951529948] Improve handling of numeric-valued variables in pgbench. --> - Support floating-point arithmetic, as well as - some built-in functions, - in expressions in backslash commands (Fabien Coelho) + Support floating-point arithmetic, as well as some built-in functions, in + expressions in backslash commands (Fabien Coelho) @@ -2648,15 +2733,18 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-29 [ad9566470] pgbench: Remove \setrandom. --> - Replace \setrandom with built-in functions (Fabien Coelho) + Replace \setrandom with built-in functions (Fabien + Coelho) - The new built-in functions include random(), - random_exponential(), and random_gaussian(), - which perform the same work as \setrandom, but are easier - to use since they can be embedded in larger expressions. Since these - additions have made \setrandom obsolete, remove it. + The new built-in functions include random(), + random_exponential(), and + random_gaussian(), which perform the same work as + \setrandom, but are easier to use since they can be + embedded in larger expressions. Since these additions have made + \setrandom obsolete, remove it. @@ -2666,13 +2754,13 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-03 [d561f1cae] pgbench: accept unambiguous builtin prefixes for -b --> - Allow invocation of multiple copies of the built-in scripts, not only - custom scripts (Fabien Coelho) + Allow invocation of multiple copies of the built-in scripts, + not only custom scripts (Fabien Coelho) - This is done with the new @@ -2698,13 +2786,13 @@ This commit is also listed under libpq and PL/pgSQL 2016-02-01 [1d0c3b3f8] pgbench: allow per-script statistics --> - Collect statistics for each script in a multi-script run - (Fabien Coelho) + Collect statistics for each script in a multi-script run (Fabien + Coelho) - This feature adds an intermediate level of detail to existing global - and per-command statistics printouts. + This feature adds an intermediate level of detail to existing + global and per-command statistics printouts. @@ -2713,8 +2801,8 @@ This commit is also listed under libpq and PL/pgSQL 2015-09-16 [1def9063c] pgbench progress with timestamp --> - Add a @@ -2724,8 +2812,8 @@ This commit is also listed under libpq and PL/pgSQL 2015-07-03 [ba3deeefb] Lift the limitation that # of clients must be a multiple --> - Allow the number of client connections ( @@ -2735,13 +2823,14 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-09 [accf7616f] pgbench: When -T is used, don't wait for transactions be --> - When the - Previously, specifying a low transaction rate could - cause pgbench to wait significantly longer than that. + Previously, specifying a low transaction rate could cause + pgbench to wait significantly longer than + specified. @@ -2761,15 +2850,16 @@ This commit is also listed under libpq and PL/pgSQL 2015-12-17 [66d947b9d] Adjust behavior of single-user -j mode for better initdb --> - Improve error reporting during initdb's post-bootstrap - phase (Tom Lane) + Improve error reporting during initdb's + post-bootstrap phase (Tom Lane) - Previously, an error here led to reporting the entire input file as - the failing query; now just the current query is reported. - To get the desired behavior, queries in initdb's - input files must be separated by blank lines. + Previously, an error here led to reporting the entire input + file as the failing query; now just the current + query is reported. To get the desired behavior, queries in + initdb's input files must be separated by blank + lines. @@ -2778,8 +2868,9 @@ This commit is also listed under libpq and PL/pgSQL 2015-12-17 [c4a8812cf] Use just one standalone-backend session for initdb's pos --> - Speed up initdb by using just one standalone-backend - session for all the post-bootstrap steps (Tom Lane) + Speed up initdb by using just one + standalone-backend session for all the post-bootstrap steps + (Tom Lane) @@ -2812,7 +2903,8 @@ This commit is also listed under libpq and PL/pgSQL 2015-07-02 [726117243] Remove obsolete heap_formtuple/modifytuple/deformtuple f --> - Remove obsolete heap_formtuple/heap_modifytuple/heap_deformtuple + Remove obsolete + heap_formtuple/heap_modifytuple/heap_deformtuple functions (Peter Geoghegan) @@ -2827,8 +2919,8 @@ This commit is also listed under libpq and PL/pgSQL - This may result in warnings and/or wasted code space with very old - compilers, but the notational improvement seems worth it. + This may result in warnings and/or wasted code space with very + old compilers, but the notational improvement seems worth it. @@ -2843,13 +2935,13 @@ This commit is also listed under libpq and PL/pgSQL 2016-05-06 [6bd356c33] Add TAP tests for pg_dump --> - Improve TAP testing infrastructure - (Michael Paquier, Craig Ringer, Álvaro Herrera, Stephen Frost) + Improve TAP testing infrastructure (Michael + Paquier, Craig Ringer, Álvaro Herrera, Stephen Frost) - Notably, it is now possible to test recovery scenarios using this - infrastructure. + Notably, it is now possible to test recovery scenarios using + this infrastructure. @@ -2875,8 +2967,8 @@ This commit is also listed under libpq and PL/pgSQL - Tab-completion rules are now considerably easier to write, and more - compact. + Tab-completion rules are now considerably easier to write, and + more compact. @@ -2891,8 +2983,8 @@ This commit is also listed under libpq and PL/pgSQL - The core code doesn't use this catalog for authentication, but - extensions might wish to consult it. + The core code does not use this catalog for authentication, + but extensions might wish to consult it. @@ -2902,17 +2994,17 @@ This commit is also listed under libpq and PL/pgSQL 2016-01-21 [be44ed27b] Improve index AMs' opclass validation procedures. --> - Restructure index access method API to hide most of it at the C level - (Alexander Korotkov) + Restructure index access method API to hide most of + it at the C level (Alexander Korotkov) - This change modernizes the index AM API to look more like the designs - we've adopted for foreign data wrappers and tablesample handlers. - This simplifies the C code and should make it more feasible to define - index access methods in installable extensions. A consequence is - that most of the columns of the pg_am system catalog - have disappeared. + This change modernizes the index AM API to look more + like the designs we have adopted for foreign data wrappers and + tablesample handlers. This simplifies the C code + and should make it more feasible to define index access methods in + installable extensions. A consequence is that most of the columns + of the pg_am system catalog have disappeared. @@ -2928,9 +3020,9 @@ This commit is also listed under libpq and PL/pgSQL This infrastructure allows pg_dump to dump changes - that an installation may have made in privileges attached to system - objects. Formerly, such changes would be lost in a dump and reload, - but now they can be preserved. + that an installation may have made in privileges attached to + system objects. Formerly, such changes would be lost in a dump + and reload, but now they can be preserved. @@ -2939,14 +3031,15 @@ This commit is also listed under libpq and PL/pgSQL 2016-02-04 [c1772ad92] Change the way that LWLocks for extensions are allocated --> - Change the way that extensions allocate custom LWLocks + Change the way that extensions allocate custom LWLocks (Amit Kapila, Robert Haas) - The RequestAddinLWLocks() function is removed, and - replaced by RequestNamedLWLockTranche(). This allows - better identification of custom LWLocks, and is less error-prone. + The RequestAddinLWLocks() function is removed, + and replaced by RequestNamedLWLockTranche(). + This allows better identification of custom LWLocks, + and is less error-prone. @@ -2969,8 +3062,9 @@ This commit is also listed under libpq and PL/pgSQL - This change allows FDWs or custom scan providers to store data in a - plan tree in a more convenient format than was previously possible. + This change allows FDWs or custom scan providers + to store data in a plan tree in a more convenient format than + was previously possible. @@ -2985,13 +3079,14 @@ This commit is also listed under libpq and PL/pgSQL --> Make the planner deal with post-scan/join query steps by generating - and comparing Paths, replacing a lot of very ad-hoc logic (Tom Lane) + and comparing Paths, replacing a lot of ad-hoc logic + (Tom Lane) This change provides only marginal user-visible improvements today, but it enables future work on a lot of upper-planner improvements - that were impractical to tackle in the old code structure. + that were impractical to tackle using the old code structure. @@ -3008,8 +3103,8 @@ This commit is also listed under libpq and PL/pgSQL This change allows the computation of an aggregate function to be split into separate parts, for example so that parallel worker - processes can cooperate on computing an aggregate. In future it - might allow aggregation across local and remote data to occur + processes can cooperate on computing an aggregate. In future + it might allow aggregation across local and remote data to occur partially on the remote end. @@ -3034,24 +3129,25 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-24 [c1156411a] Move psql's psqlscan.l into src/fe_utils. --> - Separate out psql's flex lexer to make it usable by - other client programs too (Tom Lane, Kyotaro Horiguchi) + Separate out psql's flex lexer to + make it usable by other client programs too (Tom Lane, Kyotaro + Horiguchi) This eliminates code duplication for programs that need to be able to parse SQL commands well enough to identify command boundaries. - Doing that in full generality is more painful than one could wish, - and up to now only psql has really gotten it right - among our supported client programs. + Doing that in full generality is more painful than one could + wish, and up to now only psql has really gotten + it right among our supported client programs. - A new source-code subdirectory src/fe_utils/ has been - created to hold this and other code that's shared across our client - programs. Formerly such sharing was accomplished by symlinking or - copying source files at build time, which was ugly and required - duplicate compilation work. + A new source-code subdirectory src/fe_utils/ has + been created to hold this and other code that is shared across + our client programs. Formerly such sharing was accomplished by + symbolic linking or copying source files at build time, which + was ugly and required duplicate compilation. @@ -3060,9 +3156,9 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-21 [98a64d0bd] Introduce WaitEventSet API. --> - Introduce WaitEventSet API to allow efficient waiting for event - sets that usually don't change from one wait to the next - (Andres Freund, Amit Kapila) + Introduce WaitEventSet API to allow + efficient waiting for event sets that usually do not change from + one wait to the next (Andres Freund, Amit Kapila) @@ -3071,16 +3167,17 @@ This commit is also listed under libpq and PL/pgSQL 2016-04-01 [65578341a] Add Generic WAL interface --> - Add a generic interface for writing WAL records + Add a generic interface for writing WAL records (Alexander Korotkov, Petr Jelínek, Markus Nullmeier) - This change allows extensions to write WAL records for changes to - pages with standard layout. The problem of needing to replay WAL - without access to the extension is solved by having generic replay - code. This allows extensions to implement, for example, index access - methods and have WAL support for them. + This change allows extensions to write WAL records for + changes to pages with standard layout. The problem of needing to + replay WAL without access to the extension is solved by + having generic replay code. This allows extensions to implement, + for example, index access methods and have WAL + support for them. @@ -3089,14 +3186,14 @@ This commit is also listed under libpq and PL/pgSQL 2016-04-06 [3fe3511d0] Generic Messages for Logical Decoding --> - Support generic WAL messages for logical decoding + Support generic WAL messages for logical decoding (Petr Jelínek, Andres Freund) - This feature allows extensions to insert data into the WAL stream - that can be read by logical-decoding plugins, but is not connected to - physical data restoration. + This feature allows extensions to insert data into the + WAL stream that can be read by logical-decoding + plugins, but is not connected to physical data restoration. @@ -3106,14 +3203,15 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-30 [87545f541] Use traversalValue in SP-GiST range opclass. --> - Allow SP-GiST operator classes to store an arbitrary traversal - value while descending the index (Alexander Lebedev, Teodor Sigaev) + Allow SP-GiST operator classes to store an arbitrary + traversal value while descending the index (Alexander + Lebedev, Teodor Sigaev) - This is somewhat like the reconstructed value, but it could - be any arbitrary chunk of data, it need not be of the same data type - as the indexed column. + This is somewhat like the reconstructed value, but it + could be any arbitrary chunk of data, it need not be of the same + data type as the indexed column. @@ -3122,14 +3220,14 @@ This commit is also listed under libpq and PL/pgSQL 2016-04-04 [66229ac00] Introduce a LOG_SERVER_ONLY ereport level, which is neve --> - Introduce a LOG_SERVER_ONLY message level - for ereport() (David Steele) + Introduce a LOG_SERVER_ONLY message level for + ereport() (David Steele) - This level acts like LOG except that the message is never - sent to the client. It's meant for use in auditing and similar - applications. + This level acts like LOG except that the message is + never sent to the client. It is meant for use in auditing and + similar applications. @@ -3138,14 +3236,14 @@ This commit is also listed under libpq and PL/pgSQL 2016-07-01 [548af97fc] Provide and use a makefile target to build all generated --> - Provide a makefile target to build all generated headers (Michael - Paquier, Tom Lane) + Provide a Makefile target to build all generated + headers (Michael Paquier, Tom Lane) submake-generated-headers can now be invoked to ensure - that generated backend header files are up-to-date. This is useful in - subdirectories that might be built standalone. + that generated backend header files are up-to-date. This is + useful in subdirectories that might be built standalone. @@ -3180,8 +3278,9 @@ This commit is also listed under libpq and PL/pgSQL 2016-04-01 [9ee014fc8] Bloom index contrib module --> - Add contrib/bloom module that implements an index access - method based on Bloom filtering (Teodor Sigaev, Alexander Korotkov) + Add contrib/bloom module that implements an index + access method based on Bloom filtering (Teodor Sigaev, Alexander + Korotkov) @@ -3197,9 +3296,9 @@ This commit is also listed under libpq and PL/pgSQL 2015-12-28 [81ee726d8] Code and docs review for cube kNN support. --> - In contrib/cube, introduce distance operators for cubes, - and support kNN-style searches in GiST indexes on cube columns - (Stas Kelvich) + In contrib/cube, introduce distance operators for + cubes, and support kNN-style searches in GiST indexes on cube + columns (Stas Kelvich) @@ -3208,17 +3307,19 @@ This commit is also listed under libpq and PL/pgSQL 2016-02-03 [41d2c081c] Make hstore_to_jsonb_loose match hstore_to_json_loose on --> - Make contrib/hstore's hstore_to_jsonb_loose() - and hstore_to_json_loose() functions agree on what's a - number (Tom Lane) + Make contrib/hstore's hstore_to_jsonb_loose() + and hstore_to_json_loose() functions agree on what + is a number (Tom Lane) Previously, hstore_to_jsonb_loose() would convert - numeric-looking strings to JSON numbers, rather than strings, even if - they did not exactly match the JSON syntax specification for numbers. - This was inconsistent with hstore_to_json_loose(), so - tighten the test to match the JSON syntax. + numeric-looking strings to JSON numbers, rather than + strings, even if they did not exactly match the JSON + syntax specification for numbers. This was inconsistent with + hstore_to_json_loose(), so tighten the test to match + the JSON syntax. @@ -3227,9 +3328,9 @@ This commit is also listed under libpq and PL/pgSQL 2015-07-21 [c6fbe6d6f] Add selectivity estimation functions for intarray operat --> - Add selectivity estimation functions for contrib/intarray - operators, to improve plans for queries using those operators (Yury - Zhuravlev, Alexander Korotkov) + Add selectivity estimation functions for + contrib/intarray operators, to improve plans for + queries using those operators (Yury Zhuravlev, Alexander Korotkov) @@ -3238,10 +3339,11 @@ This commit is also listed under libpq and PL/pgSQL 2015-11-25 [d6061f83a] Improve pageinspect module --> - Make contrib/pageinspect's heap_page_items() - function show the raw data in each tuple, and add new - functions tuple_data_split() - and heap_page_item_attrs() for inspection of individual + Make contrib/pageinspect's + heap_page_items() function show the raw data in each + tuple, and add new functions tuple_data_split() and + heap_page_item_attrs() for inspection of individual tuple fields (Nikolay Shaplov) @@ -3251,9 +3353,9 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-09 [188f359d3] pgcrypto: support changing S2K iteration count --> - Add an optional S2K iteration count parameter - to contrib/pgcrypto's pgp_sym_encrypt() - function (Jeff Janes) + Add an optional S2K iteration count parameter to + contrib/pgcrypto's + pgp_sym_encrypt() function (Jeff Janes) @@ -3262,9 +3364,8 @@ This commit is also listed under libpq and PL/pgSQL 2016-03-16 [f576b17cd] Add word_similarity to pg_trgm contrib module. --> - Add support for word similarity - to contrib/pg_trgm - (Alexander Korotkov, Artur Zakirov) + Add support for word similarity to + contrib/pg_trgm (Alexander Korotkov, Artur Zakirov) @@ -3279,9 +3380,10 @@ This commit is also listed under libpq and PL/pgSQL 2016-06-20 [9c852566a] Fix comparison of similarity to threshold in GIST trigra --> - Add configuration parameter pg_trgm.similarity_threshold - for contrib/pg_trgm's similarity threshold - (Artur Zakirov) + Add configuration parameter + pg_trgm.similarity_threshold for contrib/pg_trgm's similarity + threshold (Artur Zakirov) @@ -3296,8 +3398,9 @@ This commit is also listed under libpq and PL/pgSQL 2015-07-20 [97f301464] This supports the triconsistent function for pg_trgm GIN --> - Improve contrib/pg_trgm's GIN operator class to speed up - index searches in which both common and rare keys appear (Jeff Janes) + Improve contrib/pg_trgm's GIN operator class to + speed up index searches in which both common and rare keys appear + (Jeff Janes) @@ -3327,31 +3430,10 @@ This commit is also listed under libpq and PL/pgSQL 2015-09-07 [49124613f] contrib/sslinfo: add ssl_extension_info SRF --> - Add ssl_extension_info() function - to contrib/sslinfo, to print information about SSL - extensions present in the X509 certificate used for the current - connection (Dmitry Voronin) - - - - - - - Extend contrib/unaccent's - standard unaccent.rules file to handle all diacritics - known to Unicode, and expand ligatures correctly - (Thomas Munro, Léonard Benedetti) - - - - The previous version omitted some less-common letters with diacritic - marks. It now also expands ligatures into separate letters. - Installations that use this rules file may wish to - rebuild tsvector columns and indexes that depend on the - result. + Add ssl_extension_info() + function to contrib/sslinfo, to print information + about SSL extensions present in the X509 + certificate used for the current connection (Dmitry Voronin) @@ -3373,9 +3455,9 @@ This commit is also listed under libpq and PL/pgSQL - Users can enable this feature when the extension is known to exist in - a compatible version in the remote database. It allows more efficient - execution of queries involving extension operators. + Users can enable this feature when the extension is known to exist + in a compatible version in the remote database. It allows more + efficient execution of queries involving extension operators. @@ -3412,9 +3494,9 @@ This commit is also listed under libpq and PL/pgSQL Formerly, this involved sending a SELECT FOR UPDATE command and then updating or deleting the selected rows one-by-one. - While that's still necessary if the operation requires any local - processing, it can now be done remotely if all elements of the query - are safe to send to the remote server. + While that is still necessary if the operation requires any local + processing, it can now be done remotely if all elements of the + query are safe to send to the remote server. @@ -3428,8 +3510,8 @@ This commit is also listed under libpq and PL/pgSQL - Formerly, postgres_fdw always fetched 100 rows at a time - from remote queries; now that behavior is adjustable. + Formerly, postgres_fdw always fetched 100 rows at + a time from remote queries; now that behavior is configurable. @@ -3438,8 +3520,8 @@ This commit is also listed under libpq and PL/pgSQL 2016-01-28 [96198d94c] Avoid multiple foreign server connections when all use s --> - Use a single foreign-server connection for local user IDs that all - map to the same remote user (Ashutosh Bapat) + Use a single foreign-server connection for local user IDs that + all map to the same remote user (Ashutosh Bapat) @@ -3454,8 +3536,8 @@ This commit is also listed under libpq and PL/pgSQL - Previously, a local query cancellation request did nothing to cause - an already-sent remote query to terminate early. + Previously, a local query cancellation request did not cause an + already-sent remote query to terminate early.