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_get_multixact_members()
(提交 0ac5ad51)pg_identify_object()
(提交 f8348ea3)pg_is_in_backup()
(提交 68de499b)to_json()
(提交 38fb4d97)
已修改
pg_get_constraintdef()
pg_get_indexdef()
pg_get_viewdef()
- 输出始终缩进 (commit 62e66640)
配置更改
已添加
data_checksums
(提交 96ef3b8f)ignore_checksum_failure
(提交 96ef3b8f)- 指令
include_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
哈希
- 并发性改进(提交 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)。