PostgreSQL 9.5
- 发布说明 (源文件)
- 发布日期: 2016-01-07 (公告)
- 最终次要版本: 9.5.25 (2021-02-11)
- 终止支持日期: 2021-02-11 (终止支持通知)
- 文档: PostgreSQL 9.5
主要功能
INSERT
命令会产生约束冲突,可以将其转换为UPDATE
命令,或者忽略 ("UPSERT
") (提交 168d5805)GROUP BY
分析功能GROUPING SETS
、CUBE
和ROLLUP
- 添加了行级安全 (RLS) (提交 491c029d)
- 逻辑解码的复制来源 (提交 5aa23504)
块范围索引
(BRIN) (初始提交 7516f525)- 对排序和多 CPU 机器性能的改进
- 表采样 (初始提交 f6d208d6)
有用链接
- PostgreSQL 9.5 可观察性 (来自 DataEgret 的交互式图表)
后端更改
执行器
- 添加了 CustomScan API (初始提交 0b03e595)
SQL 更改
添加
ALTER POLICY
(提交 491c029d)CREATE POLICY
(提交 491c029d)CREATE TRANSFORM
(提交 cac76582)
DROP POLICY
(提交 491c029d)DROP TRANSFORM
(提交 cac76582)IMPORT FOREIGN SCHEMA
(初始提交 59efda3e)
修改
ALTER AGGREGATE
ALTER AGGREGATE ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER COLLATION
ALTER COLLATION ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER CONVERSION
ALTER CONVERSION ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER DATABASE
ALTER DOMAIN
ALTER DOMAIN ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER EXTENSION
支持
TRANSFORM
成员对象添加 (提交 cac76582)
ALTER EVENT TRIGGER
ALTER EVENT TRIGGER ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER FOREIGN TABLE
ALTER GROUP
ALTER GROUP { CURRENT_USER | SESSION_USER } ...
语法添加 (提交 31eae602)
ALTER LANGUAGE
ALTER LANGUAGE ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER LARGE OBJECT
ALTER LARGE OBJECT ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER OPERATOR
ALTER OPERATOR ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER OPERATOR CLASS
ALTER OPERATOR CLASS ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER ROLE
ALTER SCHEMA
ALTER SCHEMA ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER SEQUENCE
ALTER SEQUENCE ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER SERVER
CURRENT_USER
和SESSION_USER
选项添加到ALTER SERVER ... RENAME TO ...
子句中 (提交 31eae602)
ALTER TABLE
ALTER TYPE
ALTER TYPE ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
ALTER USER
ALTER VIEW
ALTER VIEW ... OWNER TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
COMMENT ON
CREATE DATABASE
CREATE FOREIGN TABLE
CREATE FUNCTION
TRANSFORM
属性添加 (提交 cac76582)
CREATE INDEX
CREATE INDEX IF NOT EXISTS
语法添加 (提交 08309aaf)
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW IF NOT EXISTS
语法添加 (提交 e39b6f95)
CREATE ROLE
- 选项
BYPASSRLS
/NOBYPASSRLS
添加 (提交 491c029d)
- 选项
CREATE SCHEMA
CURRENT_USER
和SESSION_USER
可用于CREATE SCHEMA [...] AUTHORIZATION ...
(提交 31eae602)
CREATE TABLE AS
CREATE TABLE IF NOT EXISTS
语法添加 (提交 e39b6f95)
CREATE TABLESPACE
CREATE TABLESPACE ... OWNER { CURRENT_USER | SESSION_USER }
选项添加 (提交 31eae602)
DROP OWNED
DROP OWNED BY { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
INSERT
- 支持
INSERT ... ON CONFLICT
(初始提交 168d5805)
- 支持
REASSIGN OWNED
REASSIGN OWNED BY { CURRENT_USER | SESSION_USER } TO { CURRENT_USER | SESSION_USER }
语法添加 (提交 31eae602)
REINDEX
SELECT
UPDATE
UPDATE tab SET (col1,col2,...) = (SELECT ...), ...
语法添加 (提交 8f889b10)
后端更改
一般
钩子
以下 钩子 添加
row_security_policy_hook_permissive
(提交 0bf22e0c)row_security_policy_hook_restrictive
(提交 0bf22e0c)set_join_pathlist_hook
(提交 e7cb7ee1)set_rel_pathlist_hook
(提交 c2ea2285)
源代码配置
- 选项
--enable-cassert
添加 (提交 3bdcf6a5)
系统目录更改
表
添加
pg_policy
(初始提交 491c029d)pg_replication_origin
(提交 5aa23504)pg_transform
(提交 cac76582)
修改
pg_authid
pg_pltemplate
- 列
tmplhandler
和tmpllibrary
设置为NOT NULL
(提交 82a532b3)
- 列
pg_proc
- 列
protrftypes
添加 (提交 cac76582)
- 列
pg_seclabel
pg_shseclabel
视图
添加
pg_file_settings
(提交 a97e0c33)pg_policies
(提交 491c029d)pg_replication_origin_status
(提交 5aa23504)pg_stat_ssl
(提交 9029f4b3)
修改
pg_replication_slots
- 列
active_pid
添加 (提交 d811c037)
- 列
pg_roles
pg_settings
- 列
pending_restart
添加 (提交 a486e357)
- 列
pg_shadow
pg_stat_replication
- 列
sent
现在将为 NULL,而不是零,如果它没有有效值 (提交 28c36678)
- 列
pg_tables
- 列
hasrowsecurity
添加 (提交 491c029d)
- 列
系统函数
添加
array_position()
(初始提交 13dbc7a8)array_positions()
(初始提交 13dbc7a8)bound_box()
(提交 3b6db1f4)inet_merge()
(提交 3b6db1f4)inet_same_family()
(提交 3b6db1f4)jsonb_agg()
(提交 7e354ab9)jsonb_build_array()
(提交 7e354ab9)jsonb_build_object()
(提交 7e354ab9)jsonb_object()
(提交 7e354ab9)jsonb_object_agg()
(提交 7e354ab9)jsonb_pretty()
(提交 c6947010)jsonb_set()
(初始提交 c6947010)jsonb_strip_nulls()
(提交 237a8824)json_strip_nulls()
(提交 237a8824)pg_get_object_address()
(提交 d7ee82e5)pg_identify_object_as_address()
(提交 a6762014)pg_last_committed_xact()
(提交 73c986ad)pg_replication_origin_advance()
(提交 5aa23504)pg_replication_origin_create()
(提交 5aa23504)pg_replication_origin_drop()
(提交 5aa23504)pg_replication_origin_oid()
(提交 5aa23504)pg_replication_origin_progress()
(提交 5aa23504)pg_replication_origin_session_is_setup()
(提交 5aa23504)pg_replication_origin_session_progress()
(提交 5aa23504)pg_replication_origin_session_reset()
(提交 5aa23504)pg_replication_origin_session_setup()
(提交 5aa23504)pg_replication_origin_xact_setup()
(提交 5aa23504)pg_replication_origin_xact_reset()
(提交 5aa23504)pg_xact_commit_timestamp()
(提交 73c986ad)pg_stat_get_snapshot_timestamp()
(提交 2fb7a75f)range_merge()
(提交 3b6db1f4)to_jsonb()
(提交 7e354ab9)
修改
generate_series()
pg_ls_dir()
- 添加了
missing_ok
和include_dot_dirs
选项(提交 cb2acb10)
- 添加了
pg_read_file()
- 添加了
missing_ok
选项(提交 cb2acb10)
- 添加了
pg_read_binary_file()
- 添加了
missing_ok
选项(提交 cb2acb10)
- 添加了
pg_stat_file()
- 添加了
missing_ok
选项(提交 cb2acb10)
- 添加了
width_bucket()
数据类型
配置更改
添加
cluster_name
(提交 51adcaa0)gin_pending_list_limit
(提交 a1b395b6)|
(提交 4ad2a548)max_wal_size
(提交 88e98230)min_wal_size
(提交 88e98230)operator_precedence_warning
(提交 c6b3c939)track_commit_timestamp
(提交 73c986ad)wal_compression
(提交 57aa5b2b)wal_retrieve_retry_interval
(提交 5d2b45e3)
修改
archive_mode
always
模式添加(提交 ffd37740)
debug_assertions
- 转换为预设配置参数(提交 3bdcf6a5)
log_connections
- 上下文更改为
superuser-backend
(提交 fe550b2a)
- 上下文更改为
log_disconnections
- 上下文更改为
superuser-backend
(提交 fe550b2a)
- 上下文更改为
已删除
checkpoint_segments
(提交 51adcaa0; 被min_wal_size
和max_wal_size
替换)ssl_renegotiation_limit
(提交 426746b9)
复制更改
一般
tablespace_map
文件引入(提交 72d422a5)
配置
添加
已删除
过程语言更改
一般
外部数据包装器更改
- 支持 导入外部模式 添加(初始提交 59efda3e)
CHECK
约束可以放在外部表上(提交 fc2ac1fb)外部表
可以参与继承(初始提交 cb1ca4d8)外部数据包装器
可以实现连接下推(初始提交 1a8a4e5c)
服务器实用程序
添加
修改
pg_controldata
- 添加了
-D
选项,与指定数据目录时其他实用程序保持一致(提交 b0d81ade)
- 添加了
pg_ctl
pg_resetxlog
pg_test_fsync
从 contrib 模块 转换为 服务器实用程序 (提交 00882d9e)
pg_upgrade
pg_xlogdump
- 从 contrib 模块 转换为服务器实用程序(提交 b0a738f4)
- 添加了
--stats
选项,以显示摘要统计信息(提交 bdd5726c)
核心实用程序
修改
pg_archivecleanup
- 从 contrib 模块 转换(提交 83aca89f)
pg_basebackup
pgbench
- 从 contrib 模块 转换(提交 81134af3)
pg_dump
pg_dumpall
- 移除多余的
-i
/--ignore-version
选项(提交 232cd63b)
- 移除多余的
pg_receivexlog
pg_restore
reindexdb
vacuumdb
- 添加用于并行处理的选项
-j
/--jobs
(提交 a1792320)
- 添加用于并行处理的选项
psql 更改
以下是对 psql 的重要更改列表。
- 命令行选项
-b
和新的ECHO
模式errors
,仅显示失败的命令(提交 5b214c5d) - 添加 AsciiDoc 输出模式(提交 9d9991c8)
- 添加提示选项
%l
,显示当前语句的行号(提交 51bb7956) \pset
选项pager_min_lines
添加(提交 7655f4cc)- 添加 Unicode 列、标题和边框线样式控件(提交 a2dabf0e)
- 对
SET search_path
提供基本的选项卡补全支持(提交 bd409519) \db+
在 PostgreSQL 9.2 及更高版本中显示 表空间 大小(提交 ee80f043)
Contrib 模块
添加
hstore_plperl
(提交 cac76582)hstore_plpython
(提交 cac76582)ltree_plpython
(提交 cac76582)tsm_system_rows
(提交 4d40494b)tsm_system_time
(提交 56e121a5)
修改
- 以下模块已移动到 src/test/modules/(提交 22dfd116)
citext
- 修复了
regexp_matches()
函数,需要扩展版本升级(提交 b22527f2)
- 修复了
pageinspect
pg_buffercache
- 添加了
pinning_backends
列,以显示有关缓冲区引用的信息(提交 f5779198)
- 添加了
pgcrypto
- 添加了函数
pgp_armor_headers()
(提交 32984d8f)
- 添加了函数
pgstattuple
- 添加了函数
pgstattuple_approx()
(提交 5850b20f)
- 添加了函数
test_decoding
- 添加选项
only-local
(提交 5aa23504)
- 添加选项
已删除
pg_archivecleanup
pgbench
pg_test_fsync
pg_upgrade_support
- 功能已集成到后端(提交 30982be4)
pg_xlogdump
test_parser
测试
测试模块
从本版本开始,新的源目录 src/test/modules/ 包含许多 测试模块(以扩展和/或 SQL 测试的形式实现)。一些测试模块以前作为 contrib 模块 存在。
添加
brin
模块添加(提交 672e3ec0)commit_ts
模块添加(提交 73c986ad)test_ddl_deparse
模块添加(提交 b488c580)test_rls_hooks
模块添加(提交 0bf22e0c)
修改
- 以下以前的 contrib 模块 已转换为 测试模块(提交 22dfd116)
预发布测试版本
PostgreSQL 9.5
开发的初始提交标记是 ab76208e(2014-06-09)。