PostgreSQL 8.4
- 发行说明
- 发布日期:2009-07-01 (公告)
- 最终次要版本:8.4.22
- EOL:2014-07
- 文档:PostgreSQL 8.4 (索引)
主要功能
- 窗口函数 (初始提交 95b07bc7)
- 列级权限
pg_restore
:并行数据库恢复 (提交 775f1b37)- 每个数据库的排序规则
公共表表达式 (CTE)
(提交 44d5be0e)- 递归查询
- 对
外部数据包装器 (FDW)
的初步支持,通过SQL/MED
标准 (提交 cae565e5)
数据类型更改
SQL 更改
常规
新增
ALTER FOREIGN DATA WRAPPER
(提交 cae565e5)ALTER SERVER
(提交 cae565e5)ALTER USER MAPPING
(提交 cae565e5)CREATE FOREIGN DATA WRAPPER
(提交 cae565e5)CREATE SERVER
(提交 cae565e5)CREATE USER MAPPING
(提交 cae565e5)DROP FOREIGN DATA WRAPPER
(提交 cae565e5)DROP SERVER
(提交 cae565e5)DROP USER MAPPING
(提交 cae565e5)TABLE
(提交 b09a1a29)
修改
ALTER DATABASE
ALTER DATABASE ... SET TABLESPACE ...
语法已添加 (提交 6517f377)
ALTER SEQUENCE
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 ...
- 已添加以下语法 (提交 a0b012a1)
CLUSTER
- 添加了
VERBOSE
选项 (提交 a3785555)
- 添加了
CREATE CAST
CREATE CAST ... WITH INOUT ...
语法已添加 (提交 092bc496)
CREATE FUNCTION
CREATE TABLE AS
WITH [ NO ] DATA
语法已添加 (提交 8ecd5351)
CREATE TYPE
EXPLAIN
VERBOSE
选项现在打印每个计划节点的目标列表,而不是转储内部表示 (提交 87a2f050)
GRANT
- 添加了表的
TRUNCATE
权限 (提交 a0b76dc6)
- 添加了表的
SELECT
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY
语法已添加 (提交 361bfc35)
TRUNCATE
VALUES
OFFSET start [ ROW | ROWS ]
/FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY
SQL:2008 语法已添加 (提交 361bfc35)
后端更改
函数
- 函数现在可以接受默认参数 (提交 455dffbb)
钩子
添加了以下 钩子
ExecutorEnd_hook
(提交 cd35e9d7)ExecutorRun_hook
(提交 6cc88f0a)ExecutorStart_hook
(提交 cd35e9d7)get_attavgwidth_hook
(提交 7b7df9f0)get_index_stats_hook
(提交 7b7df9f0)get_relation_stats_hook
(提交 7b7df9f0)shmem_startup_hook
(提交 dad75a62)
源代码配置
- 新增选项
--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)
系统目录更改
表
新增
pg_foreign_data_wrapper
(提交 cae565e5)pg_foreign_server
(提交 cae565e5)pg_user_mapping
(提交 cae565e5)
修改
pg_am
pg_amop
- 移除列
amopreqcheck
(提交 9b5c8d45)
- 移除列
pg_attribute
- 新增列
attacl
(提交 3cb5d658)
- 新增列
pg_cast
- 新增列
castmethod
(提交 092bc496)
- 新增列
pg_class
pg_constraint
pg_database
pg_proc
pg_shdepend
- 新增列
objsubid
(提交 3cb5d658)
- 新增列
pg_type
- 新增列
typcategory
和typispreferred
(提交 bac3e836)
- 新增列
移除
pg_autovacuum
(提交 834a6da4)
视图
新增
修改
pg_settings
- 新增以下列
系统函数
新增
array_agg()
(提交 3379fae6)array_fill()
(提交 2c773296)array_length()
(提交 f98f6ee0)array_ndims()
(提交 254aecb7)cardinality()
(提交 f98f6ee0)cume_dist()
(提交 95b07bc7)current_catalog
(提交 0fec77ae)current_query()
(提交 f96928fd)current_schema
(提交 0fec77ae)dense_rank()
(提交 95b07bc7)first_value()
(提交 95b07bc7)generate_subscripts()
(提交 1fcb977a)has_any_column_privilege()
(提交 7449427a)has_column_privilege()
(提交 7449427a)has_foreign_data_wrapper_privilege()
(提交 cae565e5)has_server_privilege()
(提交 cae565e5)lag()
(提交 95b07bc7)last_value()
(提交 95b07bc7)lead()
(提交 95b07bc7)nth_value()
(提交 95b07bc7)ntile()
(提交 95b07bc7)percent_rank()
(提交 95b07bc7)pg_conf_load_time()
(提交 600da67f)pg_get_function_arguments()
(提交 69a785b8)pg_get_function_identity_arguments()
(提交 455dffbb)pg_get_function_result()
(提交 69a785b8)pg_get_functiondef()
(提交 2c863ca8)pg_get_keywords()
(提交 c63147d6)pg_options_to_table()
(提交 cae565e5)pg_stat_get_activity()
(提交 0423de4d)pg_typeof()
(提交 b8fab241)quote_nullable()
(提交 7de81124)rank()
(提交 95b07bc7)row_number()
(提交 suppress_redundant_updates_trigger 触发器函数 (提交 f0dae704)unnest()
(初始提交 c889ebce)
修改
generate_series()
- 添加了返回
TIMESTAMP
/TIMESTAMPTZ
系列的变体 (提交 b6d15590)
- 添加了返回
pg_get_expr()
0
(InvalidOid
) 被接受为关系参数的值 (提交 48938ab5)
配置更改
新增
cursor_tuple_fraction
(提交 db147b34)effective_io_concurrency
(提交 b7b8f0b6)IntervalStyle
(提交 df7641e2)segment_size
(提交 7a97abe8)stats_temp_directory
(提交 5b8eb2b4)track_activity_query_size
(提交 995fb742)track_functions
(提交 93c701ed)wal_block_size
(提交 7a97abe8)wal_segment_size
(提交 7a97abe8)
修改
debug_pretty_print
- 默认值从
off
更改为on
(提交 9650830b)
- 默认值从
debug_print_parse
- 输出出现在
LOG
消息级别 (之前:DEBUG1
) (提交 9650830b)
- 输出出现在
debug_print_rewritten
- 输出出现在
LOG
消息级别 (之前:DEBUG1
) (提交 9650830b)
- 输出出现在
debug_print_plan
- 输出出现在
LOG
消息级别 (之前:DEBUG1
) (提交 9650830b)
- 输出出现在
default_statistics_target
- 默认值从
10
增加到100
;最大值从1000
增加到10000
(提交 65e3ea76)
- 默认值从
log_min_messages
- 默认值从
NOTICE
更改为WARNING
(提交 2abf130a)
- 默认值从
log_temp_files
- 仅可由超级用户设置 (提交 8ddb739e)
max_prepared_transactions
- 默认值从
5
更改为0
(提交 8d4f2ecd)
- 默认值从
移除
explain_pretty_print
(提交 87a2f050)krb_realm
(提交 1b4e729e)krb_server_hostname
(提交 1b4e729e)max_fsm_pages
(提交 15c121b3)max_fsm_relations
(提交 15c121b3)
索引更改
GIN 索引
- 添加了对部分匹配搜索的支持 (提交 e6dbcb72)
- 索引运算符的损耗性确定被下推到
GIN
opclass 函数 (提交 9b5c8d45) - 为
GIN
批量插入操作添加了搜索树深度限制 (提交 e5efda44) - 添加了“fastupdate”支持 (提交 ff301d6e)
- 添加了多列支持 (提交 27cb66fd)
日志记录更改
- 如果没有格式说明符,则不再将纪元字符串附加到
log_filename
(提交 7380b638)
复制更改
配置
新增
移除
全文搜索更改
- 当执行GIN对全文索引进行加权查找时,可以使用运算符
@@
代替@@@
(提交 9b5c8d45) - 添加了文本搜索
@@
运算符的选择性估计函数 (提交 4e57668d) - 改进了对尼泊尔语/天城体字母的支持 (提交 e43bb5be)
身份验证更改
pg_hba.conf
pg_hba.conf
现在在 postmaster 中解析 (提交 98723810)- 添加了选项
clientcert
(提交 3c486fbd) - 一些 Kerberos 选项可以在
pg_hba.conf
中设置,覆盖 postgresql.conf 设置 (提交 32c469d7) - 以前的 配置参数
krb_realm
和krb_server_hostname
现在是pg_hba.conf
选项 (提交 1b4e729e)
libpq 更改
sslmode
连接参数值verify-ca
和verify-full
已添加 (提交 e883d0b5)- 添加了对通配符服务器证书的支持 (初始提交 cb10467d)
- 现在可以指定客户端证书的文件位置 (提交 5f3724dd)
- 当没有数据库连接保持打开状态时,
OpenSSL
回调将被注销 (提交 4e816286) PQinitOpenSSL()
函数已添加 (提交 97503a52)lo_import_with_oid()
函数已添加 (提交 8436f9a0)
ECPG 更改
过程语言更改
PL/pgSQL
- 添加了
RETURN QUERY EXECUTE
语法 (提交 47391591) RETURN QUERY [ EXECUTE ]
设置FOUND
和GET DIAGNOSTICS
ROW_COUNT
变量 (提交 8c78f8e6)
psql 更改
- 添加了
\ef
命令 (提交 2c863ca8)
服务器实用程序
修改
核心实用程序
修改
clusterdb
createdb
- 添加了选项
-w
/--no-password
(提交 9de59fd1)
- 添加了选项
createuser
- 添加了选项
-w
/--no-password
(提交 9de59fd1)
- 添加了选项
dropdb
- 添加了选项
-w
/--no-password
(提交 9de59fd1)
- 添加了选项
dropuser
- 添加了选项
-w
/--no-password
(提交 9de59fd1)
- 添加了选项
pg_restore
reindexdb
- 添加了选项
-w
/--no-password
(提交 9de59fd1)
- 添加了选项
vacuumdb
Contrib 模块
新增
auto_explain
(提交 e125e28e)btree_gin
(提交 9151e1bb)citext
(提交 ab9907f5)pg_stat_statements
(提交 7466eeac)
修改
dblink
fuzzystrmatch
levenshtein()
函数扩展为包含可选成本值 (提交 55f6e5f6)
intagg
- 标记为已弃用 (提交 32cc9e55)
ltree
- 添加了对多字节编码的支持 (提交 8eee65c9)
pageinspect
pgbench
pg_freespacemap
- 重写以匹配新的 FSM 实现 (提交 15c121b3)
pg_standby
pgstattuple
pgstatindex()
和pg_relpages()
已适应处理超过 20 亿页的表和索引 (提交 d287818e)
pg_trgm
- 添加了对多字节编码的支持 (提交 b87b52bf)
vacuumlo
- 添加了选项
-w
/--no-password
(提交 9de59fd1)
- 添加了选项
测试
pg_regress
可在构建树之外执行 (提交 feae7856)