PostgreSQL 9.6
- 发行说明 (源文件)
- 发布日期:2016-09-29 (版本发布公告)
- 最终次要版本:9.6.24 (2021-11-11)
- 结束支持:2021-11 (结束支持公告)
- 文档:PostgreSQL 9.6
- GIT 分支:REL9_6_STABLE
主要功能
- 顺序扫描、连接和聚合的并行执行
VACUUM FREEZE
避免不必要的页面扫描- 同步复制可以使用多个备用服务器来提高可靠性
- 全文搜索 可以搜索短语(多个相邻的单词)
postgres_fdw
支持远程连接、排序、UPDATE
和DELETE
有用链接
- PostgreSQL 9.6 可观测性 (来自 DataEgret 的交互式图表)
SQL 更改
新增
修改
ALTER EXTENSION
- 添加了对
ACCESS METHOD
成员对象的支持(提交 e8bdee27;请注意,这实际上是在 PostgreSQL 9.6.1 中添加的)
- 添加了对
ALTER FUNCTION
ALTER INDEX
DEPENDS ON EXTENSION
语法添加(提交 f2fcad27)
ALTER MATERIALIZED VIEW
DEPENDS ON EXTENSION
语法添加(提交 f2fcad27)
ALTER OPERATOR
- 添加了用于更改与现有运算符关联的选择性函数的选项(提交 321eed5f)
ALTER ROLE
- 选项
CREATEUSER
/NOCREATEUSER
删除(提交 d371bebd)
- 选项
ALTER TABLE
ALTER TABLE ... ADD COLUMN ... IF NOT EXISTS
语法添加(提交 2cd40adb)
ALTER TRIGGER
DEPENDS ON EXTENSION
语法添加(提交 f2fcad27)
ALTER USER
- 选项
CREATEUSER
/NOCREATEUSER
删除(提交 d371bebd)
- 选项
COMMENT ON
COMMENT ON ACCESS METHOD
添加(提交 4f04b66f)
COPY
COPY
现在可以复制INSERT
/UPDATE
/DELETE … RETURNING
查询的输出(提交 92e38182)
CREATE AGGREGATE
CREATE EXTENSION
CREATE EXTENSION … CASCADE
语法添加(提交 b67aaf21)
CREATE FUNCTION
PARALLEL { UNSAFE | RESTRICTED | SAFE }
选项添加(提交 7aea8e4f)
CREATE GROUP
- 选项
CREATEUSER
/NOCREATEUSER
删除(提交 d371bebd)
- 选项
CREATE ROLE
- 选项
CREATEUSER
/NOCREATEUSER
删除(提交 d371bebd)
- 选项
CREATE USER
- 选项
CREATEUSER
/NOCREATEUSER
删除(提交 d371bebd)
- 选项
INSERT
- 添加了对目标列列表中数组下标和字段选择的支持(提交 a3c7a993)
VACUUM
- 选项
DISABLE_PAGE_SKIPPING
添加(提交 ede62e56)
- 选项
性能更改
ALTER TABLE ... SET (fillfactor = ...)
可以在降低的锁级别执行(提交 fcb4bfdd)ALTER TABLE ... SET (autovacuum* = ...)
可以在降低的锁级别执行(提交 47167b79)
后端更改
常规
- 添加了对 systemd 服务通知的支持(提交 7d17e683)
存储参数
新增
parallel_workers
(初始提交 25fe8b5f)
钩子
添加了以下 钩子
锁定
- 如果使用
trace_lwlocks
,则现在通过名称识别锁(提交 aa65de04)
WAL
- 添加了通用 WAL 接口(提交 65578341)
源代码配置
- 选项
--with-systemd
添加(提交 7d17e683)
数据类型更改
系统目录更改
表
新增
pg_init_privs
(提交 6c268df1)
修改
pg_aggregate
pg_am
pg_proc
- 列
proparallel
添加(提交 7aea8e4f)
- 列
视图
新增
pg_config
(提交 a5c43b88)pg_stat_wal_receiver
(提交 b1a9bad9)pg_stat_progress_vacuum
(提交 c16dc1ac)
修改
pg_replication_slots
- 添加了列
confirmed_flush_lsn
(提交 3f811c2d)
- 添加了列
pg_stat_activity
系统函数更改
新增
acosd()
(提交 e1bd684a)array_to_tsvector()
(提交 6943a946)asind()
(提交 e1bd684a)atand()
(提交 e1bd684a)atan2d()
(提交 e1bd684a)cosd()
(提交 e1bd684a)cotd()
(提交 e1bd684a)gin_clean_pending_list()
(提交 7f46eaf0)jsonb_insert()
(提交 0b62fd03)parse_ident()
(提交 3187d6de)pg_blocking_pids()
(提交 52f5d578)pg_control_checkpoint()
(提交 dc7d70ea)pg_control_init()
(提交 dc7d70ea)pg_control_recovery()
(提交 dc7d70ea)pg_control_system()
(提交 dc7d70ea)pg_current_xlog_flush_location()
(提交 e63bb454)pg_index_column_has_property()
(提交 ed0097e4)pg_index_has_property()
(提交 ed0097e4)pg_indexam_has_property()
(提交 ed0097e4)pg_logical_emit_message()
(提交 3fe3511d)pg_notification_queue_usage()
(提交 a04bb65f)pg_size_bytes()
(提交 53874c52)pg_stat_get_backend_wait_event()
(提交 53be0b1a)pg_stat_get_backend_wait_event_type()
(提交 53be0b1a)phraseto_tsquery()
(提交 bb140506)row_security_active()
(提交 7b4bfc87)scale()
(提交 abb17339)setweight()
(提交 6943a946)sind()
(提交 e1bd684a)tand()
(提交 e1bd684a)ts_delete()
(提交 6943a946)ts_filter()
(提交 6943a946)tsquery_phrase()
(提交 bb140506)tsvector_to_array()
(提交 6943a946)unnest(tsvector)
(提交 6943a946)
修改
current_setting()
- 添加了选项
missing_ok
(提交 10fb48d6)
- 添加了选项
extract()
- 改进了无限日期时间的处理(提交 647d87c5)
pg_create_physical_replication_slot()
- 添加了可选参数
immediately_reserve
以保留从插槽创建点开始的 WAL(提交 6fcd8851)
- 添加了可选参数
pg_stop_backup()
- 添加了选项
exclusive boolean
(提交 71176854)
- 添加了选项
to_char()
- 负号("
-
")不再被视为时间值的数字(提交 2d87eedc)
- 负号("
配置更改
新增
backend_flush_after
(提交 428b1d6b)bgwriter_flush_after
(提交 428b1d6b)checkpoint_flush_after
(提交 428b1d6b)force_parallel_mode
(提交 7c944bd9)idle_in_transaction_session_timeout
(提交 c6dda1f4)max_parallel_workers_per_gather
(初始提交 80558c1f)min_parallel_relation_size
(提交 75be6646)parallel_setup_cost
(提交 3bd909b2)parallel_tuple_cost
(提交 3bd909b2)old_snapshot_threshold
(提交 848ef42b)syslog_sequence_numbers
(提交 f4c454e9)syslog_split_messages
(提交 fc201dfd)wal_writer_flush_after
(提交 7975c5e0)
修改
checkpoint_timeout
- 最大值提高到
1d
(提交 f2dba881)
- 最大值提高到
log_line_prefix
- 添加了参数
%n
以显示 Unix 时间戳(提交 f828654e)
- 添加了参数
synchronous_commit
- 添加了允许值
remote_apply
(提交 314cbfc5)
- 添加了允许值
synchronous_standby_names
- 添加了
num_sync(...)
语法(提交 989be081)
- 添加了
索引更改
GIN
maintenance_work_mem
值超过1GB
可用于GIN
索引构建(提交 30bb26b5)- 立即将从 GIN 索引的挂起列表中删除的页面添加到空闲空间映射(提交 e9568083 和 dc943ad9)
SP-GiST
全文搜索 更改
外部数据包装器 更改
UPDATE
或DELETE
命令可以在远程服务器上完全执行(提交 0bf3ae88)- 仅当受影响的表在相同的角色 ID 下被访问时,才会执行远程外连接(提交 45639a05)
- 并行查询的 API 支持(提交 35746bc3)
用户/角色
复制更改
- 添加了对多个同步备用服务器的支持(提交 989be081)
服务器实用程序
修改
核心实用程序
修改
pg_basebackup
- 添加了
--slot
选项,用于在备份开始前预留复制槽位(提交 0dc848b0)
- 添加了
pg_restore
psql 更改
- 添加了对多个和混合
-c
和-f
选项的支持(提交 d5563d7d) - 添加了
\crosstabview
,用于以交叉表格式显示查询结果(初始提交 c09b18f2) - 添加了
\errverbose
命令,用于以完全详细程度显示最后的服务器错误(提交 3cc38ca7) - 添加了
\ev
和\sv
命令,用于编辑/显示视图定义(提交 8eb6407a) - 添加了
\gexec
命令,用于执行查询并将结果重新提交为新的查询(提交 2bbe9112) - 选项卡补全现在考虑整个查询,而不仅仅是当前行(提交 d854118c)
- 添加了提示选项
%p
,用于显示已连接后端的 PID(提交 275f05c9) - 消息的
CONTEXT
字段的显示可以通过新的变量SHOW_CONTEXT
控制(提交 0426f349) - 在
\connect
命令中添加了--reuse-previous
选项(提交 9d924e9a)
Contrib 模块
新增
bloom
(提交 9ee014fc)pg_visibility
(提交 ba0a198f)
修改
auto_explain
- 添加了
auto_explain.sample_rate
选项(提交 92f03fe7)
- 添加了
citext
- 添加了
并行查询
支持(提交 a89b4b1b)
- 添加了
cube
earthdistance
- 添加了
并行查询
支持(提交 50e5226b)
- 添加了
file_fdw
- 添加了
并行查询
支持(提交 35746bc3)
- 添加了
fuzzystrmatch
- 所有函数都标记为并行安全(提交 ffab82fb)
lo
- 添加了
并行查询
支持(e7880e5d)
- 添加了
pgcrypto
- 添加了
并行查询
支持(提交 0dbf3ce0)
- 添加了
pg_freespacemap
- 添加了
并行查询
支持(提交 42d4257a)
- 添加了
pg_prewarm
- 添加了
并行查询
支持(提交 6b3586ca)
- 添加了
pgrowlocks
- 添加了
并行查询
支持(提交 9164deea)
- 添加了
pg_trgm
postgres_fdw
- 添加了对远程连接的基本支持(提交 e4106b25 和 aa09cd24)
- 添加了对远程排序的支持(提交 f18c944b 和 ccd8f979)
- 添加了使用远程
UPDATE
或DELETE
直接修改外部表的支持(提交 0bf3ae88) fetch_size
选项现在可以应用于单个表以及外部服务器(提交 dc203dc3)- 查询取消请求将被传输到远程服务器(提交 f039eaac 和 1b812afb)
- 映射到远程服务器上同一用户的用户映射将合并到单个远程连接中(提交 96198d94)
- 如果在
extensions
选项中指定,扩展函数和操作符可以下推到远程服务器(提交 d8949416)
seg
sslinfo
- 添加了
ssl_extension_info()
函数(提交 49124613)
- 添加了
测试
pg_regress
- 允许使用多个
--temp-config
选项(提交 26fdff1b)
测试模块
新增
snapshot_too_old
(提交 848ef42b)test_extensions
(提交 b67aaf21)test_pg_dump
(提交 6bd356c3)
预发布测试版本
标记 PostgreSQL 9.6
开发开始的初始提交是 cf8d65de(2015-06-30)。