PostgreSQL 8.4
- 发布说明
- 发布日期:2009-07-01 (公告)
- 最终次要版本:8.4.22
- EOL:2014-07
- 文档:PostgreSQL 8.4 (索引)
主要特性
- 窗口函数(初始提交 95b07bc7)
- 列级别权限
pg_restore
:并行数据库恢复(提交 775f1b37)- 每个数据库的排序规则
公共表表达式
(提交 44d5be0e)- 递归查询
- 通过
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
选项现在打印每个计划节点的 target list,而不是转储内部表示(提交 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_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_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()
(提交 95b07bc7)suppress_redundant_updates_trigger
触发器函数(提交 f0dae704)unnest()
(初始提交 c889ebce)
已修改
generate_series()
- 增加了返回
TIMESTAMP
/TIMESTAMPTZ
序列的变体(提交 b6d15590)
- 增加了返回
pg_get_expr()
- 接受
0
(InvalidOid
)作为 relation 参数的值(提交 48938ab5)
- 接受
to_char()
- 本地化月份/日期名称从 <code class="variable">LC_MESSAGES</code> 而不是 <code class="variable">LC_TIME</code> 环境变量派生(提交 07a56067)
配置更改
已添加
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)
- 索引运算符的 lossiness 确定被推向下游到
GIN
opclass 函数(提交 9b5c8d45) - 为
GIN
批量插入操作添加了搜索树深度限制(提交 e5efda44) - 增加了 "fastupdate" 支持(提交 ff301d6e)
- 增加了多列支持(提交 27cb66fd)
日志记录更改
- 当没有格式说明符存在时,
log_filename
不再追加 epoch 字符串(提交 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) - 添加了
sslcert
、sslcrl
、sslkey
和sslrootcert
连接参数(提交 5f3724dd)
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)