PostgreSQL 11

次要版本发布

主要功能

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

SQL 更改

常规

  • 添加了对窗口框架子句的所有 SQL:2011 选项的支持(提交 0a459cec)

新增:

修改

后端更改

常规

  • 现在可以将数据目录设置为组可读(提交c37b3d08
  • 运行initdb 时,现在可以配置WAL 段大小(提交fc49e24f
  • vacuum 和 analyze 操作对pg_class.reltuples 的估计值保持一致(提交7c91a036

源代码配置

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

引导

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

后台工作进程

  • 添加了bgw_type 字段;此处设置的值将显示在pg_stat_activitybackend_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

系统目录更改

修改

视图

修改

系统函数更改

添加了

修改

  • to_char()
    • 添加了TZHTZM 格式模式,用于指定时区相对于UTC 的小时和分钟偏移量(提交11b623dd))
  • to_timestamp()
    • 添加了TZHTZM 格式模式,用于指定时区相对于UTC 的小时和分钟偏移量(提交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)

用户/角色

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

复制更改

逻辑复制

外部数据包装器更改

  • 分区表上进行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)
  • 使tab补全功能独立于服务器 (提交 722408bc)
  • 添加了quitexit命令,类似于MySQL的命令行客户端 (提交 df9f599b)

Contrib 模块

添加了

修改

已移除

文档

测试

测试模块

添加了

预发布测试版本

PostgreSQL 11开发的初始提交为9f14dc39 (2017-08-14)。