PostgreSQL 11

次要版本发布

主要特性

  • 改进了分区功能
  • 改进了并行性
  • 支持事务的 SQL 存储过程(初始提交 e4128ee7
  • 部分 SQL 代码可选的即时(JIT)编译
  • 扩展了对窗口函数的支持
  • 现在可以创建覆盖索引(提交 8224de4f
  • ALTER TABLE ... ADD COLUMN 带有非空常量默认值不再需要表重写(初始提交 16828d5c

SQL 更改

通用

  • 支持了 SQL:2011 中所有窗口帧子句的选项(提交 0a459cec

添加:

已修改

后端更改

通用

  • 数据目录现在可以设置为组可读(提交 c37b3d08
  • WAL 段大小现在在运行initdb时可配置(提交 fc49e24f
  • vacuum 和 analyze 操作对 pg_class.reltuples 的估算已得到一致性处理(提交 7c91a036

源配置

  • 添加了--with-llvm 选项(提交 5b2526c8

bootstrap

  • 目录数据格式已转换为使用 Perl 数据结构(初始提交 372728b0

background workers

  • 添加了bgw_type 字段;在此设置的值将显示在pg_stat_activitybackend_type列中,而不是通用的值“background worker”,并显示为ps进程显示标签(提交 5373bc2a
  • 后台工作程序可以连接到通常禁止连接的数据库(提交 eed1ce72

执行器

  • 添加了并行感知哈希连接(提交 18042840
  • LIMIT可以传递给并行工作程序(提交 3452dc52
  • 支持并行 Append 计划节点(提交 ab727167
  • UNION [ALL]可以并行执行每个SELECT,即使单个SELECT无法并行化(提交 88ba0ae2

优化器

  • 改进了统计信息的常用值(MCV)选择(提交 b5db1d93

存储参数

已添加

  • toast_tuple_target(提交 c2513365

Vacuum

  • 孤立的临时表被更积极地删除(提交 943576bd

WAL

  • 移除了次检查点,这意味着 WAL 不再保留到最近的检查点之外(提交 4b0d28de

系统目录更改

已修改

视图

已修改

系统函数更改

已添加

已修改

  • to_char()
    • 为指定时区相对于UTC的偏移量(以小时和分钟为单位)添加了TZHTZM格式模式(提交 11b623dd
  • to_timestamp()
    • 为指定时区相对于UTC的偏移量(以小时和分钟为单位)添加了TZHTZM格式模式(提交 11b623dd

索引更改

btree

  • 添加了并行索引构建支持(提交 9da0cc35

GIN

  • 添加了谓词锁定(提交 43d1ed60

GiST

  • 添加了谓词锁定(提交 3ad55863

hash

  • 添加了谓词锁定(提交 b508a56f

SP-GiST

  • 添加了^@运算符(“开始于”)(提交 710d90da
  • 添加了对多边形索引的支持(提交 ff963b39
  • 添加了对叶键的无损表示的支持(提交 854823fa

分区更改

  • 添加了对默认分区的支持(提交 6f6b99d1
  • 分区裁剪现在能够处理任何稳定表达式(提交 73b7f48f
  • 添加了在执行时进行分区裁剪的支持(提交 499be013
  • 添加了哈希分区支持(提交 1aba8e65
  • UPDATE 现在可以将行移动到分区之间(初始提交 2f178441
  • 允许在分区表上创建唯一索引(提交 eb7ed3f3
  • 允许在分区表上使用 INSERT ... ON CONFLICT ...(提交 555ee77a
  • 允许在分区表上创建外键(提交 3de241db
  • 允许在分区表上创建FOR EACH ROW触发器(提交 86f57594
  • 启用分区级别连接(提交 f49842d1
  • 启用分区级别分组/聚合(提交 e2f1eb0e

配置更改

已添加

已修改

移除

  • replacement_sort_tuples(提交 8b304b8b

Users/roles

  • 添加了以下预定义角色(提交 0fdc8495
    • pg_read_server_files
    • pg_write_server_files
    • pg_execute_server_program

复制更改

逻辑复制 (Logical replication)

外部数据包装器更改

  • INSERTUPDATECOPY操作到分区表可以将行路由到外部分区(提交 3d956d95

服务器实用程序

已添加

已修改

核心实用程序

已修改

  • 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生成的统计信息的准确性得到提高(提交 c23bb6ba16827d44
  • pg_dump
    • 添加了--load-via-partition-root选项(提交 23d7680d
    • 添加了选项 --no-comments (提交 1368e92e)
    • 现在转储数据库级别的属性(提交 b3f84012
  • pg_dumpall
    • 添加了-E/--encoding选项(提交 84be6718
    • 添加了选项 --no-comments (提交 1368e92e)
    • 添加了--no-role-passwords选项(提交 9a83d56b
    • -g/--globals-only选项现在仅输出与角色和表空间相关的部分(提交 b3f84012
  • pg_receivewal
    • 添加了-E/--endpos选项(提交 6d9fa526
    • 添加了--no-sync选项(提交 5f397129
  • pg_restore
    • 添加了选项 --no-comments (提交 1368e92e)

psql 更改

  • 添加了\gdesc命令(提交 49ca462e
  • 添加了显示 SQL 查询成功/失败的变量(提交 69835bc8
  • 添加了检查变量是否存在的测试(提交 d57c7a7c
  • 添加了环境变量PSQL_PAGER,用于控制 psql 的分页器(提交 5e8304fd
  • 标签自动完成功能已实现服务器独立(提交 722408bc
  • 添加了quitexit命令,与 MySQL 的命令行客户端类似(提交 df9f599b

Contrib模块

已添加

已修改

移除

文档

测试

测试模块

已添加

预发布测试版本

标志着PostgreSQL 11开发开始的初始提交是 9f14dc39 (2017-08-14)。