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_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)。