PostgreSQL 9.3
主要功能
- 数据页校验和 (初始提交 96ef3b8f)
- 添加了物化视图 (初始提交 3bf3ab8c)
- 添加了可更新视图 (提交 a99c42f2)
- 事件触发器 添加 (初始提交 3855968f)
- 添加了可更新 外部数据包装器 支持 (初始提交 dc3eb563)
postgres_fdw
添加 (初始提交 d0d75c40)
性能变更
CREATE TEMPORARY TABLE ... ON COMMIT DELETE ROW
性能提升 (提交 c9d7dbac)
SQL 变更
常规
LATERAL
子查询语法添加 (提交 5ebaaa49)
添加
ALTER EVENT TRIGGER
(提交 3855968f)ALTER MATERIALIZED VIEW
(提交 3bf3ab8c)CREATE EVENT TRIGGER
(提交 3855968f)CREATE MATERIALIZED VIEW
(提交 3bf3ab8c)DROP EVENT TRIGGER
(提交 3855968f)DROP MATERIALIZED VIEW
(提交 3bf3ab8c)
修改
ALTER EXTENSION
ALTER FOREIGN TABLE
ALTER FOREIGN TABLE ... ALTER COLUMN ... SET DEFAULT ... / DROP DEFAULT
语法添加 (提交 a0c6dfee)
ALTER RULE
- 添加 (提交 c61e26ee)
ALTER TYPE
COMMENT ON
COPY
CREATE FOREIGN TABLE
CREATE SCHEMA
CREATE SCHEMA IF NOT EXISTS
语法添加 (提交 fb34e94d)
CREATE TABLE
- 更新了
ON UPDATE SET { NULL | DEFAULT }
引用操作的行为 (提交 c75be2ad)
- 更新了
CREATE VIEW
CREATE [ RECURSIVE ] VIEW ...
语法添加 (提交 58390526)
DROP TABLE
DROP TABLE IF EXISTS ...
现在不再在指定不存在的模式时失败并返回ERROR
(提交 7e2322df)
后端变更
常规
- 添加了对
后台工作进程
基础设施的支持 (提交 da07a1e8) - 添加了
libpgcommon
,用于在后端和前端实用程序之间共享公共代码 (提交 8396447c) - 内存排序现在可以使用由
work_mem
指定的全部内存分配 (提交 8ae35e91)
锁定
- 添加了额外的元组节点锁
FOR KEY SHARE
和FOR NO KEY UPDATE
(提交 0ac5ad51)
优化器
- 现在收集并使用范围类型上下限的直方图 (提交 918eee0c)
postmaster
- 添加了对多个 Unix 域套接字的支持 (提交 c9b0cbe9)
系统目录变更
表
添加
pg_event_trigger
(提交 3855968f)
修改
pg_database
- 添加了列
datminmxid
(提交 0ac5ad51)
- 添加了列
pg_index
- 添加了列
indislive
(提交 3c840464)
- 添加了列
视图
添加
pg_matviews
(提交 3bf3ab8c)
系统函数
添加
array_remove()
(提交 84a42560)array_replace()
(提交 84a42560)json_agg()
(提交 38fb4d97)json_each()
(提交 a570c98d)json_each_text()
(提交 a570c98d)json_extract_path()
(提交 a570c98d)json_extract_path_text()
(提交 a570c98d)json_object_keys()
(提交 a570c98d)json_populate_record()
(提交 a570c98d)json_populate_recordset()
(提交 a570c98d)pg_backup_start_time()
(提交 68de499b)pg_identify_object()
(提交 f8348ea3)pg_is_in_backup()
(提交 68de499b)to_json()
(提交 38fb4d97)
修改
配置变更
添加
data_checksums
(提交 96ef3b8f)ignore_checksum_failure
(提交 96ef3b8finclude_dir
指令 (提交 2a0c81a1)lock_timeout
(提交 d43837d0)unix_socket_directories
(提交 c9b0cbe9)wal_receiver_timeout
(提交 6f60fdd7)wal_sender_timeout
(从replication_timeout
重命名; 提交 6f60fdd7)
修改
已移除
replication_timeout
(重命名为wal_sender_timeout
; 提交 6f60fdd7)unix_socket_directory
(被unix_socket_directories
替换; 提交 c9b0cbe9)
索引变更
GiST
hash
- 并发改进 (提交 76837c15)
SP-GiST
过程语言变更
PL/pgSQL
- 支持使用带有复合类型表达式的
RETURN
(提交 31a89185) - 现在可以作为独立字段访问约束违规详细信息 (提交 c21bb48d)
- 现在可以访问
COPY
处理的行数 (提交 7ae18159) - 未保留关键字可以在任何地方用作标识符 (提交 bac95fd4)
PL/Python
- 添加结果对象字符串处理程序 (提交 330ed4ac)
- OID 值现在转换为正确的 Python 数值类型 (提交 db0af74a)
- 直接引发 SPIErrors,并与内部生成的 SPIError 相同对待 (提交 316186f2)
- 支持在 OS X 上针对自定义 Python 安装进行构建 (提交 fc874507)
复制变更
- 添加“快速”提升 (提交 fd4ced52)
libpq
- 添加函数
PQconninfo()
(提交 65c3bf19)
外部数据包装器变更
服务器实用程序
修改
核心实用程序
添加
pg_isready
(提交 ac2e9673)
修改
pg_basebackup
- 添加选项
--write-recovery-conf
,它会创建一个基本的 recovery.conf 文件 (提交 915a29a1) --xlog-method
能够处理流式时间线切换 (提交 0b632913)- 添加选项
-d
/--dbname
来接受 conninfo 字符串 (提交 aa05c37e)
- 添加选项
pg_dump
pg_dumpall
pg_receivexlog
pg_restore
,clusterdb
,reindexdb
和vacuumdb
- 选项
-t/--table
可以多次提供 (提交 f3af5344)
- 选项
psql 更改
Contrib 模块
添加
pg_xlogdump
(提交 639ed4e8)postgres_fdw
(初始提交 d0d75c40)worker_spi
(提交 da07a1e8)
修改
dblink
- 修改为使用外部数据包装器功能 (提交 8255566f)
hstore
- 添加以下函数 (提交 38fb4d97)
hstore_to_json()
hstore_to_json_loose()
- 添加以下函数 (提交 38fb4d97)
oid2name
- 现在设置
fallback_application_name
(提交 17676c78)
- 现在设置
pgbench
pgrowlocks
- 对
pgrowlocks()
结果列进行了以下更改(提交 0ac5ad51)
- 删除了列
lock_type
- 添加了列
mode
- 删除了列
- 对
pgstattuple
- 添加了函数
pgstatginindex()
(提交 357cbaae)
- 添加了函数
pg_test_timing
- 改进了输出(提交 0f3351aa)
pg_upgrade
sepgsql
- 强制执行
db_procedure:{execute}
权限(提交 f8a54e93) - 强制执行
db_schema:search
权限(提交 e965e634) - 允许
sepgsql
标签依赖于对象名称(提交 0f05840b) - 支持
object_access_hook
的新OAT_POST_ALTER
类型(提交 1cea9bbb)
- 强制执行
test_fsync
- 添加了微秒/操作显示(提交 82e42979)
vacuumlo
- 现在设置
fallback_application_name
(提交 17676c78)
- 现在设置
文档
- 文档可以以 EPUB 格式创建(提交 ff64fd49)
预发布测试版本
标记 PostgreSQL 9.3
开发开始的初始提交是 bed88fce(2012-06-13)。