PostgreSQL 11
- 发行说明 (源文件)
- 发布日期:2018-10-18 (发布公告)
- 最终次要版本:11.22 (2023-11-09)
- 生命周期结束:2023-11
- 文档:PostgreSQL 11 (索引)
- GIT 分支:REL_11_STABLE
次要版本发布
- 11.22 (2023-11-09); 发行说明, 公告)
- 11.21 (2023-08-10); 发行说明, 公告)
- 11.20 (2023-05-11); 发行说明, 公告)
- 11.19 (2023-02-09; 发行说明, 公告)
- 11.18 (2022-11-10; 发行说明, 公告)
- 11.17 (2022-08-11; 发行说明, 公告)
- 11.16 (2022-05-12; 发行说明, 公告)
- 11.15 (2022-02-10; 发行说明, 公告)
- 11.14 (2021-11-11; 发行说明, 公告)
- 11.13 (2021-08-12; 发行说明, 公告)
- 11.12 (2021-05-13; 发行说明, 公告)
- 11.11 (2021-02-11; 发行说明, 公告)
- 11.10 (2020-11-12; 发行说明, 公告)
- 11.9 (2020-08-13; 发行说明, 公告)
主要功能
- 分区功能改进
- 并行处理改进
- 支持嵌入式事务的 SQL 存储过程(初始提交 e4128ee7)
- 某些 SQL 代码的可选即时 (JIT) 编译
- 扩展了对窗口函数的支持
- 现在可以创建覆盖索引(提交 8224de4f)
ALTER TABLE ... ADD COLUMN
带有非空常量默认值不再需要表重写(初始提交 16828d5c)
有用链接
- PostgreSQL 11 可观测性 (来自 DataEgret 的交互式图表)
SQL 更改
常规
- 添加了对窗口框架子句的所有 SQL:2011 选项的支持(提交 0a459cec)
新增:
ALTER PROCEDURE
(提交 e4128ee7)ALTER ROUTINE
(提交 e4128ee7)CALL
(提交 e4128ee7)CREATE PROCEDURE
(提交 e4128ee7)DROP PROCEDURE
(提交 e4128ee7)DROP ROUTINE
(提交 e4128ee7)
修改
ALTER EXTENSION
- 添加了对
PROCEDURE
和ROUTINE
成员对象的 支持 (提交 e4128ee7)
- 添加了对
ALTER INDEX
ANALYZE
- 语法
ANALYZE (option [, ...] )
已添加 (提交 854dd8cf)
- 语法
COMMENT ON
COPY
CREATE AGGREGATE
- 支持跟踪聚合最终函数是否修改转换状态 (提交 4de2d4fb)
CREATE EVENT TRIGGER
EXECUTE FUNCTION
语法已添加 (提交 3b983c33)
CREATE FUNCTION
- 已弃用和非标准的
WITH
子句已删除 (提交 4971d2a3)
- 已弃用和非标准的
CREATE INDEX
- 通过
INCLUDE
子句添加了对覆盖索引的支持 (提交 8224de4f)
- 通过
CREATE OPERATOR
CREATE OPERATOR ... FUNCTION ...
语法已添加 (提交 fd4417e8)
CREATE TABLE
CREATE TRIGGER
- 添加了
EXECUTE FUNCTION
语法(提交0a63f996)
- 添加了
EXPLAIN
- 输出中显示并行工作程序的排序活动(提交bf11e7ee)
INSERT
- 允许在分区表上使用
INSERT ... ON CONFLICT ...
(提交555ee77a)
- 允许在分区表上使用
后端更改
常规
- 现在可以将数据目录设置为组可读(提交c37b3d08)
- 运行
initdb
时,现在可以配置WAL 段大小(提交fc49e24f) - vacuum 和 analyze 操作对pg_class.
reltuples
的估计值保持一致(提交7c91a036)
源代码配置
- 添加了
--with-llvm
选项(提交5b2526c8)
引导
- 目录数据格式转换为使用 Perl 数据结构(初始提交372728b0)
后台工作进程
- 添加了
bgw_type
字段;此处设置的值将显示在pg_stat_activity
的backend_type
列中,而不是通用的值“background worker
”,还会显示为ps
进程显示标签(提交5373bc2a) - 后台工作程序可以连接到通常不允许连接的数据库(提交eed1ce72)
执行器
- 添加了并行感知哈希连接(提交18042840)
- 可以将
LIMIT
传递给并行工作程序(提交3452dc52) - 支持并行追加计划节点(提交ab727167)
- 如果各个
SELECT
无法并行化,则UNION [ALL]
能够并行运行每个SELECT
(提交88ba0ae2)
优化器
- 改进了统计信息中最常见值 (MCV) 的选择(提交b5db1d93)
存储参数
添加了
toast_tuple_target
(提交c2513365)
Vacuum
- 更积极地删除孤立的临时表(提交943576bd)
WAL
- 删除了辅助检查点,这意味着 WAL 不会保留在最新的检查点之后(提交4b0d28de)
系统目录更改
表
修改
pg_aggregate
- 添加了以下列pg_class
- 删除了
relhaspkey
列(提交f66e8bf8)
- 删除了
pg_index
- 添加了
indnkeyatts
列(提交8224de4f)
- 添加了
pg_partitioned_table
- 添加了
partdefid
列(提交6f6b99d1)
- 添加了
pg_proc
proisagg
和proiswindow
列被prokind
替换(提交fd1a421f)
pg_publication
- 添加了
pubtruncate
列(提交039eb6e9)
- 添加了
视图
修改
pg_stat_activity
pg_stat_wal_receiver
- 添加了以下列(提交9a895462)sender_host
sender_port
系统函数更改
添加了
json_to_tsvector()
(提交1c1791e0)jsonb_to_tsvector()
(提交1c1791e0)pg_jit_available()
(提交432bb9e0)pg_replication_slot_advance()
(提交9c7d06d6)sha224()
(提交10cfce34)sha256()
(提交10cfce34)sha384()
(提交10cfce34)sha512()
(提交10cfce34)starts_with()
(提交710d90da)websearch_to_tsquery()
(提交1664ae19)
修改
to_char()
- 添加了
TZH
和TZM
格式模式,用于指定时区相对于UTC
的小时和分钟偏移量(提交11b623dd))
- 添加了
to_timestamp()
- 添加了
TZH
和TZM
格式模式,用于指定时区相对于UTC
的小时和分钟偏移量(提交11b623dd))
- 添加了
索引更改
btree
- 添加了对并行索引构建的支持(提交9da0cc35)
GIN
- 添加了谓词锁定(提交43d1ed60)
GiST
- 添加了谓词锁定(提交3ad55863)
hash
- 添加了谓词锁定(提交b508a56f)
SP-GiST
分区更改
- 添加了对默认分区支持(提交6f6b99d1)
- 分区剪枝能够处理任何稳定的表达式(提交73b7f48f)
- 添加了在执行时进行分区剪枝的支持(提交499be013)
- 添加了哈希分区支持(提交1aba8e65)
- 现在
UPDATE
可以将元组移动到分区之间(初始提交2f178441) - 允许在分区表上使用唯一索引(提交eb7ed3f3)
- 允许在分区表上使用
INSERT ... ON CONFLICT ...
(提交555ee77a) - 允许在分区表上使用外键(提交3de241db)
- 允许在分区表上使用
FOR EACH ROW
触发器(提交86f57594) - 启用了分区连接(提交f49842d1)
- 启用了分区分组/聚合(提交e2f1eb0e)
配置更改
添加了
enable_parallel_append
(提交ab727167)enable_parallel_hash
(提交18042840)enable_partition_pruning
(提交055fb8d3)enable_partitionwise_join
(提交f49842d1)enable_partitionwise_aggregate
(提交e2f1eb0e)jit
(提交 432bb9e0)jit_above_cost
(提交 cc415a56)jit_debugging_support
(提交 250bca7f)jit_dump_bitcode
(提交 b96d550e)jit_expressions
(提交 2a0faed9)jit_inline_above_cost
(提交 9370462e)jit_optimize_above_cost
(提交 cc415a56)jit_profiling_support
(提交 250bca7f)jit_provider
(提交 432bb9e0)jit_tuple_deforming
(提交 32af96b2)max_parallel_maintenance_workers
(提交 9da0cc35)parallel_leader_participation
(提交 e5253fdc)ssl_passphrase_command
(提交 8a3d9425)ssl_passphrase_command_supports_reload
(提交 8a3d9425)vacuum_cleanup_index_scale_factor
(提交 857f9c36)
修改
log_executor_stats
- 输出中显示的内存使用情况 (提交 c039ba07)
log_parser_stats
- 输出中显示的内存使用情况 (提交 c039ba07)
log_planner_stats
- 输出中显示的内存使用情况 (提交 c039ba07)
log_statement_stats
- 输出中显示的内存使用情况 (提交 c039ba07)
已移除
replacement_sort_tuples
(提交 8b304b8b)
用户/角色
复制更改
逻辑复制
外部数据包装器更改
服务器实用程序
添加了
修改
initdb
pg_ctl
- 添加了
kill
选项 (提交 2e83db3a)
- 添加了
pg_resetwal
pg_rewind
- 从源服务器复制时,忽略
pg_basebackup
忽略的相同文件和目录 (提交 266b6acb) - 不再可以以系统
root
用户身份执行 (提交 5d5aedda)
- 从源服务器复制时,忽略
核心实用程序
修改
pg_basebackup
- 添加了选项
--create-slot
,以便自动创建使用--slot
选项指定的复制槽 (提交 3709ca1c)
- 添加了选项
pgbench
- 主要的脚本语言改进 (提交 bc7fa0c1)
- 添加了
pow()
/power()
函数 (提交 7a727c18) - 添加了
\if
支持 (提交 f67b113a) - 允许在变量名中使用非ASCII字符 (提交 9d36a386)
- 添加了哈希函数
hash()
、hash_murmur2()
和hash_fnv1a()
(提交 e51a0484) - 添加了
random_zipfian()
函数 (提交 1fcd0ade) - 添加了选项
--init-steps
(提交 591c504f) - 添加了选项
--random-seed
(提交 64f85894) - 使用
--latency-limit
和--rate
生成的统计信息的精度得到提高 (提交 c23bb6ba 和 16827d44)
pg_dump
pg_dumpall
pg_receivewal
pg_restore
- 添加了选项
--no-comments
(提交 1368e92e)
- 添加了选项
psql 更改
- 添加了
\gdesc
命令 (提交 49ca462e) - 添加了显示SQL查询成功/失败的变量 (提交 69835bc8)
- 添加了变量存在性测试 (提交 d57c7a7c)
- 添加了环境变量
PSQL_PAGER
,用于控制psql的分页器 (提交 5e8304fd) - 使tab补全功能独立于服务器 (提交 722408bc)
- 添加了
quit
和exit
命令,类似于MySQL的命令行客户端 (提交 df9f599b)
Contrib 模块
添加了
修改
adminpack
amcheck
- 添加了对属于btree索引的堆关系的验证 (提交 7f563c09)
btree_gin
citext
- 添加了
citext_pattern_ops
(提交 f2464997)
- 添加了
cube
fuzzystrmatch
- 添加了测试套件 (提交 6141123a)
pg_prewarm
- 添加了自动预热功能 (提交 79ccd7cb)
pg_stat_statements
queryid
扩展到64位,以降低碰撞的可能性 (提交 cff440d3)
pg_trgm
- 添加了函数
strict_word_similarity()
(提交 be8a7a68)
- 添加了函数
postgres_fdw
分段
- 新增了仅索引扫描的支持 (提交 de1d042f)
启动脚本
测试解码
- 新增了
include-rewrites
选项 (提交 325f2ec5)
- 新增了
去重音
- 新增了越南语字符处理 (提交 ec0a69e4)
已移除
文档
- 文档已转换为DocBook XML (提交 3c49c6fa)
测试
测试模块
添加了
test_bloomfilter
(提交 51bc2717)test_predtest
(提交 44468f49)test_rbtree
(提交 610bbdd8)
预发布测试版本
PostgreSQL 11
开发的初始提交为9f14dc39 (2017-08-14)。