+ linkend="pgupgrade"/>, is required for those wishing to migrate data
+ from any previous release.
+
+
+ Version 11 contains a number of changes that may affect compatibility
+ with previous releases. Observe the following incompatibilities:
+
+
+
+
+
+
+
+ Have pg_dump dump all aspects of a database (Haribabu Kommi)
+
+
+ Previously database attributes like GRANT/REVOKE permissions and ALTER
+ DATABASE SET and ALTER ROLE IN 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
+ -g) is unchanged.
+
+
+ pg_dump and pg_restore, without --clean, no longer dump/restore database
+ comments and security labels.
+
+
+ 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 and encoding matched the old cluster's defaults.
+
+
+ DID I GET EVERYTHING?
+
+
+
+
+
+
+ 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 to match the
+ pg_stat_activity.backend_type labels (Peter Eisentraut)
+
+
+
+
+
+
+ Prevent to_number() from consuming characters when the template
+ separator does not match (Oliver Ford)
+
+
+ Specifically, SELECT to_number('1234', '9,999') used to return '134'. It
+ will now return '1234'. "L" and "TH" now only consume characters that
+ are not digits, positive/negative signs, decimal points, and commas.
+
+
+
+
+
+
+ Fix to_date(), to_number(), and to_timestamp() to skip a character for
+ each template character (Tom Lane)
+
+
+ Previously _bytes_ were skipped.
+
+
+
+
+
+
+ Adjust the handling of backslashes inside double-quotes in template
+ strings for to_char(), to_number(), and to_timestamp().
+
+
+ Such a backslash now escapes the character after it, particularly
+ a double-quote or another backslash.
+
+
+
+
+
+
+ Have libpq's PQhost() always return the actual connected host (Hari
+ Babu)
+
+
+ Previously PQhost() often returned the supplied host parameters, which
+ could contain several hosts. The same is true of PQport(), which now
+ returns the actual port number, not the multiple supplied port numbers.
+ ACCURATE?
+
+
+
+
+
+
+ Remove relhaspkey column from system table pg_class (Peter Eisentraut)
+
+
+ Applications needing to check for a primary key should consult pg_index.
+
+
+
+
+
+
+ Replace system table pg_proc's proisagg and proiswindow with prokind
+ (Peter Eisentraut)
+
+
+ This new column more clearly identifies functions, procedures,
+ aggregates, and window functions.
+
+
+
+
+
+
+ Cause large object permission checks to happen on large object open,
+ lo_open(), not read/write (Tom Lane)
+
+
+
+
+
+
+ Remove deprecated contrib/adminpack functions pg_file_read(),
+ pg_file_length(), and pg_logfile_rotate() (Stephen Frost)
+
+
+ These function are now present by default. Old adminpack installs will
+ continue to have access to these functions until they are updated via
+ ALTER EXTENSION ... UPDATE.
+
+
+
+
+
+
+ Honor the capitalization of double-quoted command options (Daniel
+ Gustafsson)
+
+
+ Previously index options names like ("FillFactor" = 50) were
+ automatically lower-cased. This quoted capitalization will now generate
+ an error.
+
+
+
+
+
+
+ Remove WITH clause in CREATE FUNCTION (Michael Paquier)
+
+
+ Postgres has long supported a more standard-compliant syntax for this
+ capability.
+
+
+
+
+
+
+
+
+
+
Changes
+
+ Below you will find a detailed account of the changes between
+
PostgreSQL 10 and the previous major
+ release.
+
+
+
+
Server
+
+
+
Partitioning
+
+
+
+
+
+
+ Allow faster partition elimination during query processing (Amit Langote,
+ David Rowley, Dilip Kumar)
+
+
+ This speeds access to partitioned tables with many partitions.
+
+
+
+
+
+
+ Allow partition elimination during query execution (David Rowley, Beena
+ Emerson)
+
+
+ Previously partition elimination could only happen at planning time,
+ meaning many joins and prepared queries could not use partition
+ elimination.
+
+
+
+
+
+
+ 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. WARN WHEN USING AN EXISTING INDEX?
+
+
+
+
+
+
+ Allow foreign keys on partitioned tables (Álvaro Herrera)
+
+
+
+
+
+
+ Allow INSERTs, UPDATEs, 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.
+
+
+
+
+
+
+ Allow equality joins between partitioned tables with identically
+ partitioned child tables to join the child tables directly (Ashutosh
+ Bapat)
+
+
+ This features is disabled by default but can be enabled by changing
+ enable_partitionwise_join.
+
+
+
+
+
+
+ Perform aggregation on each partition, and then merge the results
+ (Jeevan Chalke, Ashutosh Bapat, Robert Haas)
+
+
+ This features is disabled by default but can be enabled by changing
+ enable_partitionwise_aggregate.
+
+
+
+
+
+
+ Allow postgres_fdw to push down aggregates to foreign tables that are
+ partitions (Jeevan Chalke)
+
+
+
+
+
+
+
+
+
+
Parallel Queries
+
+
+
+
+
+
+ Allow indexes to be built in parallel (Peter
+ Geoghegan, Rushabh Lathia, Heikki Linnakangas)
+
+
+
+
+
+
+ Allow hash joins to be performed in parallel using a shared hash table
+ (Thomas Munro)
+
+
+
+
+
+
+ Allow UNION to run each SELECT in parallel if the individual SELECTs cannot be
+ parallelized (Amit Khandekar, Robert Haas, Amul Sul)
+
+
+
+
+
+
+ Allow partition scans to more efficiently use parallel workers (Amit Khandekar, Robert
+ Haas, Amul Sul)
+
+
+
+
+
+
+ Allow LIMIT to be passed to parallel workers (Robert Haas, Tom Lane)
+
+
+ This allows workers to reduce returned results and use targeted index
+ scans.
+
+
+
+
+
+
+ Add server option parallel_leader_participation to control if the leader
+ executes subplans (Thomas Munro)
+
+
+ The default is enabled, meaning the leader will execute subplans.
+
+
+
+
+
+
+ Allow parallelization of commands CREATE TABLE .. AS, SELECT INTO, and CREATE
+ MATERIALIZED VIEW (Haribabu Kommi)
+
+
+
+
+
+
+ Add reporting of parallel worker sort activity to EXPLAIN (Robert Haas, Tom Lane)
+
+
+
+
+
+
+
+
+
+
Indexes
+
+
+
+
+
+
+ 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)
+
+
+ This is also useful for including columns that don't have btree support.
+
+
+
+
+
+
+ Remember the highest btree index page to optimize future monotonically
+ increasing index additions (Pavan Deolasee, Peter Geoghegan)
+
+
+
+
+
+
+ Allow entire hash index pages to be scanned (Ashutosh Sharma)
+
+
+ Previously each hash index entry has to be locked and scanned
+ separately.
+
+
+
+
+
+
+ Add predicate locking for Hash, GiST and GIN indexes (Shubham Barai)
+
+
+ This reduces the likelyhood of serialization conflicts. ACCURATE?
+
+
+
+
+
+
+ Allow heap-only-tuple (HOT) updates for expression indexes when the
+ values of the expressions are unchanged (Konstantin Knizhnik)
+
+
+
+
+
+
+
+
SP-Gist
+
+
+
+
+
+
+ Add TEXT prefix operator ^@ which is supported by SP-GiST (Ildus
+ Kurbangaliev)
+
+
+ This is similar to using LIKE 'word%' with btree indexes, but is more efficient.
+
+
+
+
+
+
+ Allow polygons to be indexed with SP-GiST (Nikita Glukhov, Alexander
+ Korotkov)
+
+
+
+
+
+
+ Allow SP-GiST indexes to optionally use compression (Teodor Sigaev,
+ Heikki Linnakangas, Alexander Korotkov, Nikita Glukhov)
+
+
+
+
+
+
+
+
+
+
+
+
Optimizer
+
+
+
+
+
+
+ Improve the selection of the optimizer statistics' most-common-values
+ (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.
+
+
+
+
+
+
+ Improve selectivity estimates for >= and <= when the constants are not
+ common values (Tom Lane)
+
+
+ Previously such cases used the same selectivity as > and <,
+ respectively. This change is particularly useful for BETWEEN with
+ small ranges.
+
+
+
+
+
+
+ Optimize var = var to var IS NOT NULL where equivalent (Tom Lane)
+
+
+ This leads to better selectivity estimates.
+
+
+
+
+
+
+ Improve row count optimizer estimates for EXISTS and NOT EXISTS queries (Tom
+ Lane)
+
+
+
+
+
+
+ Add optimizer selectivity costs for HAVING clauses (Tom Lane)
+
+
+
+
+
+
+
+
+
+
General Performance
+
+
+
+
+
+
+ Add Just-In-time (JIT) compilation of plans run the by the executor
+(Andres Freund)
+
+
+
+
+
+
+ Allow bitmap scans to perform index-only scans when possible (Alexander
+ Kuzmenkov)
+
+
+
+
+
+
+ Update the free space map during vacuum (Claudio Freire)
+
+
+ This allows free space to be reused more quickly.
+
+
+
+
+
+
+ Improve performance of committing multiple concurrent transactions (Amit Kapila)
+
+
+
+
+
+
+ Reduce memory usage for queries using set-returning functions in their
+ target lists (Andres Freund)
+
+
+
+
+
+
+ Allow postgres_fdw to push UPDATEs and DELETEs using joins to foreign
+ servers (Etsuro Fujita)
+
+
+ Previously only non-join UPDATEs and DELETEs were pushed.
+
+
+
+
+
+
+
+
+
+
Monitoring
+
+
+
+
+
+
+ Show memory usage in log_statement_stats, log_parser_stats,
+ log_planner_stats, log_executor_stats (Justin Pryzby, Peter Eisentraut)
+
+
+
+
+
+
+ Add pg_stat_activity.backend_type now shows the type of 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.
+
+
+
+
+
+
+ Have log_autovacuum_min_duration log skipped tables that are
+ concurrently being dropped (Nathan Bossart)
+
+
+
+
+
+
+
+
Information Schema
+
+
+
+
+
+
+ Add information_schema columns related to table constraints and triggers
+ (Michael Paquier)
+
+
+ Specifically, table_constraints.enforced, triggers.action_order,
+ triggers.action_reference_old_table, and
+ triggers.action_reference_new_table.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add libpq option to support channel binding when using SCRAM
+ authentication (Michael Paquier)
+
+
+ Channel binding requires the server end of the TLS connection to prove
+ that it knows the password. The options are
+ 'scram_channel_binding=tls-unique' and
+ 'scram_channel_binding=tls-server-end-point'.
+
+
+ WHAT DOES THIS DOC TEXT MEAN? "An empty value specifies that the client will not
+ use channel binding. The default value is tls-unique."
+
+
+
+
+
+
+ Allow the server to specify more complex LDAP specifications in
+ search+bind mode (Thomas Munro)
+
+
+ Specifically, "ldapsearchfilter" allows pattern matching using
+ combinations of LDAP attributes.
+
+
+
+
+
+
+ Allow LDAP authentication to use ldaps (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://.
+
+
+
+
+
+
+ Improve LDAP logging of errors (Thomas Munro)
+
+
+
+
+
+
+
+
+
+
Permissions
+
+
+
+
+
+
+ Add default roles which controls file system access (Stephen Frost)
+
+
+ Specifically, the new roles are: pg_read_server_files,
+ pg_write_server_files, pg_execute_server_program. These roles now also
+ control who can use COPY and extension file_fdw. Previously only
+ super-users could use these functions, and that is still the default
+ behavior.
+
+
+
+
+
+
+ Allow access to file system functions to be controlled by GRANT/REVOKE
+ permissions, rather than super-user checks (Michael Paquier)
+
+
+ Specifically, these functions were modified: pg_ls_dir(), pg_read_file(),
+ pg_read_binary_file(), pg_stat_file().
+
+
+
+
+
+
+ Use GRANT/REVOKE to control access to lo_import() and lo_export()
+ (Michael Paquier)
+
+
+ Previously super users were exclusively granted to access these
+ functions.
+
+
+ Compile-time option ALLOW_DANGEROUS_LO_FUNCTIONS has been removed.
+
+
+
+
+
+
+ Use view owner not session owner when preventing non-password access to
+ postgres_fdw tables (Robert Haas)
+
+
+ Postgres only allows super-users to access postgres_fdw tables without
+ passwords, e.g. via peer. Previously the session owner had to be a
+ super-user to allow such access; now the view owner is checked instead.
+
+
+
+
+
+
+ Fix invalid locking permission check in SELECT FOR UPDATE on views (Tom
+ Lane)
+
+
+
+
+
+
+
+
+
+
Server Configuration
+
+
+
+
+
+
+ Add server setting ssl_passphrase_command to allow supplying of the the
+ passphrase for SSL key files (Peter Eisentraut)
+
+
+ Also add ssl_passphrase_command_supports_reload to specify whether the
+ the SSL configuration should be reloaded and ssl_passphrase_command
+ called during a server configuration reload.
+
+
+
+
+
+
+ Add server variable toast_tuple_target to control the minimum length
+ before TOAST storage will be considered for new rows (Simon Riggs)
+
+
+ The default TOAST threshold has not been changed.
+
+
+
+
+
+
+ Allow bytes to be specified for server variable sizes (Beena Emerson)
+
+
+ The specification is "B".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow the WAL file size to be set via initdb (Beena Emerson)
+
+
+ Previously the 16MB default could only be changed at compile time.
+
+
+
+
+
+
+ No longer retain WAL that spans two checkpoints (Simon Riggs)
+
+
+ The retention of WAL records for only one checkpoint is required.
+
+
+
+
+
+
+ Fill the unused portion of force-switched WAL segment files with zeros
+ for improved compressibility (Chapman Flack)
+
+
+
+
+
+
+
+
+
+
+
+
Base Backup and Streaming Replication
+
+
+
+
+
+
+ Replicate TRUNCATE activity when using logical replication (Simon Riggs,
+ Marco Nenciarini, Peter Eisentraut)
+
+
+
+
+
+
+ Pass prepared transaction information to logical replication subscribers
+ (Nikhil Sontakke, Stas Kelvich)
+
+
+
+
+
+
+ Exclude unlogged and temporary tables from streaming base backups (David
+ Steele)
+
+
+ There is no need to copy such files.
+
+
+
+
+
+
+ Allow heap pages checksums to be checked during streaming base backup
+ (Michael Banck)
+
+
+
+
+
+
+ Allow replication slots to be advanced programatically, rather than be
+ consumed by subscribers (Petr Jelinek)
+
+
+ This allows efficient advancement replication slots when the contents do
+ not need to be consumed. This is performed by pg_replication_slot_advance().
+
+
+
+
+
+
+ Add timeline information to the backup_label file (Simon Riggs)
+
+
+ Also add a check that the WAL timeline matches the backup_label file's
+ timeline.
+
+
+
+
+
+
+ Add host and port connection information to the pg_stat_wal_receiver
+ system view (Haribabu Kommi)
+
+
+
+
+
+
+ Document that pg_internal.init files do not need to be included in the
+ base backup (David Steele)
+
+
+
+
+
+
+
+
+
+
Window Functions
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ Allow NOT NULL to be added to columns without requiring a table rewrite
+ (Andrew Dunstan, Serge Rielau)
+
+
+
+
+
+
+ Allow views to be locked by locking the underlying tables (Yugo Nagata)
+
+
+
+
+
+
+ Allow ALTER INDEX to set statistics-gathering targets for expression
+ indexes (Alexander Korotkov, Adrien nayrat)
+
+
+ In psql, \d+ now shows the statistics target for indexes.
+
+
+
+
+
+
+ Allow multiple tables to be specified in one VACUUM or ANALYZE command
+ (Nathan Bossart)
+
+
+ Also, if any table mentioned in VACUUM uses a column list, then ANALYZE
+ keyword must be supplied; previously ANALYZE was implied in such cases.
+
+
+
+
+
+
+ Add parenthesized options syntax to ANALYZE (Nathan Bossart)
+
+
+ This is similar to the syntax supported by VACUUM.
+
+
+
+
+
+
+ Add CREATE AGGREGATE option to specify the behavior of the aggregate
+ finalization function (Tom Lane)
+
+
+ This is useful for allowing aggregate functions be optimized and to work
+ as window functions.
+
+
+
+
+
+
+
+
+
+
Data Types
+
+
+
+
+
+
+ Allow the creation of arrays of domains (Tom Lane)
+
+
+ This also allows array_agg() to be used on domains.
+
+
+
+
+
+
+ Support domains over composite types (Tom Lane)
+
+
+ Also allow PL/PL/Perl, PL/Python, and PL/Tcl to handle composite-domain
+ function arguments and results. Also improve PL/Python domain handling.
+
+
+
+
+
+
+ Add casts from jsonb scalars to numeric and boolean data types
+(Anastasia Lubennikova)
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+ Add SHA-2 family of hash functions (Peter Eisentraut)
+
+
+ Specifically, sha224(), sha256(), sha384(), sha512() were added.
+
+
+
+
+
+
+ Add support for 64-bit non-cryptographic hash functions (Robert Haas, Amul Sul)
+
+
+
+
+
+
+ Allow to_char() and to_timestamp() to specify the time zone's hours and
+ minutes from UTC (Nikita Glukhov, Andrew Dunstan)
+
+
+ This is done with format specifications TZH and TZM.
+
+
+
+
+ Improve the speed of aggregate computations (Andres Freund)
+
+
+
+
+
+
+ Add text search function websearch_to_tsquery() that supports a queries
+ syntax similar to that used by web search engines (Victor Drobny, Dmitry
+ Ivanov)
+
+
+
+
+
+
+ Add functionjson(b)_to_tsvector to create usable text search queries
+ matching JSON/JSONB values (Dmitry Dolgov)
+
+
+
+
+
+
+
+
+
+
Server-Side Languages
+
+
+
+
+
+
+ Add SQL procedures, which can start and commit their own transactions
+(Peter Eisentraut)
+
+
+ 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.
+
+
+
+
+
+
+ Add transaction control to PL/pgSQL, PL/Perl, PL/Python, PL/Tcl, and SPI
+ server-side languages (Peter Eisentraut)
+
+
+ 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
+ DO and CALL blocks. ACCURATE?
+
+
+
+
+
+
+ Add the ability to define PL/pgSQL record types as not null, constant, or
+ with initial values (Tom Lane)
+
+
+
+
+
+
+ Add extension jsonb_plpython to transform JSONB to/from PL/Python
+ types (Anthony Bykov)
+
+
+
+
+
+
+ Add extension jsonb_plpython to transform JSONB to/from PL/Perl types
+ (Anthony Bykov)
+
+
+
+
+
+
+
+
+
+
Client Interfaces
+
+
+
+
+
+
+ Add libpq parameter to allow physical and logical replication
+ connections (Michael Paquier)
+
+
+ The libpq connection parameter is called replication.
+
+
+
+
+
+
+ Change libpq to disable compression by default (Peter Eisentraut)
+
+
+ Compression is already disabled in modern OpenSSL versions and the libpq
+ setting had no effect in that case.
+
+
+
+
+
+
+ Add DO CONTINUE action to the ECPG 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.
+
+
+
+
+
+
+ Add ecpg mode to enable Oracle Pro*C handling of char arrays.
+
+
+ This mode is enabled with -C.
+
+
+
+
+
+
+
+
+
+
Client Applications
+
+
+
+
+
+
+
+
+
+ Add psql command \gdesc to display the column names and types of the
+ query output (Pavel Stehule)
+
+
+
+
+
+
+ Add psql variables to report query activity and errors (Fabien Coelho)
+
+
+ Specifically, the new variables are ERROR, SQLSTATE, ROW_COUNT,
+ LAST_ERROR_MESSAGE, and LAST_ERROR_SQLSTATE.
+
+
+
+
+
+
+ Allow psql to test for the existence of a variable (Fabien Coelho)
+
+
+ Specifically , the syntax :{?variable_name} allows a variable's
+ existence to be tested in an \if statement.
+
+
+
+
+
+
+ Add PSQL_PAGER to control psql's pager (Pavel Stehule)
+
+
+ This allows psql's default pager to be specified as a separate environment
+ variable from the pager for other applications. PAGER is still honored
+ if PSQL_PAGER is not set.
+
+
+
+
+
+
+ Have psql \d+ show a partition count of zero (Amit Langote)
+
+
+ Previously no partition information would be displayed for such tables.
+ Also indicate which partitions are themselves partitioned.
+ ACCURATE?
+
+
+
+
+
+
+ Have psql report the proper user name before the password prompt (Tom
+ Lane)
+
+
+ Previously, combinations of -U and a user name embedded in a URI caused
+ incorrect reporting. Also suppress the user name before the password
+ prompt when --password is specified.
+
+
+
+
+
+
+ Allow 'quit' and 'exit' to exit psql when used in an empty buffer (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'.
+
+
+
+
+
+
+ Have psql hint at using control-D when \q is entered alone on a line but
+ ignored (Bruce Momjian)
+
+
+ For example, \q does not exit when supplied in character strings.
+
+
+
+
+
+
+ Improve tab-completion for ALTER INDEX RESET/SET (Masahiko Sawada)
+
+
+
+
+
+
+ Add infrastructure to allow psql to customize tab completion queries
+ based on the server version (Tom Lane)
+
+
+ Previously tab completion queries could fail.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add major scripting features to pgbench (Fabien Coelho)
+
+
+
+
+
+
+ Add \if macro support to pgbench (Fabien Coelho)
+
+
+
+
+
+
+ Allow the use of non-ASCII characters in pgbench variable names (Fabien
+ Coelho)
+
+
+
+
+
+
+ Add pgbench option --init-steps to control the initialization steps
+ performed (Masahiko Sawada)
+
+
+
+
+
+
+ Add approximated Zipfian-distributed random generator to pgbench (Alik
+ Khilazhev)
+
+
+
+
+
+
+ Allow the random seed to be set in pgbench (Fabien Coelho)
+
+
+
+
+
+
+ Allow pgbench to do exponentiation with pow() and power() (Raúl
+ Marín Rodríguez)
+
+
+
+
+
+
+ Add hashing functions to pgbench (Ildar Musin)
+
+
+
+
+
+
+ Make pgbench statistics more accurate when using --latency-limit and
+ --rate (Fabien Coelho)
+
+
+
+
+
+
+
+
+
+
+
+
Server Applications
+
+
+
+
+
+
+ Add pg_basebackup option to create a named replication slot (Michael Banck)
+
+
+ The option --create-slot creates the named replication slot (--slot)
+ when the WAL streaming method (-wal-method=stream) is used.
+
+
+ IS IT CLEAR FROM THE DOCS THAT THE REPLICATION SLOT IS NOT TEMPORARY?
+
+
+
+
+
+
+ Allow initdb to set group read access to the data directory (David
+ Steele)
+
+
+ This is accomplished with the initdb --allow-group-access flag.
+ Administrators can also set group permissions on the empty data
+ directory before running initdb. Server variable data_directory_mode
+ allows reading of data directory group permissions.
+
+
+
+
+
+
+ Add pg_verify_checksums tool to verify database checksums while offline
+ (Magnus Hagander)
+
+
+
+
+
+
+ Allow pg_resetwal to change the WAL segment size via --wal-segsize (Nathan
+ Bossart)
+
+
+
+
+
+
+ Add long options to pg_resetwal and pg_controldata (Nathan Bossart,
+ Peter Eisentraut)
+
+
+
+
+
+
+ Add pg_receivewal option --no-sync to prevent synchronous WAL writes
+ (Michael Paquier)
+
+
+
+
+
+
+ Add pg_receivewal option --endpos to specify when WAL receiving should
+ stop (Michael Paquier)
+
+
+
+
+
+
+ Allow pg_ctl to send the SIGKILL signal to processes (Andres Freund)
+
+
+ This was originally unsupported due to concerns over its misuse.
+
+
+
+
+
+
+ Reduce the number of files copied by pg_rewind (Michael Paquier)
+
+
+
+
+
+
+ Prevent pg_rewind from running as root (Magnus Hagander)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add pg_dumpall option --encoding to control encoding (Michael Paquier)
+
+
+ pg_dump already had this option.
+
+
+
+
+
+
+ Add pg_dump option --load-via-partition-root to force loading of data
+ into the partition's root table, rather than the original partitions
+(Rushabh Lathia)
+
+
+ This is useful if the system to be loaded has a different collation
+ definitions or endianness, requiring the rows to be stored in different partitions.
+
+
+
+
+
+
+ Add ability to suppress dumping and restoring of comments (Robins Tharakan)
+
+
+ The new pg_dump, pg_dumpall, and pg_restore option is --no-comments.
+
+
+
+
+
+
+
+
+
+
+
+
Source Code
+
+
+
+
+
+
+ Add support for with huge(large) pages on Windows (Takayuki Tsunakawa,
+ Thomas Munro)
+
+
+
+
+
+
+ Add support for ARMv8 hardware CRC calculations (Yuqi Gu, Heikki Linnakangas)
+
+
+
+
+
+
+ Add configure flag --with-llvm to test for LLVM support (Andres Freund)
+
+
+
+
+
+
+ Have configure check for the availability of a C++ compiler (Andres
+ Freund)
+
+
+
+
+
+
+ Convert documentation to DocBook XML (Peter Eisentraut, Alexander
+ Lakhin, Jürgen Purtz)
+
+
+ The file names still use an 'sgml' extension for compatibility with back
+ branches.
+
+
+
+
+
+
+ Overhaul the way system tables are defined for bootstrap use (John
+ Naylor)
+
+
+
+
+
+
+ Allow background workers to attach to databases that normally disallow
+ connections (Magnus Hagander)
+
+
+
+
+
+
+ Speed up lookups of builtin function names matching oids (Andres Freund)
+
+
+ The previous binary search now uses a lookup array.
+
+
+
+
+
+
+ Speed up construction of query results (Andres Freund)
+
+
+
+
+
+
+ Improve access speed to system caches (Andres Freund)
+
+
+
+
+
+
+ Add a generational memory allocator which is optimized for serial
+ allocation/deallocation (Tomas Vondra)
+
+
+ This reduces memory usage for logical decoding.
+
+
+
+
+
+
+ Make the computation of system column pg_class.reltuples consistent
+(Tomas Vondra)
+
+
+
+
+
+
+ Update to use perltidy version 20170521 (Tom Lane)
+
+
+
+
+
+
+ Remove the ability to perform replacement sorts (Peter Geoghegan)
+
+
+ Replacement sorts were determined to be no longer useful. Also remove
+ server variable replacement sorts.
+
+
+
+
+
+
+
+
+
+
Additional Modules
+
+
+
+
+
+
+ Allow extension 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.
+
+
+
+
+
+
+ Add pgtrgm function strict_word_similarity() to compute the similarity
+ of whole words (Alexander Korotkov)
+
+
+ The function word_similarity() already existed for this purpose, but it
+ was designed to find similar parts of words, while
+ strict_word_similarity() computes the similarity to whole words.
+
+
+
+
+
+
+ Allow creation of indexes on citext-extension columns that can be used
+ by LIKE comparisons (Alexey Chernyshov)
+
+
+ Specifically, indexes must be created using the citext_pattern_ops
+ operator class.
+
+
+
+
+
+
+ Allow btree_gin to index bool, bpchar, name and uuid data types (Matheus
+ Oliveira)
+
+
+
+
+
+
+ Allow cube and seg extensions using GiST indexes to perform index-only
+ scans (Andrey Borodin)
+
+
+
+
+
+
+ Allow retrieval of negative cube coordinates using the ~> operator
+ (Alexander Korotkov)
+
+
+ This is useful for knn-gist searches. HOW?
+
+
+
+
+
+
+ Add Vietnamese letter detection to the unaccent extension (Dang Minh Huong, Michael Paquier)
+
+
+
+
+
+
+ Enhance contrib/amcheck to check that each heap tuple has an index entry
+(Peter Geoghegan)
+
+
+
+
+
+
+ Have contrib/adminpack use the new default file system access roles
+ (Stephen Frost)
+
+
+ Previously only super-users could call adminpack functions; now role
+ permissions are checked.
+
+
+
+
+
+
+ Increase 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
+ Postgres (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.
+
+
+
+
+
+
+ Remove contrib/start-scripts/osx since they are no longer recommended
+ (Tom Lane)
+
+
+
+
+
+
+ Remove extension chkpass (Peter Eisentraut)
+
+
+ This extension no longer served as a usable security tool or example of
+ how to write an extension.
+
+
+
+
+
+
+
+
+
+
+
+
Acknowledgments
+
+ The following individuals (in alphabetical order) have contributed to this
+ release as patch authors, committers, reviewers, testers, or reporters of
+ issues.
+
+
+
+ XXX
+
+
+
+