Contents
- Minor version releases
- Major features
- Useful links
- Backend changes
- Data type changes
- Indexing changes
- SQL changes
- Configuration changes
- Partitioning changes
- System catalogue changes
- System functions
- Authentication changes
- libpq changes
- Users/roles
- Procedural languages
- Replication changes
- Full-text search changes
- Foreign data wrapper changes
- Server utilities
- Core utilities
- psql changes
- Contrib modules
- Pre-release test versions
PostgreSQL 10
- Release notes (source file)
- Released: 2017-10-05 (release announcement)
- Final minor version: 10.23 (2022-11-10)
- EOL: 2022-11 (EOL notice)
- Documentation: PostgreSQL 10
- GIT branch: REL_10_STABLE
Minor version releases
- 10.22 (2022-08-11; release notes, announcement)
- 10.21 (2022-05-12; release notes, announcement)
- 10.20 (2022-02-10; release notes, announcement)
- 10.19 (2021-11-11; release notes, announcement)
- 10.18 (2021-08-12; release notes, announcement)
- 10.17 (2021-05-13; release notes, announcement)
- 10.16 (2021-02-11; release notes, announcement)
- 10.15 (2020-11-12; release notes, announcement)
- 10.14 (2020-08-13; release notes, announcement)
Major features
- Logical replication using publish/subscribe
- Declarative table partitioning
- Improved query parallelism
- Stronger password authentication based on
SCRAM-SHA-256
(commit 818fd4a6) - Significant general performance improvements
- Improved monitoring and control
- SQL standard identity columns (commit 32173270)
- ICU collation support (initial commit eccfef81)
- version numbering changed to a two-part system (commit ca9112a4)
Useful links
- PostgreSQL 10 observability (interactive chart from DataEgret)
Backend changes
Data directory
Extension support
- no longer necessary to provide an extension script for each individual extension version (commit 40b449ae)
- support for version-0 function calling conventions removed (commit 5ded4bd2)
Frontend/Backend Protocol
- support for protocol version 1 removed (commit 2f1eaf87)
Process management
postmaster.pid
- additional line with postmaster status added (commit f13ea95f)
Optimizer
- optional multi-column
extended statistics object
configurable via theCREATE STATISTICS
command (initial commit 7b504eb2)
SPI
- some functions removed and replaced by no-op macros (commit 1833f1a1)
Statistics
- multivariate n-distinct coefficient support implemented (initial commit 7b504eb2)
Triggers
- transition tables in
AFTER
triggers (initial commit 8c48375e)
Vacuum
- orphaned temporary tables dropped more quickly (commit a734fd5d)
Source configuration
- option
--disable-integer-datetime
removed (commit b6aa17e0) - option
--with-icu
added (commit eccfef81)
Data type changes
General:
- support for floating-point timestamps removed (commit b6aa17e0)
Modified:
ENUM
: values can be renamed withALTER TYPE
(commit 0ab9c56d)
Indexing changes
BRIN
- auto-summarization added (commit 7526e102)
- de-summarization support via
brin summarize range()
andbrin desummarize range()
functions added (commit c655899b) - cost estimation improvements (commit 7e534adc)
btree indexes
- parallel index scan support added (initial commit 569174f1)
GIN
- page locking during vacuum operations reduced (commit 218f5158)
Hash indexes
- WAL support added, providing crash safety (main commit c11453ce)
- performance improvements (initial commit 6d46f478)
SP-GiST
- support for
inet
andcidr
data types added (commit 77e29068)
SQL changes
General changes
XMLTABLE
expression support added (commit fcec6caa)
Command changes
Added:
ALTER PUBLICATION
(commit 665d1fad)ALTER SUBSCRIPTION
(commit 665d1fad)ALTER STATISTICS
(commit 7b504eb2)CREATE PUBLICATION
(commit 665d1fad)CREATE STATISTICS
(commit 7b504eb2)CREATE SUBSCRIPTION
(commit 665d1fad)DROP PUBLICATION
(commit 665d1fad)DROP STATISTICS
(commit 7b504eb2)DROP SUBSCRIPTION
(commit 665d1fad)
Modified:
ALTER COLLATION
ALTER COLLATION ... REFRESH VERSION
syntax added (commit eccfef81)
ALTER DEFAULT PRIVILEGES
- support for altering privileges on schemas added (commit ab89e465)
ALTER ROLE
- option
UNENCRYPTED PASSWORD
removed (eb61136d)
- option
ALTER SEQUENCE
ALTER TYPE
ALTER USER
- option
UNENCRYPTED PASSWORD
removed (commit eb61136d)
- option
COMMENT ON
COPY
COPY view FROM
can now insert into views defined withINSTEAD OF INSERT
triggers (commit 279c439c)
CREATE COLLATION
CREATE FOREIGN TABLE
- support for table partitioning via the
CREATE FOREIGN TABLE ... PARTITION OF
syntax added (commit f0e44751)
- support for table partitioning via the
CREATE POLICY
AS { PERMISSIVE | RESTRICTIVE }
syntax added (commit 093129c9)
CREATE ROLE
- option
UNENCRYPTED PASSWORD
removed (commit eb61136d)
- option
CREATE SEQUENCE
CREATE SEQUENCE ... AS data_type
clause added (commit 2ea5b06c)
CREATE SERVER
IF NOT EXISTS
clause added (commit b6fb534f)
CREATE TRIGGER
REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name }
syntax added (initial commit 8c48375e)
CREATE USER
- option
UNENCRYPTED PASSWORD
removed (eb61136d)
- option
CREATE USER MAPPING
IF NOT EXISTS
clause added (commit b6fb534f)
EXPLAIN
SUMMARY
option added (commit f9b1a0dd)
SELECT
- Set-returning functions| disallowed inside
CASE
orCOALESCE
clauses (commit 0436f6bd)
- Set-returning functions| disallowed inside
Configuration changes
Added:
enable_gathermerge
(commit 355d3993)max_parallel_workers
(commit b460f5d6)max_pred_locks_per_page
(commit c63172d6)max_pred_locks_per_relation
(commit c63172d6)min_parallel_index_scan_size
(commit 51ee6f31)min_parallel_table_scan_size
(commit 51ee6f31)ssl_dh_params_file
(commit c0a15e07)wal_consistency_checking
(commit a507b869)
Modified:
bgwriter_lru_maxpages
- maximum value raised from
1000
toINT_MAX
/2
(commit 14ca9abf)
- maximum value raised from
hot_standby
- default value changed from
off
toon
(commit 34fc6167)
- default value changed from
integer_datetimes
- changed to always report
on
(commit b9d092c9)
- changed to always report
local_preload_libraries
- library names are treated as string literals, not SQL identifiers (commit a69dfe5f)
log_directory
- default changed from
pg_log
tolog
(commit 3371e4d9)
- default changed from
log_line_prefix
- default changed from empty string to '
%m [%p]
' (commit 7d3235ba)
- default changed from empty string to '
max_parallel_workers_per_gather
- default changed to
2
(commit 77cd477c)
- default changed to
max_replication_slots
- default value changed from
0
to10
(commit f6d6d292)
- default value changed from
max_wal_senders
- default value changed from
0
to10
(commit f6d6d292)
- default value changed from
password_encryption
session_preload_libraries
- library names are treated as string literals, not SQL identifiers (commit a69dfe5f)
shared_preload_libraries
- library names are treated as string literals, not SQL identifiers (commit a69dfe5f)
wal_level
Removed:
min_parallel_relation_size
(commit 51ee6f31)sql_inheritance
(commit e13486eb)
Partitioning changes
- Declarative table partitioning added (initial commit f0e44751)
ALTER TABLE ... ADD PRIMARY KEY
propagates anyNOT NULL
change to inheritance child tables (commit c30f1770)
System catalogue changes
Tables
Added:
pg_partitioned_table
(commit f0e44751)pg_publication
(commit 665d1fad)pg_publication_rel
(commit 665d1fad)pg_sequence
(commit 1753b1b0)pg_statistic_ext
(commit 7b504eb2)pg_subscription
(commit 665d1fad)pg_subscription_rel
(commit 7c4f5240)
Modified:
pg_attribute
- column
attidentity
added (commit 32173270)
- column
pg_class
- following columns added (commit f0e44751):
relispartition
relpartbound
- following columns added (commit f0e44751):
pg_policy
- column
polpermissive
added (commit 093129c9)
- column
pg_trigger
- following columns added (commit 8c48375e):tgoldtable
tgnewtable
Views
Added:
pg_hba_file_rules
(commit de16ab72)pg_publication_tables
(commit 665d1fad)pg_sequences
(commit 67dc4ccb)pg_stat_subscription
(commit 665d1fad)
Modified:
pg_policies
- column
permissive
added (commit 093129c9)
- column
pg_replication_slots
- column
temporary
added (commit a924c327)
- column
pg_stat_activity
- column
backend_type
added (commit fc70a4b0) - auxiliary processes and
background workers
shown (commit fc70a4b0) - able to display the query text of queries executed by parallel workers (commit 4c728f38)
- column
pg_stat_replication
System functions
Added:
brin_desummarize_range()
(commit c655899b)brin_summarize_range()
(commit c655899b)pg_collation_actual_version()
(commit eccfef81)pg_current_logfile()
(commit 19dc233c)pg_get_partkeydef()
(commit f0e44751)pg_get_statisticsobjdef()
(commit 7b504eb2)pg_import_system_collations()
(commit aa17c06f)pg_ls_logdir()
(commit befd73c5)pg_ls_waldir()
(commit befd73c5)pg_safe_snapshot_blocking_pids()
(commit 511540da)regexp_match()
(commit cf9b0fea)
Modified:
to_date()
- input field range checking tightened up (commit d3cd36a1)
to_timestamp()
- input field range checking tightened up (commit d3cd36a1)
pg_create_logical_replication_slot()
- optional parameter
temporary
added (commit a924c327)
- optional parameter
pg_create_physical_replication_slot()
- optional parameter
temporary
added (commit a924c327)
- optional parameter
pg_stop_backup()
- option
wait_for_archive
boolean
added (commit 017e4f25)
- option
pg_is_xlog_replay_paused()
renamed to
pg_is_wal_replay_paused()
(commit 806091c9)
pg_xlog_location_diff()
- renamed to
pg_wal_lsn_diff()
(commit d10c626d)
- renamed to
Authentication changes
pg_hba.conf
- logical replication connections now handled as normal connections, i.e. the
replication
keyword is no longer used (commit 8df9bd0b)
libpq changes
passfile
connection parameter added (commit ba005f19)target_session_attrs
connection parameter added (commit 721f7bd3)- function
PQencryptPasswordConn()
added (commit 8f8b9be5)
Users/roles
Following default roles
added (commit 0fdc8495):
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables
pg_monitor
Procedural languages
General
- improved support for parallel queries (commit 61c2e1a9)
PL/Python
- support for multi-dimensional arrays in function arguments added (commit 94aceed3)
Replication changes
Logical replication
- new subscriptions can synchronize data (commit 7c4f5240)
- logical replication support added (initial commit 665d1fad)
Configuration
Added:
recovery_target_lsn
(commit 35250b6a)
Full-text search changes
- support for
json
andjsonb
datatypes added (commit e306df7f)
Foreign data wrapper changes
- Foreign tables can participate in table partitioning (commit f0e44751)
- support for pushing aggregate functions to the remote server (commit 7012b132)
Server utilities
Modified:
initdb
pg_ctl
- defaults to waiting (command line option
-w
/--wait
) for all actions, includingstart
(commit 05cd12ed) - long option
--option
for existing option-o
added (commit caf936b0) - now checks for postmaster startup 10 times per second, instead of once (commit c61559ec)
- checks postmaster.pid for postmaster status, rather than attempting to connect (commit f13ea95f)
- always exits with a non-zero status if an operation does not complete within the specified timeout (commit 1bac5f55)
- defaults to waiting (command line option
pg_upgrade
- hash indexes from older PostgreSQL versions will be invalidated and a script generated for recreating them (commit a95410e2)
Core utilities
Modified:
createuser
- option
--unencrypted
removed (commit eb61136d)
- option
pg_basebackup
pg_dump
pg_receivewal
pg_recvlogical
- option
--endpos
added (commit 7c030783)
- option
pg_restore
Removed:
createlang
(commit 50c956ad)droplang
(commit 50c956ad)
psql changes
- variables showing
psql
version and server version added (commit 9ae9d8c1) - meta-commands
\if
,\elif
,\else
, and\endif
added (commit e984ef58) \gx
command added to execute a query in expanded mode (commit b2678efd)
Contrib modules
Added:
Modified:
btree_gin
btree_gist
citext
- support for
regexp_match()
added (commit f9d747a4)
- support for
cube
file_fdw
- able to read output from programs as well as from files (commit 8e91e12b)
pageinspect
pg_buffercache
- modified to run with fewer locks (commit 6e654546)
pg_freespacemap
- functions provided can be executed by members of the default role
pg_stat_scan_tables
(commit 25fff407)
- functions provided can be executed by members of the default role
pgrowlocks
- members of the new
default role
"pg_stat_scan_tables
" may now executepgrowlocks()
(commit 25fff407)
- members of the new
pg_stat_statements
- ignored constants shown as "
$N
" rather than "?
" (commit a6f22e83)
- ignored constants shown as "
pgstattuple
pg_visibility
postgres_fdw
seg
sepgsql
- partitioned table support added (commit 25542d77)
Removed:
Pre-release test versions
Initial commit marking the start of PostgreSQL 10
development is ca9112a4 (2016-08-15).