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 SEQUENCEALTER TABLE- 增加了
ALTER TABLE ... ALTER COLUMN ... SET DATA TYPE语法(提交 1471e384)
- 增加了
ALTER TYPE- 增加了
ALTER TYPE ... RENAME ...语法(提交 5507b22d)
- 增加了
ALTER VIEW- 增加了以下语法(提交 a0b012a1)
ALTER VIEW ... ALTER COLUMN ... [ SET | DROP ] DEFAULTALTER VIEW ... OWNER TO ...ALTER VIEW ... SET SCHEMA ...
- 增加了以下语法(提交 a0b012a1)
CLUSTER- 增加了
VERBOSE选项(提交 a3785555)
- 增加了
CREATE CAST- 增加了
CREATE CAST ... WITH INOUT ...语法(提交 092bc496)
- 增加了
CREATE FUNCTIONCREATE TABLE AS- 增加了
WITH [ NO ] DATA语法(提交 8ecd5351)
- 增加了
CREATE TYPEEXPLAINVERBOSE选项现在打印每个计划节点的 target list,而不是转储内部表示(提交 87a2f050)
GRANT- 为表增加了
TRUNCATE权限(提交 a0b76dc6)
- 为表增加了
SELECT- 增加了
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY语法(提交 361bfc35)
- 增加了
TRUNCATEVALUES- 增加了
OFFSET start [ ROW | ROWS ]/FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLYSQL: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_ampg_amop- 删除了
amopreqcheck列(提交 9b5c8d45)
- 删除了
pg_attribute- 增加了
attacl列(提交 3cb5d658)
- 增加了
pg_cast- 增加了
castmethod列(提交 092bc496)
- 增加了
pg_classpg_constraintpg_databasepg_procpg_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 确定被推向下游到
GINopclass 函数(提交 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 DIAGNOSTICSROW_COUNT变量(提交 8c78f8e6)
psql 更改
- 增加了
\ef命令(提交 2c863ca8)
服务器实用程序
已修改
核心实用程序
已修改
clusterdbcreatedb- 添加了选项
-w/--no-password(提交 9de59fd1)
- 添加了选项
createuser- 添加了选项
-w/--no-password(提交 9de59fd1)
- 添加了选项
dropdb- 添加了选项
-w/--no-password(提交 9de59fd1)
- 添加了选项
dropuser- 添加了选项
-w/--no-password(提交 9de59fd1)
- 添加了选项
pg_restorereindexdb- 添加了选项
-w/--no-password(提交 9de59fd1)
- 添加了选项
vacuumdb
Contrib模块
已添加
auto_explain(提交 e125e28e)btree_gin(提交 9151e1bb)citext(提交 ab9907f5)pg_stat_statements(提交 7466eeac)
已修改
dblinkfuzzystrmatchlevenshtein()函数扩展,加入了可选的成本值(提交 55f6e5f6)
intagg- 标记为已弃用(提交 32cc9e55)
ltree- 增加了对多字节编码的支持(提交 8eee65c9)
pageinspectpgbenchpg_freespacemap- 重写以匹配新的 FSM 实现(提交 15c121b3)
pg_standbypgstattuplepgstatindex()和pg_relpages()已适配以处理超过 20 亿页的表和索引(提交 d287818e)
pg_trgm- 增加了对多字节编码的支持(提交 b87b52bf)
vacuumlo- 添加了选项
-w/--no-password(提交 9de59fd1)
- 添加了选项
测试
pg_regress可以在构建树之外执行(提交 feae7856)
