diff --git a/doc/src/sgml/release-11.sgml b/doc/src/sgml/release-11.sgml index ca42f28cc9..0d6b921f5b 100644 --- a/doc/src/sgml/release-11.sgml +++ b/doc/src/sgml/release-11.sgml @@ -6,7 +6,7 @@ Release date: - 2018-10-?? (CURRENT AS OF 2018-09-20) + 2018-10-18 @@ -29,18 +29,6 @@ Partitioning by a hash key - - - UPDATE statements that change a partition key - now move affected rows to the appropriate partitions - - - - - Improved SELECT performance from enhanced partition - elimination strategies during query processing and execution - - Support for PRIMARY KEY, FOREIGN @@ -49,8 +37,20 @@ - Having a "default" partition for storing data that does not match any - of the remaining partitions + Allow creation of a default partition for storing + data that does not match any of the remaining partitions + + + + + UPDATE statements that change a partition key + column now move affected rows to the appropriate partitions + + + + + Improved SELECT performance due to enhanced + partition elimination strategies during query processing @@ -63,21 +63,22 @@ - B-tree indexes can now be built in parallel with - CREATE INDEX + CREATE INDEX can now use parallel processing + while building B-tree indexes - Parallelized CREATE TABLE .. AS, + Parallelization is now possible in CREATE TABLE + ... AS, CREATE MATERIALIZED VIEW, and certain queries using UNION - Performance improvements for parallelized hash joins and parallelized - sequential scans + Parallelized hash joins and parallelized sequential scans now + perform better @@ -86,17 +87,14 @@ - SQL stored procedures that support embedded transactions. Stored - procedures can be created with - CREATE PROCEDURE and executed with - CALL + SQL stored procedures that support embedded transactions - Optional Just-in-Time (JIT) compilation of some SQL code, including - support for fast evaluation of expressions + Optional Just-in-Time (JIT) compilation for some SQL code, speeding + evaluation of expressions @@ -111,7 +109,7 @@ - Covering indexes, which can be utilized using the + Covering indexes can now be created, using the INCLUDE clause of CREATE INDEX @@ -119,7 +117,7 @@ Many other useful performance improvements, including making - ALTER TABLE .. ADD COLUMN with a + ALTER TABLE ... ADD COLUMN with a non-null column default faster @@ -157,74 +155,48 @@ --> - Have pg_dump - dump all aspects of a database (Haribabu Kommi) + dump the properties of a database, not just its contents + (Haribabu Kommi) - Previously database attributes like + Previously, attributes of the database itself, such as database-level GRANT/REVOKE permissions and - ALTER DATABASE SET and ALTER ROLE IN - DATABASE SET variable settings were only dumped by pg_dumpall. + ALTER DATABASE SET variable settings, were only + dumped by pg_dumpall. Now pg_dump --create and - pg_restore --create will restore all - database aspects. pg_dumpall -g will - now only output role and tablespace-related attributes. - pg_dumpall's output (without + pg_restore --create will restore these database + properties in addition to the objects within the + database. pg_dumpall -g now only dumps role- + and tablespace-related attributes. + pg_dumpall's complete output (without ) is unchanged. pg_dump and pg_restore, without - , no longer dump/restore database comments - and security labels. + , no longer dump/restore database-level + comments and security labels; those are now treated as properties of + the database. - pg_dumpall --clean now restores the "postgres" - and "template1" databases with the original locale and encoding - settings. - - - - A restore of pg_dumpall will now create - databases with their original locale and encoding, and will fail if - the creation fails. Previously CREATE DATABASE - would be dumped without such specifications if the database locale + pg_dumpall's output script will now always + create databases with their original locale and encoding, and hence + will fail if the locale or encoding name is unknown to the + destination system. Previously CREATE DATABASE + would be emitted without these specifications if the database locale and encoding matched the old cluster's defaults. - - - - - Correct information schema column tables.table_type - to return FOREIGN instead of FOREIGN - TABLE (Peter Eisentraut) - - - - This new output matches the SQL standard. - - - - - - - - Change the ps process display - labels for background workers to match the pg_stat_activity.backend_type - labels (Peter Eisentraut) + pg_dumpall --clean now restores the original + locale and encoding settings of the postgres + and template1 databases, as well as those of + user-created databases. @@ -257,6 +229,24 @@ + + Fully enforce uniqueness of table and domain constraint names + (Tom Lane) + + + + PostgreSQL expects the names of a table's + constraints to be distinct, and likewise for the names of a domain's + constraints. However, there was not rigid enforcement of this, and + previously there were corner cases where duplicate names could be + created. + + + + + - In the Extended Query - Protocol, have statement_timeout - apply to each Execute message, not to all commands before Sync - (Tatsuo Ishii, Andres Freund) + In the extended query + protocol, + make statement_timeout + apply to each Execute message separately, not to all commands before + Sync (Tatsuo Ishii, Andres Freund) @@ -377,8 +370,8 @@ --> - Remove relhaspkey column from system - table pg_class (Peter Eisentraut) + Remove the relhaspkey column from system + catalog pg_class (Peter Eisentraut) @@ -393,29 +386,79 @@ --> - Replace system table pg_proc's + Replace system catalog pg_proc's proisagg and - proiswindow with + proiswindow columns with prokind (Peter Eisentraut) - This new column more clearly identifies functions, procedures, + This new column more clearly distinguishes functions, procedures, aggregates, and window functions. + + + Correct information schema column tables.table_type + to return FOREIGN instead of FOREIGN + TABLE (Peter Eisentraut) + + + + This new output matches the SQL standard. + + + + + + + + Change the ps process display + labels for background workers to match the pg_stat_activity.backend_type + labels (Peter Eisentraut) + + + + + Cause large object permission checks - to happen on large object open, lo_open(), not - read/write (Tom Lane, Michael Paquier) + when a read or write is attempted (Tom Lane, Michael Paquier) + + + + If write access is requested and not available, an error will now be + thrown even if the large object is never written to. + + + + + + + Prevent non-superusers from reindexing shared catalogs + (Michael Paquier, Robert Haas) + + + + Previously, database owners were also allowed to do this, but + now it is considered outside the bounds of their privileges. @@ -425,17 +468,18 @@ --> - Remove deprecated contrib/adminpack functions + Remove deprecated adminpack functions pg_file_read(), pg_file_length(), and pg_logfile_rotate() (Stephen Frost) - These functions are now present by default. Old adminpack - installs will continue to have access to these functions until - they are updated via ALTER EXTENSION ... UPDATE. + Equivalent functionality is now present in the core backend. + Existing adminpack installs will continue to have + access to these functions until they are updated via ALTER + EXTENSION ... UPDATE. @@ -450,8 +494,10 @@ - Previously index options names like ("FillFactor" = 50) were - automatically lower-cased. This quoted capitalization will now + Previously, option names in certain SQL commands were forcibly + lower-cased even if entered with double quotes; thus for example + "FillFactor" would be accepted as an index storage + option, though properly its name is lower-case. Such cases will now generate an error. @@ -462,7 +508,7 @@ --> - Remove server variable replacement_sort_tuples + Remove server parameter replacement_sort_tuples (Peter Geoghegan) @@ -512,6 +558,120 @@ + + + Allow the creation of partitions based on hashing a key column + (Amul Sul) + + + + + + + + Allow UNIQUE indexes on partitioned tables if + the partition key is part of the index (Álvaro Herrera, + Amit Langote) + + + + + + + + Allow indexes on a partitioned table to be automatically created + in new child partitions (Álvaro Herrera) + + + + The new command ALTER + INDEX ATTACH PARTITION allows indexes to be + attached to partitions. This does not behave as a global index + since the contents are private to each index. + + + + + + + + Allow foreign keys on partitioned tables (Álvaro Herrera) + + + + + + + + Allow FOR EACH ROW triggers on partitioned + tables (Álvaro Herrera) + + + + Creation of a trigger on a partitioned table automatically creates + triggers on all existing partitions, and on newly-created ones. + This also allows deferred unique constraints on partitioned tables. + + + + + + + + Allow partitioned tables to have a default partition (Jeevan Ladhe, + Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas) + + + + The default partition will store rows that don't match any of the + other defined partitions, and is searched accordingly. + + + + + + + + Allow updated rows to automatically move to new partitions based + on the new row contents (Amit Khandekar) + + + + + + + + Allow INSERT, UPDATE, and + COPY on partitioned tables to properly route + rows to foreign partitions (Etsuro Fujita, Amit Langote) + + + + This is supported by postgres_fdw + foreign tables. + + + + + - - - Allow the creation of partitions based on hashing a key (Amul Sul) - - - - - - - - Allow updated rows to automatically move to new partitions based - on the new row contents (Amit Khandekar) - - - - - - - - Allow partitioned tables to have a default partition (Jeevan Ladhe, - Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas) - - - - The default partition can store rows that don't match any of the - other defined partitions, and is searched accordingly. - - - - - - - - Allow UNIQUE indexes on partitioned tables if - the partition key guarantees uniqueness (Álvaro Herrera, - Amit Langote) - - - - - - - - Allow indexes on a partitioned table to be automatically created - in any child partitions (Álvaro Herrera) - - - - The new command ALTER - INDEX ATTACH PARTITION allows indexes to be - attached to partitions. This does not behave as a global index - since the contents are private to each index. - - - - - - - - Allow foreign keys on partitioned tables (Álvaro Herrera) - - - - - - - - Allow INSERT, UPDATE, and - COPY on partitioned tables to properly route - rows to foreign partitions (Etsuro Fujita, Amit Langote) - - - - This is supported by postgres_fdw - foreign tables. - - - - - - - - Allow FOR EACH ROW triggers on partitioned - tables (Álvaro Herrera) - - - - Creation of a trigger on partitioned tables automatically creates - triggers on all partition tables, and on newly-created ones. - This also allows deferred unique constraints on partitioned tables. - - - - - - Add server option parallel_leader_participation - to control if the leader executes subplans (Thomas Munro) + to control whether the leader also executes subplans (Thomas Munro) @@ -821,7 +868,7 @@ same commits as above Allow parallelization of commands CREATE TABLE - .. AS, SELECT INTO, and + ... AS, SELECT INTO, and CREATE MATERIALIZED VIEW (Haribabu Kommi) @@ -844,7 +891,7 @@ same commits as above --> - Add reporting of parallel worker sort activity to + Add reporting of parallel workers' sort activity in EXPLAIN (Robert Haas, Tom Lane) @@ -865,16 +912,18 @@ same commits as above --> - Allow indexes to INCLUDE columns - that are not part of the unique constraint but are available - for index-only scans (Anastasia Lubennikova, Alexander Korotkov, - Teodor Sigaev) + Allow B-tree indexes to include columns that are not part of the + search key or unique constraint, but are available to be read by + index-only scans (Anastasia Lubennikova, Alexander Korotkov, Teodor + Sigaev) - This is also useful for including columns that don't have btree - support. + This is enabled by the new INCLUDE clause of CREATE INDEX. + It facilitates building covering indexes that optimize + specific types of queries. Columns can be included even if their + data types don't have B-tree support. @@ -885,9 +934,8 @@ same commits as above --> - Remember the highest btree index page to optimize future - monotonically increasing index additions (Pavan Deolasee, Peter - Geoghegan) + Improve performance of monotonically increasing index additions + (Pavan Deolasee, Peter Geoghegan) @@ -897,12 +945,7 @@ same commits as above --> - Allow entire hash index pages to be scanned (Ashutosh Sharma) - - - - Previously for each hash index entry, we need to refind the scan - position within the page. This cuts down on lock/unlock traffic. + Improve performance of hash index scans (Ashutosh Sharma) @@ -919,7 +962,8 @@ same commits as above - This reduces the likelihood of serialization conflicts. + This reduces the likelihood of serialization conflicts in + serializable-mode transactions. @@ -949,13 +993,14 @@ same commits as above --> - Add TEXT prefix operator ^@ which is supported by - SP-GiST (Ildus Kurbangaliev) + Add prefix-match + operator text ^@ text, + which is supported by SP-GiST (Ildus Kurbangaliev) - This is similar to using LIKE 'word%' with - btree indexes, but is more efficient. + This is similar to using var LIKE + 'word%' with a btree index, but it is more efficient. @@ -999,17 +1044,17 @@ same commits as above --> - Improve the selection of the optimizer statistics' - most-common-values (Jeff Janes, Dean Rasheed) + Improve selection of the most common values for statistics + (Jeff Janes, Dean Rasheed) - Previously most-common-values (MCV) were - chosen based on their significance compared to all column - values. Now, MCV are chosen based on their - significance compared to the non-MCV values. - This improves the statistics for uniform (fewer) and non-uniform - (more) distributions. + Previously the most common values (MCVs) were + identified based on their frequency compared to all column + values. Now, MCVs are chosen based on their + frequency compared to the non-MCV values. + This improves the robustness of the algorithm for both uniform and + non-uniform distributions. @@ -1019,14 +1064,16 @@ same commits as above --> - Improve selectivity estimates for >= and <= when the - constants are not common values (Tom Lane) + Improve selectivity estimates for >= + and <= (Tom Lane) - Previously such cases used the same selectivity as > and - <, respectively. This change is particularly useful for - BETWEEN with small ranges. + Previously such cases used the same selectivity estimates + as > and <, respectively, + unless the comparison constants are MCVs. + This change is particularly helpful for queries + involving BETWEEN with small ranges. @@ -1036,8 +1083,10 @@ same commits as above --> - Optimize var = var to var IS NOT NULL where - equivalent (Tom Lane) + Reduce var = + var + to var IS NOT NULL + where equivalent (Tom Lane) @@ -1051,7 +1100,7 @@ same commits as above --> - Improve row count optimizer estimates for EXISTS + Improve optimizer's row count estimates for EXISTS and NOT EXISTS queries (Tom Lane) @@ -1062,8 +1111,8 @@ same commits as above --> - Add optimizer selectivity costs for HAVING - clauses (Tom Lane) + Make the optimizer account for evaluation costs and selectivity + of HAVING clauses (Tom Lane) @@ -1085,6 +1134,7 @@ same commits as above 2018-03-26 [32af96b2b] JIT tuple deforming in LLVM JIT provider. 2018-03-27 [f4f5845b3] Quick adaption of JIT tuple deforming to the fast defaul 2018-03-28 [9370462e9] Add inlining support to LLVM JIT provider. +2018-09-15 [0fdadfb01] In v11, disable JIT by default (it's still enabled by de --> @@ -1095,7 +1145,7 @@ same commits as above This feature requires LLVM to be - available, and it is not currently enabled by default, even in + available. It is not currently enabled by default, even in builds that support it. @@ -1118,7 +1168,8 @@ same commits as above --> - Update the free space map during vacuum (Claudio Freire) + Update the free space map during VACUUM + (Claudio Freire) @@ -1132,8 +1183,8 @@ same commits as above --> - Allow vacuum to avoid unnecessary index scans (Masahiko Sawada, - Alexander Korotkov) + Allow VACUUM to avoid unnecessary index scans + (Masahiko Sawada, Alexander Korotkov) @@ -1161,12 +1212,22 @@ same commits as above + + + Improve the speed of aggregate computations (Andres Freund) + + + + + Allow postgres_fdw + linkend="postgres-fdw">postgres_fdw to push UPDATEs and DELETEs using joins to foreign servers (Etsuro Fujita) @@ -1178,6 +1239,23 @@ same commits as above + + + + + Add support for large pages on Windows + (Takayuki Tsunakawa, Thomas Munro) + + + + This is controlled by the huge_pages configuration + parameter. + + + @@ -1193,10 +1271,10 @@ same commits as above --> - Show memory usage in log_statement_stats, log_parser_stats, - log_planner_stats, + log_planner_stats, and log_executor_stats (Justin Pryzby, Peter Eisentraut) @@ -1208,20 +1286,13 @@ same commits as above --> - Add pg_stat_activity.backend_type - now shows the type of background worker (Peter Eisentraut) + to show the type of a background worker (Peter Eisentraut) - Add bgw_type to the background worker - C structure (Peter Eisentraut) - - - - This is displayed to the user in - pg_stat_activity.backend_type - and ps output. + The type is also visible in ps output. @@ -1231,7 +1302,7 @@ same commits as above --> - Have log_autovacuum_min_duration log skipped tables that are concurrently being dropped (Nathan Bossart) @@ -1252,17 +1323,19 @@ same commits as above --> - Add information_schema columns related to table constraints and - triggers (Peter Eisentraut) + Add information_schema columns related to table + constraints and triggers (Peter Eisentraut) Specifically, - table_constraints.enforced, triggers.action_order, triggers.action_reference_old_table, and - triggers.action_reference_new_table. + triggers.action_reference_new_table + are now populated, where before they were always null. Also, + table_constraints.enforced + now exists but is not yet usefully populated. @@ -1301,16 +1374,17 @@ same commits as above --> - Allow LDAP authentication to use ldaps - (Thomas Munro) + Allow LDAP authentication to use + encrypted LDAP (Thomas Munro) We already supported LDAP over - TLS by using ldaptls=1. This new - TLS LDAP method of encrypted - LDAP is enabled with ldapscheme=ldaps or - ldapurl=ldaps://. + TLS by using ldaptls=1. + This new TLS LDAP method for + encrypted LDAP is enabled + with ldapscheme=ldaps + or ldapurl=ldaps://. @@ -1320,7 +1394,7 @@ same commits as above --> - Improve LDAP logging of errors (Thomas Munro) + Improve logging of LDAP errors (Thomas Munro) @@ -1341,16 +1415,17 @@ same commits as above --> - Add default roles which control file system access (Stephen Frost) + Add default roles that + enable file system access (Stephen Frost) - Specifically, the new roles are: pg_read_server_files, - pg_write_server_files, + Specifically, the new roles are: + pg_read_server_files, + pg_write_server_files, and pg_execute_server_program. These roles now also - control who can use COPY and extension file_fdw. + control who can use server-side COPY and the file_fdw extension. Previously only superusers could use these functions, and that is still the default behavior. @@ -1390,12 +1465,11 @@ same commits as above - Previously, superusers were exclusively granted access to these - functions. + Previously, only superusers were granted access to these functions. - Compile-time option ALLOW_DANGEROUS_LO_FUNCTIONS + The compile-time option ALLOW_DANGEROUS_LO_FUNCTIONS has been removed. @@ -1408,13 +1482,13 @@ same commits as above Use view owner not session owner when preventing non-password access to postgres_fdw + linkend="postgres-fdw">postgres_fdw tables (Robert Haas) PostgreSQL only allows superusers to - access postgres_fdw tables without + access postgres_fdw tables without passwords, e.g. via peer. Previously the session owner had to be a superuser to allow such access; now the view owner is checked instead. @@ -1471,8 +1545,8 @@ same commits as above Add storage parameter toast_tuple_target - to control the minimum length before TOAST - storage will be considered for new rows (Simon Riggs) + to control the minimum tuple length before TOAST + storage will be considered (Simon Riggs) @@ -1489,12 +1563,13 @@ same commits as above Allow server options related to memory and file sizes to be - specified as number of bytes (Beena Emerson) + specified as a number of bytes (Beena Emerson) - The new unit is "B". This is in addition to "kB", "MB", "GB" - and "TB". + The new unit is B. This is in addition to the + existing units kB, MB, GB + and TB. @@ -1514,8 +1589,8 @@ same commits as above --> - Allow the WAL file size to be set via initdb - (Beena Emerson) + Allow the WAL file size to be set + during initdb (Beena Emerson) @@ -1534,8 +1609,8 @@ same commits as above - The retention of WAL records for only one - checkpoint is required. + Retention of WAL records is only required for one + checkpoint. @@ -1610,7 +1685,7 @@ same commits as above --> - Allow heap pages checksums to be checked during streaming base + Allow heap pages' checksums to be checked during streaming base backup (Michael Banck) @@ -1626,7 +1701,7 @@ same commits as above - This allows efficient advancement replication slots when the + This allows efficient advancement of replication slots when the contents do not need to be consumed. This is performed by pg_replication_slot_advance(). @@ -1665,36 +1740,6 @@ same commits as above - - <link linkend="sql-window">Window Functions</link> - - - - - - - - Add window function features to complete SQL:2011 compliance - (Oliver Ford, Tom Lane) - - - - Specifically, allow RANGE mode to use - PRECEDING and FOLLOWING to - specify peer groups with values plus or minus the specified offset. - Add GROUPS mode to include plus or minus the - number of peer groups. Frame exclusion syntax was also added. - - - - - - - - Utility Commands @@ -1707,9 +1752,13 @@ same commits as above Allow ALTER TABLE to add a column with - a non-null default without a table rewrite (Andrew Dunstan, + a non-null default without doing a table rewrite (Andrew Dunstan, Serge Rielau) + + + This is enabled when the default value is a constant. + @@ -1735,8 +1784,8 @@ same commits as above - In psql, \d+ now shows the statistics - target for indexes. + In psql, \d+ now shows + the statistics target for indexes. @@ -1783,12 +1832,12 @@ same commits as above Add CREATE AGGREGATE option to specify the - behavior of the aggregate finalization function (Tom Lane) + behavior of the aggregate's finalization function (Tom Lane) - This is useful for allowing aggregate functions to be optimized and - to work as window functions. + This is helpful for allowing user-defined aggregate functions to be + optimized and to work as window functions. @@ -1842,8 +1891,8 @@ same commits as above --> - Add casts from jsonb scalars to numeric and boolean data types - (Anastasia Lubennikova) + Add casts from JSONB scalars to numeric and boolean data + types (Anastasia Lubennikova) @@ -1859,6 +1908,28 @@ same commits as above + + + Add all window function framing + options specified by SQL:2011 (Oliver Ford, Tom Lane) + + + + Specifically, allow RANGE mode to use + PRECEDING and FOLLOWING to + select rows having grouping values within plus or minus the + specified offset. Add GROUPS mode to include plus + or minus the number of peer groups. Frame exclusion syntax was also + added. + + + + + + @@ -1907,16 +1978,6 @@ same commits as above - - - Improve the speed of aggregate computations (Andres Freund) - - - - - @@ -1934,10 +1995,10 @@ same commits as above --> - Add function json(b)_to_tsvector() to create a text search query for matching - JSON/JSONB values (Dmitry Dolgov) + JSON/JSONB values (Dmitry Dolgov) @@ -1957,6 +2018,8 @@ same commits as above 2018-02-22 [76b6aa41f] Support parameters in CALL 2018-03-14 [33803f67f] Support INOUT arguments in procedures 2018-04-14 [a8677e3ff] Support named and default arguments in CALL +2018-08-22 [e0dc839e7] Change PROCEDURE to FUNCTION in CREATE TRIGGER syntax +2018-08-22 [fd4417e8a] Change PROCEDURE to FUNCTION in CREATE OPERATOR syntax --> @@ -1968,9 +2031,21 @@ same commits as above They are created with the new CREATE PROCEDURE command and invoked via CALL. The new - ALTER/DROP ROUTINE commands - allows altering/dropping of procedures, functions, and aggregates. + linkend="sql-call">CALL. + + + + The new ALTER/DROP ROUTINE + commands allow altering/dropping of all routine-like objects, + including procedures, functions, and aggregates. + + + + Also, writing FUNCTION is now preferred + over writing PROCEDURE in CREATE + OPERATOR and CREATE TRIGGER, because the + referenced object must be a function not a procedure. However, the + old syntax is still accepted for compatibility. @@ -1988,9 +2063,9 @@ same commits as above - Transaction control is only available to top-transaction-level - CALLs or in nested PL/pgSQL DO and - CALL blocks that only contain other PL/pgSQL + Transaction control is only available within top-transaction-level + procedures and nested DO and + CALL blocks that only contain other DO and CALL blocks. @@ -2001,8 +2076,8 @@ same commits as above --> - Add the ability to define PL/pgSQL record types as not null, - constant, or with initial values (Tom Lane) + Add the ability to define PL/pgSQL composite-type variables as not + null, constant, or with initial values (Tom Lane) @@ -2029,8 +2104,8 @@ same commits as above --> - Add extension jsonb_plpython to - transform JSONB to/from PL/Python types (Anthony + Add extension jsonb_plpython to + transform JSONB to/from PL/Python types (Anthony Bykov) @@ -2041,8 +2116,8 @@ same commits as above --> - Add extension jsonb_plperl to transform - JSONB to/from PL/Perl types (Anthony Bykov) + Add extension jsonb_plperl to transform + JSONB to/from PL/Perl types (Anthony Bykov) @@ -2066,8 +2141,8 @@ same commits as above - Compression is already disabled in modern OpenSSL versions and - the libpq setting had no effect in that case. + Compression is already disabled in modern OpenSSL versions, so that + the libpq setting had no effect with such libraries. @@ -2077,13 +2152,15 @@ same commits as above --> - Add DO CONTINUE action to the ECPG - WHENEVER statement (Vinayak Pokale) + Add DO CONTINUE option + to ecpg's WHENEVER + statement (Vinayak Pokale) - This generates a C 'continue' statement, causing a return to the - top of the contained loop when the specified condition occurs. + This generates a C continue statement, causing a + return to the top of the contained loop when the specified condition + occurs. @@ -2093,7 +2170,8 @@ same commits as above --> - Add ecpg mode to enable Oracle Pro*C handling of char arrays. + Add an ecpg mode to enable Oracle + Pro*C-style handling of char arrays. @@ -2120,8 +2198,9 @@ same commits as above --> - Add psql command \gdesc to display - the column names and types of the query output (Pavel Stehule) + Add psql command \gdesc + to display the column names and types of the query output (Pavel + Stehule) @@ -2154,8 +2233,9 @@ same commits as above - Specifically , the syntax :{?variable_name} - allows a variable's existence to be tested in an \if statement. + Specifically, the syntax :{?variable_name} allows + a variable's existence to be tested in an \if + statement. @@ -2165,7 +2245,7 @@ same commits as above --> - Add PSQL_PAGER to control + Allow environment variable PSQL_PAGER to control psql's pager (Pavel Stehule) @@ -2183,8 +2263,8 @@ same commits as above --> - Have psql \d+ always show the partition information (Amit Langote, - Ashutosh Bapat) + Make psql's \d+ command always show the table's + partitioning information (Amit Langote, Ashutosh Bapat) @@ -2200,8 +2280,8 @@ same commits as above --> - Have psql report the proper user name - before the password prompt (Tom Lane) + Ensure that psql reports the proper user + name when prompting for a password (Tom Lane) @@ -2219,14 +2299,14 @@ same commits as above Allow quit and exit to - exit psql when used in an empty buffer + exit psql when given with no prior input (Bruce Momjian) - Also add hints of how to exit when quit and - exit are used alone on a line in a non-empty - buffer. Add a similar hint for help. + Also print hints about how to exit when quit and + exit are used alone on a line while the input + buffer is not empty. Add a similar hint for help. @@ -2236,7 +2316,7 @@ same commits as above --> - Have psql hint at using control-D + Make psql hint at using control-D when \q is entered alone on a line but ignored (Bruce Momjian) @@ -2253,7 +2333,7 @@ same commits as above --> - Improve tab-completion for ALTER INDEX + Improve tab completion for ALTER INDEX RESET/SET (Masahiko Sawada) @@ -2265,12 +2345,12 @@ same commits as above Add infrastructure to allow psql - to customize tab completion queries based on the server version + to adapt its tab completion queries based on the server version (Tom Lane) - Previously tab completion queries could fail. + Previously tab completion queries could fail against older servers. @@ -2290,7 +2370,7 @@ same commits as above --> - Add pgbench expressions support for + Add pgbench expression support for NULLs, booleans, and some functions and operators (Fabien Coelho) @@ -2335,7 +2415,7 @@ same commits as above --> - Add an approximated Zipfian-distributed random generator to + Add an approximately Zipfian-distributed random generator to pgbench (Alik Khilazhev) @@ -2430,8 +2510,8 @@ same commits as above - This is accomplished with the initdb - flag. Administrators + This is accomplished with the new initdb option + . Administrators can also set group permissions on the empty data directory before running initdb. Server variable data_directory_mode @@ -2515,7 +2595,7 @@ same commits as above - This was originally unsupported due to concerns over its misuse. + This was previously unsupported due to concerns over possible misuse. @@ -2559,7 +2639,8 @@ same commits as above Add pg_dumpall option - to control encoding (Michael Paquier) + to control output encoding + (Michael Paquier) @@ -2576,14 +2657,13 @@ same commits as above Add pg_dump option to force loading of data into the partition's root table, rather than the original - partitions -(Rushabh Lathia) + partition (Rushabh Lathia) - This is useful if the system to be loaded has different collation - definitions or endianness, requiring the rows to be stored in - different partitions. + This is useful if the system to be loaded to has different collation + definitions or endianness, possibly requiring rows to be stored in + different partitions than previously. @@ -2593,8 +2673,8 @@ same commits as above --> - Add an option to suppress dumping and restoring comments - (Robins Tharakan) + Add an option to suppress dumping and restoring database object + comments (Robins Tharakan) @@ -2619,30 +2699,36 @@ same commits as above - - Add support for large pages on Windows - (Takayuki Tsunakawa, Thomas Munro) + Add PGXS support for installing include + files (Andrew Gierth) - This is controlled by the huge_pages configuration - parameter. + This supports creating extension modules that depend on other + modules. Formerly there was no easy way for the dependent module to + find the referenced one's include files. Several + existing contrib modules that define data types + have been adjusted to install relevant files. Also, PL/Perl and + PL/Python now install their include files, to support creation of + transform modules for those languages. - Add support for ARMv8 hardware - CRC calculations (Yuqi Gu, Heikki - Linnakangas, Thomas Munro) + Install errcodes.txt to allow extensions to access + the list of error codes known to PostgreSQL + (Thomas Munro) @@ -2685,6 +2771,46 @@ same commits as above + + + Overhaul the way that initial system catalog contents are defined + (John Naylor) + + + + The initial data is now represented in Perl data structures, making + it much easier to manipulate mechanically. + + + + + + + + Prevent extensions from creating custom server parameters that + take a quoted list of values (Tom Lane) + + + + This cannot be supported at present because knowledge of the + parameter's property would be required even before the extension is + loaded. + + + + + - - - Overhaul the way system tables are defined for bootstrap use - (John Naylor) + Channel binding is intended to prevent man-in-the-middle attacks, but + SCRAM cannot prevent them unless it can be forced + to be active. Unfortunately, there is no way to do that in libpq. + Support for it is expected in future versions of libpq and in + interfaces not built using libpq, e.g. JDBC. @@ -2735,16 +2844,27 @@ same commits as above + + + Add support for hardware CRC calculations + on ARMv8 (Yuqi Gu, Heikki Linnakangas, + Thomas Munro) + + + + + - Speed up lookups of built-in function names matching OIDs (Andres - Freund) + Speed up lookups of built-in functions by OID (Andres Freund) - The previous binary search now uses a lookup array. + The previous binary search has been replaced by a lookup array. @@ -2764,7 +2884,7 @@ same commits as above --> - Improve access speed to system caches (Andres Freund) + Improve speed of access to system caches (Andres Freund) @@ -2791,7 +2911,7 @@ same commits as above Make the computation of system column pg_class.reltuples - consistent (Tomas Vondra) + more consistent (Tomas Vondra) @@ -2823,16 +2943,15 @@ same commits as above Allow extension pg_prewarm + linkend="pgprewarm">pg_prewarm to restore the previous shared buffer contents on startup (Mithun Cy, Robert Haas) - This is accomplished by having - pg_prewarm store the shared buffer - relation/offset values to disk occasionally during server operation - and shutdown. + This is accomplished by having pg_prewarm store + the shared buffers' relation and block number data to disk + occasionally during server operation, and at shutdown. @@ -2842,7 +2961,7 @@ same commits as above --> - Add pg_trgm + Add pg_trgm function strict_word_similarity() to compute the similarity of whole words (Alexander Korotkov) @@ -2861,14 +2980,14 @@ same commits as above --> - Allow creation of indexes on citext extension - columns that can be used by LIKE comparisons + Allow creation of indexes that can be used by LIKE + comparisons + on citext columns (Alexey Chernyshov) - Specifically, indexes must be created using the + To do this, the index must be created using the citext_pattern_ops operator class. @@ -2880,7 +2999,7 @@ same commits as above Allow btree_gin + linkend="btree-gin">btree_gin to index bool, bpchar, name and uuid data types (Matheus Oliveira) @@ -2892,9 +3011,9 @@ same commits as above --> - Allow cube - and seg - extensions using GiST indexes to perform index-only scans + Allow cube + and seg + extensions to perform index-only scans using GiST indexes (Andrey Borodin) @@ -2905,8 +3024,8 @@ same commits as above --> - Allow retrieval of negative cube coordinates using the ~> - operator (Alexander Korotkov) + Allow retrieval of negative cube coordinates using + the ~> operator (Alexander Korotkov) @@ -2921,8 +3040,8 @@ same commits as above --> - Add Vietnamese letter detection to the unaccent + Add Vietnamese letter handling to the unaccent extension (Dang Minh Huong, Michael Paquier) @@ -2934,7 +3053,7 @@ same commits as above Enhance amcheck + linkend="amcheck">amcheck to check that each heap tuple has an index entry (Peter Geoghegan) @@ -2946,13 +3065,13 @@ same commits as above Have adminpack + linkend="adminpack">adminpack use the new default file system access roles (Stephen Frost) - Previously only superusers could call adminpack functions; - now role permissions are checked. + Previously only superusers could call adminpack + functions; now role permissions are checked. @@ -2962,40 +3081,13 @@ same commits as above --> - Increase pg_stat_statement's query id + Widen pg_stat_statement's query ID to 64 bits (Robert Haas) - This greatly reduces the chance of query id hash collisions. - The query id can now potentially display as a negative value. - - - - - - - - Install errcodes.txt to provide access to - the error codes reported by PostgreSQL - (Thomas Munro) - - - - - - - - Prevent extensions from creating custom server variables that - take a quoted list of values (Tom Lane) - - - - This was never intended to be supported. + This greatly reduces the chance of query ID hash collisions. + The query ID can now potentially display as a negative value. @@ -3005,8 +3097,10 @@ same commits as above --> - Remove contrib/start-scripts/osx since they - are no longer recommended (Tom Lane) + Remove the contrib/start-scripts/osx scripts + since they are no longer recommended + (use contrib/start-scripts/macos instead) + (Tom Lane) @@ -3016,12 +3110,12 @@ same commits as above --> - Remove extension chkpass (Peter Eisentraut) + Remove the chkpass extension (Peter Eisentraut) - This extension no longer served as a usable security tool or - example of how to write an extension. + This extension is no longer considered to be a usable security tool + or example of how to write an extension.