PostgreSQL 10
- 发行说明 (源文件)
- 发布日期:2017-10-05 (发行公告)
- 最终次要版本:10.23 (2022-11-10)
- EOL:2022-11 (EOL 通知)
- 文档:PostgreSQL 10
- GIT 分支:REL_10_STABLE
次要版本发布
- 10.22 (2022-08-11; 发行说明, 公告)
- 10.21 (2022-05-12; 发行说明, 公告)
- 10.20 (2022-02-10; 发行说明, 公告)
- 10.19 (2021-11-11; 发行说明, 公告)
- 10.18 (2021-08-12; 发行说明, 公告)
- 10.17 (2021-05-13; 发行说明, 公告)
- 10.16 (2021-02-11; 发行说明, 公告)
- 10.15 (2020-11-12; 发行说明, 公告)
- 10.14 (2020-08-13; 发行说明, 公告)
主要功能
- 逻辑复制 使用发布/订阅
- 声明式表分区
- 改进的查询并行性
- 基于
SCRAM-SHA-256
的更强的密码身份验证(提交 818fd4a6) - 显着的整体性能改进
- 改进的监控和控制
- SQL 标准标识列(提交 32173270)
- ICU 排序支持(初始提交 eccfef81)
- 版本编号已更改为两部分系统(提交 ca9112a4)
有用链接
- PostgreSQL 10 可观察性(来自 DataEgret 的交互式图表)
后端更改
数据目录
扩展支持
前端/后端协议
- 对协议版本 1 的支持已删除(提交 2f1eaf87)
进程管理
postmaster.pid
- 添加了包含 postmaster 状态的附加行(提交 f13ea95f)
优化器
- 可选的多列
扩展统计信息对象
可通过CREATE STATISTICS
命令配置(初始提交 7b504eb2)
SPI
- 一些函数已被删除并替换为无操作宏(提交 1833f1a1)
统计信息
- 已实现多元 n-distinct 系数支持(初始提交 7b504eb2)
触发器
- 在
AFTER
触发器中进行过渡表(初始提交 8c48375e)
真空
- 孤儿临时表更快地被删除(提交 a734fd5d)
源代码配置
SQL 更改
一般更改
命令更改
已添加
ALTER PUBLICATION
(提交 665d1fad)ALTER SUBSCRIPTION
(提交 665d1fad)ALTER STATISTICS
(提交 7b504eb2)CREATE PUBLICATION
(提交 665d1fad)CREATE STATISTICS
(提交 7b504eb2)CREATE SUBSCRIPTION
(提交 665d1fad)DROP PUBLICATION
(提交 665d1fad)DROP STATISTICS
(提交 7b504eb2)DROP SUBSCRIPTION
(提交 665d1fad)
已修改
ALTER COLLATION
ALTER COLLATION ... REFRESH VERSION
语法已添加(提交 eccfef81)
ALTER DEFAULT PRIVILEGES
- 添加了对更改架构上的权限的支持(提交 ab89e465)
ALTER ROLE
- 选项
UNENCRYPTED PASSWORD
已删除(eb61136d)
- 选项
ALTER SEQUENCE
ALTER TYPE
ALTER USER
- 选项
UNENCRYPTED PASSWORD
已移除(提交 eb61136d)。
- 选项
COMMENT ON
COPY
COPY view FROM
现在可以插入到使用INSTEAD OF INSERT
触发器定义的视图中(提交 279c439c)。
CREATE COLLATION
CREATE FOREIGN TABLE
- 通过
CREATE FOREIGN TABLE ... PARTITION OF
语法新增对表分区的支持(提交 f0e44751)。
- 通过
CREATE POLICY
AS { PERMISSIVE | RESTRICTIVE }
语法已新增(提交 093129c9)。
CREATE ROLE
- 选项
UNENCRYPTED PASSWORD
已移除(提交 eb61136d)。
- 选项
CREATE SEQUENCE
CREATE SEQUENCE ... AS data_type
子句已新增(提交 2ea5b06c)。
CREATE SERVER
IF NOT EXISTS
子句已新增(提交 b6fb534f)。
CREATE TABLE
CREATE TRIGGER
REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name }
语法已新增(初始提交 8c48375e)。
CREATE USER
- 选项
UNENCRYPTED PASSWORD
已删除(eb61136d)
- 选项
CREATE USER MAPPING
IF NOT EXISTS
子句已新增(提交 b6fb534f)。
EXPLAIN
SUMMARY
选项已新增(提交 f9b1a0dd)。
INSERT
OVERRIDING { SYSTEM | USER } VALUE
语法已新增(提交 32173270)。
SELECT
- 在
CASE
或COALESCE
子句中不允许使用返回集合的函数(提交 0436f6bd)。
- 在
数据类型更改
一般
- 对浮点时间戳的支持已移除(提交 b6aa17e0)。
已修改
ENUM
:值可以使用ALTER TYPE
重命名(提交 0ab9c56d)。
索引更改
BRIN
- 已新增自动汇总功能(提交 7526e102)。
- 已新增通过
brin summarize range()
和brin desummarize range()
函数进行反汇总支持(提交 c655899b)。 - 成本估算改进(提交 7e534adc)。
btree 索引
- 已新增并行索引扫描支持(初始提交 569174f1)。
GIN
- 真空操作期间的页面锁定已减少(提交 218f5158)。
哈希索引
SP-GiST
- 已新增对
inet
和cidr
数据类型支持(提交 77e29068)。
配置更改
已添加
enable_gathermerge
(提交 355d3993)。max_logical_replication_workers
(提交 665d1fad)。max_parallel_workers
(提交 b460f5d6)。max_pred_locks_per_page
(提交 c63172d6)。max_pred_locks_per_relation
(提交 c63172d6)。max_sync_workers_per_subscription
(提交 665d1fad)。min_parallel_index_scan_size
(提交 51ee6f31)。min_parallel_table_scan_size
(提交 51ee6f31)。ssl_dh_params_file
(提交 c0a15e07)。wal_consistency_checking
(提交 a507b869)。
已修改
bgwriter_lru_maxpages
- 最大值已从
1000
提升至INT_MAX
/2
(提交 14ca9abf)。
- 最大值已从
hot_standby
- 默认值已从
off
更改为on
(提交 34fc6167)。
- 默认值已从
integer_datetimes
- 已更改为始终报告
on
(提交 b9d092c9)。
- 已更改为始终报告
local_preload_libraries
- 库名称被视为字符串字面量,而不是 SQL 标识符(提交 a69dfe5f)。
log_directory
- 默认值已从
pg_log
更改为log
(提交 3371e4d9)。
- 默认值已从
log_line_prefix
- 默认值已从空字符串更改为 '
%m [%p]
'(提交 7d3235ba)。
- 默认值已从空字符串更改为 '
max_parallel_workers_per_gather
- 默认值已更改为
2
(提交 77cd477c)。
- 默认值已更改为
max_replication_slots
- 默认值已从
0
更改为10
(提交 f6d6d292)。
- 默认值已从
max_wal_senders
- 默认值已从
0
更改为10
(提交 f6d6d292)。
- 默认值已从
password_encryption
session_preload_libraries
- 库名称被视为字符串字面量,而不是 SQL 标识符(提交 a69dfe5f)。
shared_preload_libraries
- 库名称被视为字符串字面量,而不是 SQL 标识符(提交 a69dfe5f)。
synchronous_standby_names
FIRST
和ANY
语法支持基于仲裁的同步复制已新增(提交 3901fd70)。
wal_level
已移除
min_parallel_relation_size
(提交 51ee6f31)。sql_inheritance
(提交 e13486eb)。
分区更改
- 声明式表分区 已新增(初始提交 f0e44751)。
ALTER TABLE ... ADD PRIMARY KEY
将任何NOT NULL
更改传播到继承子表(提交 c30f1770)。
系统目录更改
表
已添加
pg_partitioned_table
(提交 f0e44751)。pg_publication
(提交 665d1fad)。pg_publication_rel
(提交 665d1fad)。pg_sequence
(提交 1753b1b0)。pg_statistic_ext
(提交 7b504eb2)。pg_subscription
(提交 665d1fad)。pg_subscription_rel
(提交 7c4f5240)。
已修改
pg_attribute
- 列
attidentity
已新增(提交 32173270)。
- 列
pg_class
- 以下列已添加(提交 f0e44751)
relispartition
relpartbound
- 以下列已添加(提交 f0e44751)
pg_policy
- 列
polpermissive
已添加(提交 093129c9)
- 列
pg_trigger
- 以下列已添加(提交 8c48375e)tgoldtable
tgnewtable
视图
已添加
pg_hba_file_rules
(提交 de16ab72)pg_publication_tables
(提交 665d1fad)pg_sequences
(提交 67dc4ccb)pg_stat_subscription
(提交 665d1fad)
已修改
pg_policies
- 列
permissive
已添加(提交 093129c9)
- 列
pg_replication_slots
- 列
temporary
已添加(提交 a924c327)
- 列
pg_stat_activity
pg_stat_replication
系统函数
已添加
brin_desummarize_range()
(提交 c655899b)brin_summarize_range()
(提交 c655899b)pg_collation_actual_version()
(提交 eccfef81)pg_current_logfile()
(提交 19dc233c)pg_get_partkeydef()
(提交 f0e44751)pg_get_statisticsobjdef()
(提交 7b504eb2)pg_import_system_collations()
(提交 aa17c06f)pg_ls_logdir()
(提交 befd73c5)pg_ls_waldir()
(提交 befd73c5)pg_relation_is_publishable()
(提交 a2141c42)pg_safe_snapshot_blocking_pids()
(提交 511540da)regexp_match()
(提交 cf9b0fea)
已修改
to_date()
- 输入字段范围检查已收紧(提交 d3cd36a1)
to_timestamp()
- 输入字段范围检查已收紧(提交 d3cd36a1)
pg_create_logical_replication_slot()
- 可选参数
temporary
已添加(提交 a924c327)
- 可选参数
pg_create_physical_replication_slot()
- 可选参数
temporary
已添加(提交 a924c327)
- 可选参数
pg_stop_backup()
- 选项
wait_for_archive
boolean
已添加(提交 017e4f25)
- 选项
pg_is_xlog_replay_paused()
已重命名为
pg_is_wal_replay_paused()
(提交 806091c9)
pg_xlog_location_diff()
- 已重命名为
pg_wal_lsn_diff()
(提交 d10c626d)
- 已重命名为
身份验证更改
pg_hba.conf
- 逻辑复制连接现在被处理为普通连接,即不再使用
replication
关键字(提交 8df9bd0b)
libpq 更改
passfile
连接参数已添加(提交 ba005f19)target_session_attrs
连接参数已添加(提交 721f7bd3)- 函数
PQencryptPasswordConn()
已添加(提交 8f8b9be5)
用户/角色
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables
pg_monitor
过程语言
一般
- 改进对并行查询的支持(提交 61c2e1a9)
PL/Python
- 支持函数参数中的多维数组(提交 94aceed3)
复制更改
配置
已添加
recovery_target_lsn
(提交 35250b6a)
逻辑复制
物理复制
- 基于仲裁的同步复制支持已添加(初始提交 3901fd70)
全文搜索更改
- 支持
json
和jsonb
数据类型已添加(提交 e306df7f)
外部数据包装器 更改
服务器实用程序
已修改
initdb
pg_ctl
pg_upgrade
- 来自旧版 PostgreSQL 版本的哈希索引将被失效,并生成一个用于重新创建它们的脚本(提交 a95410e2)
核心实用程序
已修改
createuser
- 选项
--unencrypted
已删除(提交 eb61136d)
- 选项
pg_basebackup
pg_dump
pg_receivewal
pg_recvlogical
- 新增选项
--endpos
(提交 7c030783)
- 新增选项
pg_restore
已移除
createlang
(提交 50c956ad)droplang
(提交 50c956ad)
psql 变化
- 新增显示
psql
版本和服务器版本的变量(提交 9ae9d8c1) - 新增元命令
\if
、\elif
、\else
和\endif
(提交 e984ef58) - 新增
\gx
命令,用于以扩展模式执行查询(提交 b2678efd)
Contrib 模块
已添加
已修改
btree_gin
btree_gist
citext
- 新增对
regexp_match()
支持(提交 f9d747a4)
- 新增对
cube
file_fdw
- 能够从程序读取输出,以及从文件读取输出(提交 8e91e12b)
pageinspect
pg_buffercache
- 修改为使用较少的锁运行(提交 6e654546)
pgcrypto
gen_random_uuid()
现在如果 PostgreSQL 使用--disable-strong-random
选项编译,则会失败(提交 bf723a27)
pg_freespacemap
pgrowlocks
pg_stat_statements
- 忽略的常量显示为 "
$N
" 而不是 "?
"(提交 a6f22e83)
- 忽略的常量显示为 "
pgstattuple
pg_visibility
postgres_fdw
seg
sepgsql
- 新增对分区表支持(提交 25542d77)
已移除
预发布测试版本
标记 PostgreSQL 10
开发开始的初始提交是 ca9112a4(2016-08-15)。