PostgreSQL 10
- 发行说明 (源文件)
- 发布日期:2017-10-05 (发布公告)
- 最后一个小版本:10.23 (2022-11-10)
- EOL:2022-11 (EOL 通知)
- 文档:PostgreSQL 10 (索引)
- GIT 分支:REL_10_STABLE
次要版本发布
- 10.23 (2022-11-10; 发行说明, 公告)
- 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)
后端更改
数据目录
扩展支持
前端/后端协议
- 支持协议版本 1 已移除 (提交 2f1eaf87)
进程管理
postmaster.pid- 增加了 postmaster 状态的额外行 (提交 f13ea95f)
优化器
- 可选的多列
扩展统计对象,可通过CREATE STATISTICS命令配置 (初始提交 7b504eb2)
SPI
- 一些函数被移除并替换为无操作宏 (提交 1833f1a1)
SPI_connect()和SPI_finish()将不再返回错误码 (SPI_ERROR_CONNECT和SPI_ERROR_UNCONNECTED),因为任何失败条件都会被服务器ERROR捕获 (提交 1833f1a1)
统计信息
- 实现了多元 n-distinct 系数支持 (初始提交 7b504eb2)
触发器
- 在
AFTER触发器中使用转换表 (初始提交 8c48375e)
Vacuum
- 孤立的临时表被更快地删除 (提交 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- 添加了对修改模式(schema)权限的支持 (提交 ab89e465)
ALTER ROLE- 移除了
UNENCRYPTED PASSWORD选项 (eb61136d)
- 移除了
ALTER SEQUENCEALTER TYPEALTER USER- 移除了
UNENCRYPTED PASSWORD选项(提交 eb61136d)
- 移除了
COMMENT ONCOPYCOPY view FROM现在可以插入到定义了INSTEAD OF INSERT触发器的视图中 (提交 279c439c)
CREATE COLLATIONCREATE 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 TABLECREATE 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
- vacuum 操作期间的页面锁定减少 (提交 218f5158)
Hash 索引
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_encryptionsession_preload_libraries- 库名称被视为字符串字面量,而不是 SQL 标识符(提交 a69dfe5f)
shared_preload_libraries- 库名称被视为字符串字面量,而不是 SQL 标识符(提交 a69dfe5f)
ssl,ssl_ca_file,ssl_cert_file,ssl_ciphers,ssl_crl_file,ssl_ecdh_curve,ssl_key_file,ssl_prefer_server_ciphers- 更改现在可以通过
SIGHUP应用,而无需重启服务器 (提交 de41869b)
- 更改现在可以通过
synchronous_standby_names- 添加了支持法定人数同步复制的
FIRST和ANY语法 (提交 3901fd70)
- 添加了支持法定人数同步复制的
wal_level
移除
分区更改
系统目录更改
表
已添加
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)
relispartitionrelpartbound
- 添加了以下列 (提交 f0e44751)
pg_policy- 添加了列
polpermissive(提交 093129c9)
- 添加了列
pg_trigger- 添加了以下列 (提交 8c48375e)tgoldtabletgnewtable
视图
已添加
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_activitypg_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_archiveboolean(提交 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)
Users/roles
pg_read_all_settingspg_read_all_statspg_stat_scan_tablespg_monitor
过程语言
通用
- 改进了对并行查询的支持 (提交 61c2e1a9)
PL/Python
- 添加了对函数参数中多维数组的支持 (提交 94aceed3)
复制更改
配置
已添加
recovery_target_lsn(提交 35250b6a)
逻辑复制 (Logical replication)
物理复制
- 添加了法定人数同步复制支持 (初始提交 3901fd70)
全文搜索更改
- 添加了对
json和jsonb数据类型的支持 (提交 e306df7f)
外部数据包装器 (FDW) 更改
服务器实用程序
已修改
initdbpg_ctlpg_upgrade- 来自旧版 PostgreSQL 的哈希索引将被失效,并生成脚本来重新创建它们 (提交 a95410e2)
核心实用程序
已修改
createuser- 移除了选项
--unencrypted(提交 eb61136d)
- 移除了选项
pg_basebackuppg_dumppg_receivewalpg_recvlogical- 添加了选项
--endpos(提交 7c030783)
- 添加了选项
pg_restore
移除
createlang(提交 50c956ad)droplang(提交 50c956ad)
psql 更改
- 添加了显示
psql版本和服务器版本的变量 (提交 9ae9d8c1) - 添加了元命令
\if,\elif,\else, 和\endif(提交 e984ef58) - 添加了
\gx命令以在扩展模式下执行查询 (提交 b2678efd)
Contrib模块
已添加
已修改
btree_ginbtree_gistcitext- 添加了对
regexp_match()的支持 (提交 f9d747a4)
- 添加了对
cubefile_fdw- 能够读取程序输出和文件内容 (提交 8e91e12b)
pageinspectpg_buffercache- 修改为使用更少的锁运行 (提交 6e654546)
pgcryptogen_random_uuid()将会失败,如果 PostgreSQL 是使用--disable-strong-random选项编译的 (提交 bf723a27)
pg_freespacemappgrowlockspg_stat_statements- 被忽略的常量显示为 “
$N” 而不是 “?” (提交 a6f22e83)
- 被忽略的常量显示为 “
pgstattuplepg_visibilitypostgres_fdwsegsepgsql- 添加了分区表支持 (提交 25542d77)
移除
预发布测试版本
标记 PostgreSQL 10 开发开始的初始提交是 ca9112a4 (2016-08-15)。
