发布日期:. 2011-09-12
该发布显示了PostgreSQL超越传统关系数据库功能设置为新, 突破性功能对PostgreSQL是唯一的。 发布9.0中介绍的流复制功能通过添加同步复制选项,流备份以及 监测改进而被显著增强。主要功能包含:
允许同步复制
添加支持外表
添加每列collation支持
添加扩展 这简化附加包到PostgreSQL。
添加真的可串行化隔离级别
在CREATE TABLE
中
使用UNLOGGED
选项支持未记录表
允许WITH
子句中
数据修改命令(INSERT
/UPDATE
/DELETE
)
添加最近邻(算子排序)搜索到 GiST索引
添加SECURITY LABEL
命令并且支持SELinux权限控制
更新PL/Python服务器端语言
在下面部分将详细解释上面项。
使用pg_dump或者pg_upgrade 备份/恢复, 对于那些希望从任何以前发布中迁移数据是必须的。
版本9.1包含了可能影响与以前版本的兼容性的一些变化。 观察下面的不兼容性:
改变
standard_conforming_strings
的缺省值(Robert Haas)
缺省情况下,反斜杠是字符串中普通字符,
而不是转义字符。这一变化删除与SQL标准长期存在的不兼容。
escape_string_warning
有多年关于这个用法的警告。
E''
字符串是嵌入反斜杠转义到字符串中的正确做法,
并且这种变化不受影响。
这个变化可以打断不希望的应用,并且按照旧的规则执行字符串转义。 该结果可能与介绍的SQL注入安全中断一样严峻。 确保测试应用遭受不可信任输入, 确保它们正确处理单引号和文本字符串中反斜线符号。
不允许函数样式和属性样式数据类型转换为复合类型(Tom Lane)
比如,不允许
和
composite_value
.texttext(
。
该语法的无意识使用经常导致错误报告;
尽管它不是错误,似乎追溯到拒绝这样的表达式更好。
当实际上打算整个复合值计算时,
composite_value
)CAST
和::
语法仍然可以使用。
加强基于数组的域转换检查(Tom Lane)
当域是基于数组类型时,它被允许“查看”域类型访问数组元素,
包含下标域值抓取或者分配一个元素。
分配这样一个域值元素,比如通过UPDATE ... SET domaincol[5] = ...
,
将导致检查域类型的约束,然而检查之前被忽略。
改变
string_to_array()
为零长字符串返回空数组(Pavel Stehule)
以前返回空值。
改变
string_to_array()
,
所以NULL
分隔符分离字符串到字符(Pavel Stehule)
先前这返回空值。
修复触发器之前/之后的不当检查(Tom Lane)
触发器可以在三种情况下被触发:BEFORE
,
AFTER
或者INSTEAD OF
一些操作。
触发器函数发起者应该理智验证三种情况下它们的逻辑操作。
需要超级用户或者CREATEROLE
权限目的是设置评论角色(Tom Lane)
改变
pg_last_xlog_receive_location()
因此它不会向后移动(Fujii Masao)
先前,当重新启动流复制的时候,pg_last_xlog_receive_location()
的值
可以向后移动。
复制连接日志接受
log_connections
(Magnus Hagander)
先前,复制连接总是被记录。
改变不带参数的PL/pgSQL的RAISE
命令
为通过附属异常块可捕获(Piyush Newe)
以前代码块中RAISE
总是限于附加异常块中,因此
在同一范围内是无法捕获的。
调整PL/pgSQL的错误线编号代码与其他PL相一致(Pavel Stehule)
先前,PL/pgSQL在函数体开始部分可能忽略(不计算)空行。 由于这是不符合所有其他语言的,特殊情况下被删除。
使得PL/pgSQL抱怨IN和OUT参数名冲突(Tom Lane)
以前,检测不到冲突,该名字可能就默默地指向OUT参数。
PL/pgSQL变量类型修饰符对于SQL分析器是可见的(Tom Lane)
附属于PL/pgSQL变量的类型修饰符(比如varchar长度限制) 在分配之间被执行,但是出于其他目的被忽略。 这些变量操作更像声明了同一描述符的表列。 这不希望在多数情况下产生任何可见差异, 但是它可能产生通过PL/pgSQL函数发布的一些SQL命令的微妙变化。
所有contrib模块伴随
CREATE EXTENSION
被安装而不是通过手动调用它们的SQL脚本(Dimitri Fontaine, Tom Lane)
为了更新包含contrib模块9.0版本的现有数据库,
使用CREATE EXTENSION ... FROM unpackaged
封装现有contrib模块的对象到一个扩展中。
当从先前9.0版本中更新时,使用旧的卸载脚本删除contrib模块的对象,
然后使用CREATE EXTENSION
。
使得pg_stat_reset()
重置所有数据库级别统计(Tomas Vondra)
一些pg_stat_database
计数器没有被重置。
修复一些
information_schema.triggers
列名匹配新的SQL标准名(Dean Rasheed)
把ECPG游标名看作不区分大小写(Zoltan Boszormenyi)
下面你将发现在PostgreSQL 9.1 和以前主要发布之间的变化的详细列表。
支持
在CREATE TABLE
中
使用UNLOGGED
选项的未记录表(Robert Haas)
这个表提供了比常规表更好的更新性能,但是不安全:它们内容在 服务器崩溃的情况下被自动清除。 也不会被传送到备份子服务器。
允许FULL OUTER JOIN
作为哈希连接被实现,
并且允许LEFT OUTER JOIN
或者
RIGHT OUTER JOIN
的一侧被哈希(Tom Lane)
以前FULL OUTER JOIN
只能作为合并连接被实现,
并且LEFT OUTER JOIN
和
RIGHT OUTER JOIN
可以哈希连接空侧。
这些变化提供了额外查询优化可能性。
合并复制fsync请求(Robert Haas, Greg Smith)
这大大提高了大量写入重载下性能。
提高
commit_siblings
的性能(Greg Smith)
这允许较少开销的commit_siblings
的使用。
减少大的ispell词典存储需求(Pavel Stehule, Tom Lane)
避免“盲写”后将数据文件打开(Alvaro Herrera)
这修复它们被删除后后端保持文件打开时间,防止内核回收磁盘空间。
允许继承表扫描返回有意义的排序结果 (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane)
这允许使用
ORDER BY
,LIMIT
或者带有继承表的MIN
/MAX
的查询的更好优化。
提高GIN索引扫描成本估计(Teodor Sigaev)
提高聚合和window函数成本估计(Tom Lane)
在pg_hba.conf
中支持host名字和host后缀(比如.example.com
)
先前只支持host IP 地址和CIDR值。
在pg_hba.conf
的host列
支持关键字all
(Peter Eisentraut)
以前为了这个人们使用
0.0.0.0/0
或者::/0
。
在不支持Unix套接字连接的平台上拒绝
pg_hba.conf
中的
local
行(Magnus Hagander)
先前,默默忽略这样的行,这可能是令人惊讶的。 这使得该操作更像其他不支持的情况。
允许GSSAPI 通过SSPI用于 验证到服务器(Christian Ullrich)
特别是允许基于Unix GSSAPI客户端执行 伴随Windows服务器的SSPI认证。
在区域套接字上的ident
认证被称为peer
(Magnus Hagander)
该旧的术语仍然接受向后兼容性,但是 因为这两种方法在根本上是不同的, 为它们采用不同的名字似乎更好。
重写peer认证 以避免证书控制信息的使用(Tom Lane)
这个变化使得同等验证码更加简单而且可执行性更好。然而,
它需要平台提供getpeereid
函数或者等效套接字操作。
按目前所知,之前同等认证执行唯一平台,
并且现在不是之前5.0 NetBSD。
添加重启点和检查点记录详情,通过
log_checkpoints
控制
(Fujii Masao, Greg Smith)
新的详情包含WAL文件以及同步活动。
添加log_file_mode
其控制通过日志收集器创建的日志文件权限(Martin Pihlak)
减少syslog记录缺省最大行长度 到加上前缀900字节(Noah Misch)
这避免了syslog实现上具有1KB长度限制而不是常见的2KB的长日志行的 截断。
添加client_hostname
列到
pg_stat_activity
(Peter Eisentraut)
先前只报道客户端地址。
添加
pg_stat_xact_*
统计函数和视图(Joel Jacobson)
这些更像数据库端统计计算视图, 但是反映了当前事务重要性。
添加数据库级别最后重置时间以及后端写统计视图(Tomas Vondra)
在pg_stat_*_tables
视图中添加列显示清理数和分析操作(Magnus Hagander)
添加buffers_backend_fsync
列到
pg_stat_bgwriter
(Greg Smith)
这个新列计算后端同步缓冲区的次数。
提供
wal_buffers
的自动调整(Greg Smith)
缺省情况下,wal_buffers
的值基于shared_buffers
的值
被自动选择。
为deadlock_timeout
,
log_min_duration_statement
和
log_autovacuum_min_duration
增加最大值(Peter Eisentraut)
这些参数的最大值先前只有35分钟。 现在允许更大值。
允许同步复制 (Simon Riggs, Fujii Masao)
这允许等待备用的主服务器在承认提交前写事务信息到磁盘。
每次备用起着同步备份的作用。正如通过
synchronous_standby_names
设置控制。
在每个事务基础上使用synchronous_commit
设置可以启用或者禁用同步复制。
使用流复制网络连接添加发送文件系统备份协议支持到备用服务器 (Magnus Hagander, Heikki Linnakangas)
当设置一个备用服务器时,这避免了手动传送文件系统备份的需求。
添加replication_timeout
设置(Fujii Masao, Heikki Linnakangas)
对于超过replication_timeout
间隔空闲的复制连接将自动被终止。
先前,失败连接通常不能被检测直到TCP超时消逝,
在很多情况下这是不方便的。
添加命令行工具 pg_basebackup 创建一个新的备用服务器或者数据库备份(Magnus Hagander)
为角色添加复制许可(Magnus Hagander)
这是用于流复制的只读权限。它允许非超级用户 用于复制连接。 先前只有超级用户可以启动复制连接; 缺省情况下超级用户具有此权限。
增加系统视图
pg_stat_replication
,
这显示了WAL发送者进程活动
(Itagaki Takahiro, Simon Riggs)
报告所有连接备用服务器的状态。
添加监控函数
pg_last_xact_replay_timestamp()
(Fujii Masao)
这返回了主库产生最近提交或者应用在备库上的终止记录的时间。
添加配置参数
hot_standby_feedback
启动备库以推迟主库旧行版本清理(Simon Riggs)
这有助于避免备库上取消长时间运行查询。
添加pg_stat_database_conflicts
系统视图以显示取消的查询和原因(Magnus Hagander)
因为删除的表空间,锁超时,旧快照,保留区以及死锁,可以发生取消。
添加conflicts
计算到
pg_stat_database
(Magnus Hagander)
发生在数据库中的冲突数。
为max_standby_archive_delay
和
max_standby_streaming_delay
增加最大值。
每个参数的最大值以前只有35分钟。现在允许更大的值。
添加
ERRCODE_T_R_DATABASE_DROPPED
错误代码以报告恢复冲突,由于已删除数据库(Tatsuo Ishii)
这对于连接池软件是有用的。
添加函数以控制流复制重播(Simon Riggs)
新函数是
pg_xlog_replay_pause()
,
pg_xlog_replay_resume()
,
并且状态函数是
pg_is_xlog_replay_paused()
添加recovery.conf
设置
pause_at_recovery_target
在目标位置暂停恢复(Simon Riggs)
这允许需要恢复服务器检查恢复点是否是所需的。
使用
pg_create_restore_point()
添加创建命名恢复点的能力(Jaime Casanova)
这些命名恢复点被声明为使用新的
recovery.conf
设置
recovery_target_name
的恢复目标。
允许备份恢复自动切换到新的时间线(Heikki Linnakangas)
目前备用服务器为周期性新的时间线扫描归档目录。
添加restart_after_crash
设置,在后台崩溃后禁用自动服务器重启(Robert Haas)
这允许外部集群管理软件控制数据库服务器是否重新启动。
允许
recovery.conf
使用和postgresql.conf
相同的引用操作(Dimitri Fontaine)
以前所有值必须被引用。
添加真的 可串行化隔离级别 (Kevin Grittner, Dan Ports)
先前,要求串行化隔离保证了单独MVCC快照可以用于整个事务,
这允许某些记录异常。
旧的快照隔离级别通过请求
REPEATABLE READ
隔离级别可用。
允许WITH
子句中
数据修改命令(INSERT
/UPDATE
/DELETE
)
(Marko Tiikkaja, Hitoshi Harada)
这些命令可以使用RETURNING
传递数据到所包含查询。
允许WITH
子句被附属于
INSERT
,UPDATE
,
DELETE
语句(Marko Tiikkaja, Hitoshi Harada)
当在GROUP BY
子句中指定主键时,
允许查询目标列中的
非GROUP BY
列(Peter Eisentraut)
SQL标准允许该操作,由于该主键,结果是明确的。
允许UNION
/INTERSECT
/EXCEPT
子句中关键字DISTINCT
的使用(Tom Lane)
DISTINCT
是缺省操作,因此该关键字的使用是多余的,
但是SQL标准允许它。
修复普通规则查询以使用和EXPLAIN ANALYZE
相同快照操作(Marko Tiikkaja)
先前EXPLAIN ANALYZE
使用涉及规则的查询略微不同的快照时间。
EXPLAIN ANALYZE
操作被认为更合乎逻辑。
添加每列 collation支持 (Peter Eisentraut, Tom Lane)
以前在数据库创建中选择排序规则(文本字符串排序)。
排序规则可以设置每列,域,索引,或者表达式,
通过SQL标准COLLATE
子句。
添加extensions, 这简化了附加PostgreSQL的包装(Dimitri Fontaine, Tom Lane)
通过新的
CREATE
/ALTER
/DROP EXTENSION
命令
控制扩展。
这取代了分组对象的点对点方法被添加到PostgreSQL安装中。
添加支持外表 (Shigeru Hanada, Robert Haas, Jan Urbanski, Heikki Linnakangas)
这允许存储在数据库外的数据像本地PostgreSQL存储数据一样使用。 然而,外表目前只读。
允许新值通过ALTER TYPE
被
添加到现有枚举类型中(Andrew Dunstan)
添加ALTER TYPE ...
ADD/DROP/ALTER/RENAME ATTRIBUTE
(Peter Eisentraut)
这允许复合类型的修改。
ALTER
对象 在分类表上添加RESTRICT
/CASCADE
到
ALTER TYPE
操作(Peter Eisentraut)
这控制
ADD
/DROP
/ALTER
/RENAME ATTRIBUTE
级联操作。
支持ALTER TABLE
(Noah Misch)name
{OF | NOT OF}
type
这个语法允许单独表成为分类表,或者分类表成为单独的。
在ALTER ... SET SCHEMA
命令中添加支持多个对象类型(Dimitri Fontaine)
该命令现在支持转换,算子,算子类, 算子族,文本搜索配置,文本搜索词典,文本 搜索分析器,以及文本搜索模板。
CREATE/ALTER TABLE
添加ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX
(Gurjeet Singh)
这允许使用现有唯一索引包含 同时创建的唯一索引定义主键或者唯一约束。
允许ALTER TABLE
添加没有验证的外键(Simon Riggs)
新选项称为NOT VALID
。
约束的状态可以随后被修改为VALIDATED
并且
执行验证检查。同时这些允许你添加对读写操作影响最小的外键。
允许
ALTER TABLE... SET DATA TYPE
避免
在合适情况中的表重写(Noah Misch, Robert Haas)
比如,转换varchar
列使得text
不再需要表重写。
然而,增加varchar
列上长度限制仍然需要表重写。
添加CREATE TABLE IF NOT EXISTS
语法(Robert Haas)
如果该表已经存在,那么允许没有导致错误的表创建。
当两个后端尝试添加继承孩子到同一时间的同一表时, 修复可能“元组同时更新”错误(Robert Haas)
ALTER TABLE
需要采取更强锁定父表,这样该会话不能试图同时更新它。
添加SECURITY LABEL
命令(KaiGai Kohei)
这允许安全标签分配给对象。
添加事务级别咨询锁(Marko Tiikkaja)
这与现有会话级别咨询锁类似, 但是在事务结束时自动释放这种锁。
使得TRUNCATE ... RESTART IDENTITY
相互作用的重启序列(Steve Singer)
如果在提交事务活动和提交完成之间发生后端崩溃, 那么该计数器可能已经不同步。
COPY
添加ENCODING
选项到
COPY TO/FROM
(Hitoshi Harada, Itagaki Takahiro)
这允许分别从客户端编码指定COPY
文件编码。
添加双向COPY
协议支持(Fujii Masao)
当前通过流复制被使用。
EXPLAIN
使得EXPLAIN VERBOSE
在FunctionScan
节点中
显示函数调用表达式(Tom Lane)
VACUUM
添加额外详情到
VACUUM FULL VERBOSE
和
CLUSTER VERBOSE
的输出中(Itagaki Takahiro)
新信息包含活的和死的元组数,
以及是否CLUSTER
使用索引重新创建。
如果它不能获得表锁, 那么阻止autovacuum等待(Robert Haas)
它将尝试随后清理该表。
CLUSTER
当它似乎比较廉价时,允许CLUSTER
排序表而不是
扫描索引(Leonardo Francalanci)
添加最近邻(算子排序)搜索到 GiST索引 (Teodor Sigaev, Tom Lane)
这允许GiST索引迅速返回带有LIMIT
的查询中的
N
最近值。比如
SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
找到离给定目标点最近的十个位置。
允许GIN索引索引无效和空值(Tom Lane)
这允许全GIN索引扫描, 并且修复GIN扫描可能失败的情况。
允许GIN索引 更好识别重复搜索项(Tom Lane)
这降低了索引扫描成本, 尤其是在避免不必要全扫描索引的情况下。
修复GiST索引充分 碰撞安全(Heikki Linnakangas)
先前存在需要REINDEX
的罕见情况(你可能被告知)。
允许numeric
在一般情况下使用更紧凑,两字节标题。
以前所有numeric
值有四字节标题,
这种变化节省磁盘存储。
添加通过money
划分money
的支持(Andy Balholm)
允许类型void
上的二进制I/O(Radoslaw Smogura)
提高几何学操作符的斜边计算(Paul Matthews)
这避免了不必要的溢出,也可能更精准。
支持哈希数组值(Tom Lane)
这提供了额外查询优化可能性。
不要将复合类型看作可分类的除非所有列类型是可分类的(Tom Lane)
这避免了可能的运行时“不能识别比较函数”错误,
如果可能实现没有排序的查询。
同时,ANALYZE
不会尝试为该复合类型列使用不恰当的统计收集方法。
添加支持money
和numeric
之间的转换(Andy Balholm)
添加从int4
和int8
到money
的转换(Joey Adams)
如果它是一个分类表, 那么允许转换表的行类型到表的父类型(Peter Eisentraut)
这与允许转换行类型到父表行类型的现有功能类似。
添加XML函数
XMLEXISTS
和
xpath_exists()
函数(Mike Fowler)
这些用于XPath匹配。
添加XML函数
xml_is_well_formed()
,
xml_is_well_formed_document()
,
xml_is_well_formed_content()
(Mike Fowler)
这些检查输入是否是恰当形成的XML。
它们提供了以前在弃用的contrib/xml2
模块中可用的功能。
添加函数
format(text, ...)
,
这类似于C的printf()
(Pavel Stehule, Robert Haas)
它目前支持字符串,SQL文本以及SQL标识符格式。
添加字符串函数
concat()
,
concat_ws()
,
left()
,
right()
,
以及reverse()
(Pavel Stehule)
这改善了与其他数据库产品的兼容性。
添加函数
pg_read_binary_file()
以读取二进制文件(Dimitri Fontaine, Itagaki Takahiro)
添加函数
pg_read_file()
的一个参数版本以读取整个文件(Dimitri Fontaine, Itagaki Takahiro)
为空值处理控制添加
array_to_string()
和string_to_array()
的三个参数形式(Pavel Stehule)
添加
pg_describe_object()
函数(Alvaro Herrera)
该函数用于获得人类可读字符串描述对象,基于
pg_class
OID,
对象OID以及子对象OID。它可以有助于解释
pg_depend
的内容。
更新内置操作符注释和潜在函数(Tom Lane)
打算通过相关算子使用的函数同样被注释。
添加函数
quote_all_identifiers
强迫EXPLAIN
中以及系统目录函数像
pg_get_viewdef()
中所有标识符引用。
尝试输出模式到工具和伴随不同引用规则更加容易的其他数据库。
添加列到
information_schema.sequences
系统表(Peter Eisentraut)
先前,尽管视图存在,未实现关于序列参数的列。
在has_table_privilege()
中以及相关函数中允许public
作为伪角色名字(Alvaro Herrera)
这允许检查public权限。
支持视图上
INSTEAD OF
触发器(Dean Rasheed)
该功能可以充分实现可更新视图。
添加FOREACH IN ARRAY
到PL/pgSQL(Pavel Stehule)
这比遍历数组值元素的先前方法更有效并且可读性更高。
允许可以从同一地方捕获
RAISE ERROR
的同一位置
捕获不带参数的RAISE
(Piyush Newe)
前面编码从包含活跃异常处理程序块中抛出错误。 新操作与其他DBMS产品更加一致。
允许通用记录参数到PL/Perl函数(Andrew Dunstan)
可以声明PL/Perl函数接受类型record
。
该操作与任何命名复合类型是一样的。
转换PL/Perl数组参数到Perl数组(Alexey Klyukin,Alex Hunsaker)
字符串表示仍然可用。
转换PL/Perl复合类型参数到Perl哈希(Alexey Klyukin, Alex Hunsaker)
字符串表示仍然可用。
添加表函数支持PL/Python(Jan Urbanski)
PL/Python现在可以返回多个OUT
参数和记录集。
添加验证器给PL/Python (Jan Urbanski)
这允许PL/Python函数在函数创建时间是语法检查的。
允许PL/Python中SQL查询异常(Jan Urbanski)
这允许从PL/Python异常块中访问SQL生成异常错误代码。
添加明确子事务到PL/Python (Jan Urbanski)
为引用字符串添加PL/Python函数(Jan Urbanski)
这些函数是
plpy.quote_ident
,
plpy.quote_literal
,
和plpy.quote_nullable
。
添加跟踪信息到PL/Python错误(Jan Urbanski)
从带有PLy_elog
的迭代器中报告PL/Python错误(Jan Urbanski)
修复Python 3异常处理(Jan Urbanski)
异常类以前在Python 3下plpy
中不可用。
将createlang和droplang 标记为废弃的现在它们只是调用扩展命令(Tom Lane)
增加psql命令\conninfo
以显示当前连接信息(David Christensen)
添加psql命令\sf
以显示函数的定义(Pavel Stehule)
添加psql命令\dL
罗列语言(Fernando Ike)
添加S
(“system”)选项到psql的
\dn
(罗列模式)命令(Tom Lane)
没有S
的\dn
现在抑制系统模式。
允许 psql的\e
和\ef
命令
接受用于定位编辑器中游标的行号(Pavel Stehule)
按照PSQL_EDITOR_LINENUMBER_ARG
环境变量被传递给编辑器。
psql设置来自缺省操作系统区域的客户端编码(Heikki Linnakangas)
如果没有设置PGCLIENTENCODING
环境变量,
那么只会发生。
尝试\d
区分唯一索引和唯一约束(Josh Kupershmidt)
当讨论9.0或者之后服务器时,
尝试\dt+
报告pg_table_size
而不是pg_relation_size
(Bernd Helmle)
这是表大小更加有效的度量, 但是注意这与同一显示中先前报告的是不一样的。
额外的tab实现支持 (Itagaki Takahiro, Pavel Stehule, Andrey Popp, Christoph Berg, David Fetter, Josh Kupershmidt)
添加pg_dump
和pg_dumpall
选项--quote-all-identifiers
强制引用所有标识符(Robert Haas)
添加directory
格式给pg_dump
(Joachim Wieland, Heikki Linnakangas)
内部类似于tar
pg_dump格式。
修复pg_ctl, 所以它不再错误地报告服务器没有运行(Bruce Momjian)
如果服务器正在运行但是pg_ctl无法验证, 先前这可能发生。
提高pg_ctl启动的“wait”
(-w
)选项(Bruce Momjian, Tom Lane)
等待模式现在更加鲁棒,它通过非缺省postmaster port号,非缺省 Unix域套接字位置,权限问题,或者旧的postmaster锁文件不会被混乱。
添加promote
选项到pg_ctl用来切换
备用服务器到主库(Fujii Masao)
添加libpq连接选项
client_encoding
这就像PGCLIENTENCODING
环境变量(Heikki Linnakangas)
值auto
设置基于操作系统区域的客户端编码。
添加
PQlibVersion()
函数,它返回libpq库版本(Magnus Hagander)
libpq已有PQserverVersion()
返回服务器版本。
当通过伴随新的
requirepeer
连接选项的Unix域套接字连接时,
允许libpq使用客户端检查服务器进程用户名。(Peter Eisentraut)
当通过Unix域套接字连接时,PostgreSQL允许服务器检查 客户端用户名。
添加PQping()
和PQpingParams()
到libpq (Bruce Momjian, Tom Lane)
这些函数允许不尝试打开新会话的服务器状态检测。
允许ECPG接受WHERE CURRENT OF
子句
中动态游标名称(Zoltan Boszormenyi)
尝试ecpglib写带有15位精度而不是以前的14位的
double
值(Akira Kurosawa)
使用可以接受它的HP-UX C编译器的+Olibmerrno
编译标记(Ibrar Ahmed)
这避免了最新HP平台上math库调用的可能的不当操作。
改善并行make支持(Peter Eisentraut)
允许更快编译。同时,make -k
更加一致运行。
需要GNU make 3.80或者更新版本(Peter Eisentraut)
由于并行make改进这是必须的。
添加make maintainer-check
目标(Peter Eisentraut)
这个目标执行各种不适用于编译或者回归测试的源代码检查。 目前,duplicate_oids,SGML语法和tab检查,NLS语法检查。
支持contrib
中的make check
(Peter Eisentraut)
以前只有make installcheck
运行,但是现在
支持临时安装中测试。
顶级make check-world
包含这种方式测试contrib
。
修订GUC变量分配钩的API(Tom Lane)
以往分配钩函数划分检查钩和分配钩, 前者可以失败但是后者不能。 这一变化将影响定义自定义GUC参数的附加模块。
添加源代码锁存器以支持等待事件(Heikki Linnakangas)
集中数据修改权限检查逻辑(KaiGai Kohei)
为了保持一致性添加缺失的get_
函数(Robert Haas)object
_oid()
为了compiling add-on modules 通过删除冲突关键字提高使用C++编译器的能力(Tom Lane)
添加支持DragonFly BSD (Rumko)
出于后端使用暴露quote_literal_cstr()
(Robert Haas)
在缺省编码中运行回归测试(Peter Eisentraut)
回归测试以前总是运行SQL_ASCII
编码。
添加src/tools/git_changelog替换 cvs2cl和pgcvslog (Robert Haas, Tom Lane)
添加git-external-diff脚本到
src/tools
(Bruce Momjian)
这用于产生来自git的语境差异。
提高支持编译Clang (Peter Eisentraut)
添加源代码钩检查权限(Robert Haas,Stephen Frost)
出于使用安全框架添加后对象创建函数钩(KaiGai Kohei)
添加客户端认证钩(KaiGai Kohei)
修改contrib
模块和程序语言通过新的
扩展
机制安装(Tom Lane, Dimitri Fontaine)
添加contrib/file_fdw
外部数据封装器(Shigeru Hanada)
外表使用这个外部数据封装器可以以类似于COPY
的方式读取平文件。
添加最近邻搜索支持
contrib/pg_trgm
和
contrib/btree_gist
(Teodor Sigaev)
添加contrib/btree_gist
支持不平等搜索(Jeff Davis)
修复
contrib/fuzzystrmatch
的
levenshtein()
函数以处理多字节字符(Alexander Korotkov)
添加ssl_cipher()
and ssl_version()
函数到contrib/sslinfo
(Robert Haas)
修复 contrib/intarray
和contrib/hstore
提供与索引空数组一致结果(Tom Lane)
先前使用索引的空数组查询可能返回使用顺序扫描的不同结果。
允许contrib/intarray
恰当工作在多维数组上(Tom Lane)
在contrib/intarray
上,
避免在没有空值实际存在的情况下抱怨空值存在的错误(Tom Lane)
在contrib/intarray
中,
修复关于空数组包含操作符操作(Tom Lane)
空数组现在正确地认为被包含在任何其他数组中。
删除通过xslt_process()
处理的
parameter
=value
对数上
contrib/xml2
的任意限制(Pavel Stehule)
以前限制是10。
在contrib/pageinspect
中,
修复heap_page_item以返回32位值的infomask(Alvaro Herrera)
这避免返回负值,这是混乱的。 该潜在值是16位无符号整数。
添加contrib/sepgsql
连接与SELinux的权限检查(KaiGai Kohei)
这使用新的
SECURITY LABEL
功能。
添加contrib模块
auth_delay
(KaiGai Kohei)
在返回认证失败之前导致服务器暂停; 设计它使得蛮力密码攻击更加困难。
添加dummy_seclabel
contrib模块(KaiGai Kohei)
这用于允许回归测试。
添加支持LIKE
and ILIKE
索引搜索到
contrib/pg_trgm
(Alexander Korotkov)
添加levenshtein_less_equal()
函数到
contrib/fuzzystrmatch
,
这是对小距离的优化(Alexander Korotkov)
提高
contrib/seg
上索引查找性能
(Alexander Korotkov)
提高许多关系数据库 pg_upgrade 的性能(Bruce Momjian)
添加标记到
contrib/pgbench
以报告每个语句延迟(Florian Pflug)
移动src/tools/test_fsync
到
contrib/pg_test_fsync
(Bruce Momjian, Tom Lane)
添加O_DIRECT
支持到
contrib/pg_test_fsync
(Bruce Momjian)
这匹配通过
wal_sync_method
的O_DIRECT
的使用。
添加新的测试给
contrib/pg_test_fsync
(Bruce Momjian)
广泛的ECPG 文档改进(Satoshi Nagayasu)
广泛的校对和文档改进 (Thom Brown, Josh Kupershmidt, Susanne Ebrecht)
为exit_on_error
添加文档(Robert Haas)
这个参数导致会话有任何错误就退出。
为pg_options_to_table()
添加文档(Josh Berkus)
这个函数显示了可读形式中表存储选项。
文档可以访问使用
(compositeval).*
语法的所有复合类型字段(Peter Eisentraut)
文档translate()
删除没有相应的to
字符的from
中字符(Josh Kupershmidt)
为CREATE CONSTRAINT TRIGGER
和
CREATE TRIGGER
合并文档(Alvaro Herrera)
为Solaris 10添加内核调整记录 (Josh Berkus)
先前只有Solaris 9 内核调整被记录。
一致地处理HISTORY
文件中的非ASCII字符(Peter Eisentraut)
当HISTORY
文件是英语,
我们必须处理参与者名字中非ASCII字母。
这些目前是音译的,
因此它们没有关于字符集假设相当易读。