PostgreSQL 9.1
主要特性
- 增加了对扩展的支持 (commit d9572c4e)
- 增加了未记录表 (commit 53dbc27c)
- 增加了事务级建议锁 (commit 62c7bd31)
- 增加了只读外部数据包装器 (FDW) 支持 (初始 commit 0d692a0d)
- 支持每个列的排序规则 (commit 414c5a2e)
- 串行快照隔离 (commit dafaa3ef)
- 支持同步复制 (初始 commit a8a8a3e0)
SQL 更改
通用
已添加
ALTER COLLATION(commit b313bca0)ALTER EXTENSION(commit d9572c4e)ALTER FOREIGN TABLE(commit 0d692a0d)CREATE COLLATION(commit b313bca0)CREATE EXTENSION(commit d9572c4e)CREATE FOREIGN TABLE(commit 0d692a0d)DROP COLLATION(commit b313bca0)DROP EXTENSION(commit d9572c4e)DROP FOREIGN TABLE(commit 0d692a0d)SECURITY LABEL(commit 4d355a83)
已修改
ALTER CONVERSION- 增加了
ALTER CONVERSION ... SET SCHEMA ...语法 (commit 55109313)
- 增加了
ALTER OPERATOR- 增加了
ALTER OPERATOR ... SET SCHEMA ...语法 (commit 55109313)
- 增加了
ALTER OPERATOR CLASSALTER OPERATOR CLASS ... SET SCHEMA ...语法已添加(提交 55109313)
ALTER OPERATOR FAMILYALTER ROLE- 添加了
REPLICATION/NOREPLICATION选项(提交 9b8aff8c)
- 添加了
ALTER TABLE- 在
ALTER TABLE ... ADD constraint中增加了NOT VALID选项 (commit 722bf701) - 增加了
ALTER TABLE VALIDATE constraint语法 (commit 722bf701) - 增加了
ALTER TABLE name {OF type | NOT OF语法 (commit 68739ba8)type} - 增加了
ALTER TABLE ... ADD { UNIQUE | PRIMARY KEY } USING INDEX语法 (commit 88452d5b) ALTER TABLE ... SET DATA TYPE ...对于某些数据类型组合不再需要表重写 (commit d31e2a49)
- 在
ALTER TEXT SEARCH CONFIGURATION- 增加了
ALTER TEXT SEARCH CONFIGURATION ... SET SCHEMA ...语法 (commit 55109313)
- 增加了
ALTER TEXT SEARCH DICTIONARY- 增加了
ALTER TEXT SEARCH DICTIONARY ... SET SCHEMA ...语法 (commit 55109313)
- 增加了
ALTER TEXT SEARCH PARSER- 增加了
ALTER TEXT SEARCH PARSER ... SET SCHEMA ...语法 (commit 55109313)
- 增加了
ALTER TEXT SEARCH TEMPLATE- 增加了
ALTER TEXT SEARCH TEMPLATE ... SET SCHEMA ...语法 (commit 55109313)
- 增加了
ALTER TYPE
ALTER USER- 添加了
REPLICATION/NOREPLICATION选项(提交 9b8aff8c)
- 添加了
COMMENT ONCOPY- 增加了
ENCODING选项 (commit 3cba8240)
- 增加了
CREATE DOMAIN- 增加了
COLLATE选项 (commit 414c5a2e)
- 增加了
CREATE INDEX- 增加了
COLLATE选项 (commit 414c5a2e)
- 增加了
CREATE FOREIGN DATA WRAPPER- 增加了
HANDLER选项 (commit 327e0250)
- 增加了
CREATE OPERATOR CLASSFOR SEARCH/FOR ORDER BY语法已添加(提交 725d52d0)
CREATE ROLE- 添加了
REPLICATION/NOREPLICATION选项(提交 9b8aff8c)
- 添加了
CREATE TABLECREATE TABLE AS- 增加了
UNLOGGED选项 (commit 53dbc27c)
- 增加了
CREATE TRIGGER- 增加了
CREATE TRIGGER ... INSTEAD OF ...语法 (commit 2ec993a7)
- 增加了
CREATE TYPE- 增加了
COLLATABLE选项 (commit 414c5a2e)
- 增加了
INSERT- 增加了对
WITH子句的支持 (commit 07f1264d)
- 增加了对
后端更改
查询规划器更改
- 聚合和窗口函数的成本估算得到改进 (commit e6a30a8c)
postmaster
postmaster.pid- 增加了包含端口号和套接字目录的行 (commit 075354ad)
- 增加了包含第一个 listen_address 和启动时间的行 (commit 30aeda43)
- 为
pg_upgrade添加了一个未文档化的-b选项 (commit 76dd09bb)
钩子
添加了以下钩子
ClientAuthentication_hook(commit 20709f81)ExecutorCheckPerms_hook(commit f4122a8d)ExecutorFinish_hook(commit a874fe7b)fmgr_hook(commit d368e1a2)needs_fmgr_hook(commit d368e1a2)object_access_hook(commit cc1ed40d)
数据类型更改
已添加
pg_node_tree(commit 303696c3)
已修改
系统目录更改
表
已添加
pg_collation(commit 414c5a2e)pg_extension(commit d9572c4e)pg_foreign_table(commit 0d692a0d)pg_seclabel(commit 4d355a83)
已修改
pg_ampg_amoppg_attribute- 增加了
attcollation列 (commit 414c5a2e)
- 增加了
pg_authid- 添加了列
rolreplication(提交 9b8aff8c)
- 添加了列
pg_classpg_enum- 增加了
enumsortorder列 (commit 84c123be)
- 增加了
pg_foreign_data_wrapper- 增加了
fdwhandler列 (commit 327e0250)
- 增加了
pg_indexpg_procproargdefaults列已更改为pg_node_tree类型 (commit 303696c3)
pg_rewriteev_qual列已更改为pg_node_tree类型 (commit 303696c3)ev_action列已更改为pg_node_tree类型 (commit 303696c3)
pg_type- 增加了
typcollation列 (commit 414c5a2e)
- 增加了
视图
已添加
pg_available_extensions(commit d9572c4e)pg_available_extension_versions(commit d9572c4e)pg_seclabels(commit 4d355a83)pg_stat_database_conflicts(commit 40d9e94b)pg_stat_replication(commit a755ea33)pg_stat_xact_all_tables(commit 46aa77c7)pg_stat_xact_sys_tables(commit 46aa77c7)pg_stat_xact_user_functions(commit 46aa77c7)pg_stat_xact_user_tables(commit 46aa77c7)
已修改
pg_roles- 添加了列
rolreplication(提交 9b8aff8c)
- 添加了列
pg_shadow- 添加了列
userepl(提交 9b8aff8c)
- 添加了列
pg_stat_activity- 增加了
client_hostname列 (commit 4a25bc14)
- 增加了
pg_stat_all_tables- 增加了以下列;同样适用于
pg_stat_sys_tables和pg_stat_user_tables(commit 946045f0)vacuum_countautovacuum_countanalyze_countautoanalyze_count
- 增加了以下列;同样适用于
pg_stat_bgwriterpg_stat_database
系统函数更改
已添加
concat()(commit 49b27ab5)concat_ws()(commit 49b27ab5)format()(commit 75048707)left()(commit 49b27ab5)pg_advisory_xact_lock()(commit 62c7bd31)pg_advisory_xact_lock_shared()(commit 62c7bd31)pg_collation_is_visible()(commit 414c5a2e)pg_create_restore_point()(commit c016ce72)pg_describe_object()(commit 6cc2deb8)pg_extension_update_paths()(commit 555353c0)pg_is_xlog_replay_paused()(初始 commit 8c6e3adb)pg_try_advisory_xact_lock()(commit 62c7bd31)pg_try_advisory_xact_lock_shared()(commit 62c7bd31)pg_xlog_replay_resume()(初始 commit 8c6e3adb)pg_xlog_replay_pause()(初始 commit 8c6e3adb)reverse()(commit 49b27ab5)right()(commit 49b27ab5)xml_is_well_formed()(commit a0b7b717)xml_is_well_formed_content()(commit a0b7b717)xml_is_well_formed_document()(commit a0b7b717)xpath_exists()(commit 4dfc4578)
已修改
array_to_string()- 增加了可选的第三个参数,用于指定表示
NULL值的字符串 (commit 33f43725)
- 增加了可选的第三个参数,用于指定表示
string_to_array()- 增加了可选的第三个参数,用于指定要被视为
NULL值的字符串 (commit 33f43725)
- 增加了可选的第三个参数,用于指定要被视为
pg_read_file()- 能够读取整个文件,而不是指定的文件段 (commit 03db44ea)
- 能够读取整个文件,而不是指定的文件段 (commit 03db44ea)
配置更改
已添加
default_transaction_deferrable(commit dafaa3ef)hot_standby_feedback(commit bca8b7f1)log_file_mode(commit 3ec694e1)max_pred_locks_per_transaction(初始 commit dafaa3ef)quote_all_identifiers(commit ce68df46)replication_timeout(commit 754baa21)restart_after_crash(commit 5ffaa900)synchronous_standby_names(commit a8a8a3e0)transaction_deferrable(commit dafaa3ef)wal_receiver_status_interval(commit b186523f)
已修改
exit_on_error- 已更改为文档化的设置 (commit 5ffaa900)
standard_conforming_strings- 默认值从
off更改为on(commit 0839f312)
- 默认值从
synchronous_commit- 增加了
local设置 (commit 240067b3)
- 增加了
wal_sender_delay- 默认值从
200ms更改为1s(commit 40f908bd)
- 默认值从
wal_sync_method- 在 Linux 上,默认值已更改为
fdatasync(commit 576477e7)
- 在 Linux 上,默认值已更改为
索引更改
GIN
- 重复搜索条目的识别能力得到提高 (commit 56a57473)
- 增加了对
NULL和空值索引的支持 (commit 73912e7f) - 索引扫描成本估算得到改进 (commit 48c7d9f6)
过程语言更改
通用
PL/pgSQL
PL/Perl
- PostgreSQL 数组在输入参数中已转换为 PL/Perl 数组 (commit 87bb2ade)
PL/Python
- 增加了对显式子事务的支持 (commit 22690719)
- 增加了对表函数(table functions)的支持 (commit bc411f25)
- 增加了验证器函数 (validator function) (commit 15f55cc3)
- 增加了以下函数 (commit 1c51c7d5)
plpy.quote_identplpy.quote_literalplpy.quote_nullable
复制更改
通用
- 增加了同步复制支持 (初始 commit a8a8a3e0)
- 增加了流复制重放控制函数 (初始 commit 8c6e3adb)
- 恢复现在可以在达到 recovery target 后暂停 (初始 commit 8c6e3adb)
- 命名的 recovery targets (commit c016ce72)
配置
已添加
pause_at_recovery_target(commit 8c6e3adb)recovery_target_name(commit c016ce72)
libpq 更改
- 增加了
client_encoding连接参数 (commit 02e14562) - 增加了
requirepeer连接参数 (初始 commit 040aee29) - 增加了
PQlibVersion()函数 (commit de9a4c27)
psql 更改
- 增加了
\conninfo命令以显示当前连接信息 (commit 013ed0bd) - 增加了
\sf命令以显示函数定义 (commit b6e06942) - 增加了
\dL命令以列出可用的语言 (commit 9c5e2c12) \dn命令默认忽略系统模式,\dnS则包含它们 (commit e43fb604)- 增加了
\dO命令以列出可用的排序规则 (commit b313bca0)
服务器实用程序
已修改
核心实用程序
已添加
pg_basebackup(commit 048d148f)
已修改
pg_dumppg_restore- 添加了选项
--no-security-labels(初始提交 c8e0c321)
- 添加了选项
Contrib模块
已添加
auth_delay(commit fe7a32fc)dummy_seclabel(commit 22dfd116)file_fdw(commit 7c5d0ae7)pg_test_fsync(commit 606a3d54)sepgsql(commit 968bc6fa)
已修改
btree_ginbtree_gistcubeearthdistancefuzzystrmatchintarraylopageinspectpg_freespacemappgrowlockspgstattuplepg_trgmsegsslinfo- 增加了
ssl_cipher()和ssl_version()函数 (commit 6d16902e)
- 增加了
tablefuncuuid-ossp
测试
通用
- 增加了
isolation tester(commit dafaa3ef)
pg_regress
--multibyte选项已重命名为--encoding(commit f536d419)
预发布测试版本
标志着 PostgreSQL 9.1 开发开始的初始 commit 是 b40466c3 (2010-07-09)。
