PostgreSQL 8.4

主要特性

数据类型更改

  • boolean
    • 接受 onoff 作为输入值(提交 05a7db05
  • UUID
    • 输入允许每四个数字后跟一个可选的连字符(提交 84aa7972

SQL 更改

通用

  • 增加了函数参数中的默认值支持(提交 455dffbb
  • 增加了 VARIADIC 函数支持(提交 d89737d3

已添加

已修改

  • ALTER DATABASE
    • 增加了 ALTER DATABASE ... SET TABLESPACE ... 语法(提交 6517f377
  • ALTER SEQUENCE
    • 增加了 ALTER SEQUENCE ... START [ WITH ] ... 语法(提交 caede71b
    • 增加了 ALTER SEQUENCE ... RESTART [ WITH ] ... 语法(提交 10a3471b
  • ALTER TABLE
    • 增加了 ALTER TABLE ... ALTER COLUMN ... SET DATA TYPE 语法(提交 1471e384
  • ALTER TYPE
    • 增加了 ALTER TYPE ... RENAME ... 语法(提交 5507b22d
  • ALTER VIEW
    • 增加了以下语法(提交 a0b012a1
      • ALTER VIEW ... ALTER COLUMN ... [ SET | DROP ] DEFAULT
      • ALTER VIEW ... OWNER TO ...
      • ALTER VIEW ... SET SCHEMA ...
  • CLUSTER
    • 增加了 VERBOSE 选项(提交 a3785555
  • CREATE CAST
    • 增加了 CREATE CAST ... WITH INOUT ... 语法(提交 092bc496
  • CREATE FUNCTION
    • 增加了 RETURNS TABLE 语法(提交 69a785b8
    • 增加了 WINDOW 属性(提交 26ce4e85
  • CREATE TABLE AS
    • 增加了 WITH [ NO ] DATA  语法(提交 8ecd5351
  • CREATE TYPE
    • 增加了 LIKE 选项(提交 3f936aac
    • 增加了 CATEGORYPREFERRED 选项(提交 bac3e836
  • EXPLAIN
    • VERBOSE 选项现在打印每个计划节点的 target list,而不是转储内部表示(提交 87a2f050
  • GRANT
    • 为表增加了 TRUNCATE 权限(提交 a0b76dc6
  • SELECT
    • 增加了  FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY 语法(提交 361bfc35
  • TRUNCATE
    • TRUNCATE 现在默认是递归的(提交 ca8100f9
    • 添加了 ONLY 选项 (commit ca8100f9)
    • 增加了 RESTART IDENTITY/CONTINUE IDENTITY 选项(提交 10a3471b
  • VALUES
    • 增加了 OFFSET start [ ROW | ROWS ] / FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY SQL:2008 语法(提交 361bfc35

后端更改

函数

  • 函数现在可以接受默认参数(提交 455dffbb

钩子

添加了以下钩子

源配置

  • 增加了 --disable-float4-byval 选项(提交 8472bf7a
  • 增加了 --disable-float8-byval 选项(提交 8472bf7a
  • 增加了 --with-blocksize 选项(提交 3c6248a8
  • 增加了 --with-segsize 选项(提交 3c6248a8
  • 增加了 --with-wal-blocksize 选项(提交 cf9f6c8d
  • 增加了 --with-wal-segsize 选项(提交 cf9f6c8d

触发器

  • 增加了对语句级别的 ON TRUNCATE 触发器支持(提交 7692d8d5

系统目录更改

已添加

已修改

移除

视图

已添加

已修改

系统函数

已添加

已修改

  • generate_series()
    • 增加了返回 TIMESTAMP/TIMESTAMPTZ 序列的变体(提交 b6d15590
  • pg_get_expr()
    • 接受 0InvalidOid)作为 relation 参数的值(提交 48938ab5
  • to_char()
    • 本地化月份/日期名称从 <code class="variable">LC_MESSAGES</code> 而不是 <code class="variable">LC_TIME</code> 环境变量派生(提交 07a56067

配置更改

已添加

已修改

移除

索引更改

GIN 索引

  • 增加了对部分匹配搜索的支持(提交 e6dbcb72
  • 索引运算符的 lossiness 确定被推向下游到 GIN opclass 函数(提交 9b5c8d45
  • GIN 批量插入操作添加了搜索树深度限制(提交 e5efda44
  • 增加了 "fastupdate" 支持(提交 ff301d6e
  • 增加了多列支持(提交 27cb66fd

日志记录更改

  • 当没有格式说明符存在时,log_filename 不再追加 epoch 字符串(提交 7380b638

复制更改

配置

已添加

移除

全文搜索更改

  • 当执行GIN对全文索引进行加权查找时,可以使用运算符 @@ 代替 @@@(提交 9b5c8d45
  • 为文本搜索 @@ 运算符添加了选择性估计函数(提交 4e57668d
  • 改进了对尼泊尔语/天城文字母的支持(提交 e43bb5be

认证更改

pg_hba.conf

libpq 更改

  • 添加了 sslmode 连接参数值 verify-caverify-full(提交 e883d0b5
  • 增加了对通配符服务器证书的支持(初始提交 cb10467d
  • 现在可以指定客户端证书的文件位置(提交 5f3724dd
  • 当没有数据库连接时,OpenSSL 回调将不再被注册(提交 4e816286
  • 增加了 PQinitOpenSSL() 函数(提交 97503a52
  • 增加了 lo_import_with_oid() 函数(提交 8436f9a0
  • 添加了 sslcertsslcrlsslkeysslrootcert 连接参数(提交 5f3724dd

ECPG 更改

  • 添加了本地化支持(初始提交 e1bdd07c
  • ECPG 解析器现在是从服务器解析器自动生成的(提交 4607c5ca

过程语言更改

PL/pgSQL

  • 增加了 RETURN QUERY EXECUTE 语法(提交 47391591
  • RETURN QUERY [ EXECUTE ] 设置 FOUNDGET DIAGNOSTICS ROW_COUNT 变量(提交 8c78f8e6

psql 更改

  • 增加了 \ef 命令(提交 2c863ca8

服务器实用程序

已修改

核心实用程序

已修改

Contrib模块

已添加

已修改

  • dblink
  • fuzzystrmatch
    • levenshtein() 函数扩展,加入了可选的成本值(提交 55f6e5f6
  • intagg
    • 标记为已弃用(提交 32cc9e55
  • ltree
    • 增加了对多字节编码的支持(提交 8eee65c9
  • pageinspect
    • 添加了 fsm_page_contents() 函数(提交 15c121b3
    • get_raw_page() 函数的变体 get_raw_page(regclass, int4, int4) 已添加(提交 15c121b3
  • pgbench
    • 增加了 -M 选项,用于指定要使用的查询协议类型(提交 49639a7b
    • 增加了 -T 选项,用于以秒为单位指定持续时间(提交 cff4aa6a
    • 在标准表 accountsbrancheshistorytellers 前添加了 pgbench_ 前缀(提交 48caf91b
  • pg_freespacemap
    • 重写以匹配新的 FSM 实现(提交 15c121b3
  • pg_standby
    • 增加了 "Smart Failover" 模式,在服务器启动前消耗所有可用的 WAL(提交 9e403c25
    • 删除了 -l 选项(提交 8fd733bd
  • pgstattuple
    • pgstatindex()pg_relpages() 已适配以处理超过 20 亿页的表和索引(提交 d287818e
  • pg_trgm
    • 增加了对多字节编码的支持(提交 b87b52bf
  • vacuumlo
    • 添加了选项 -w/--no-password (提交 9de59fd1)

测试