PostgreSQL 9.0
已停止支持 · 记录构建 9.0.23 · 2015-10-08
此大版本已停止支持,相关记录用于查阅历史;没有更新的安全记录不代表仍可安全运行。
- 首次正式发布
- 2010-09-20
- 支持结束
- 2015-10-08
- 已收录发布版本
- 24
- 原始发布说明条目
- 850
手册与来源
PostgreSQL 9.0 本站手册 · 已加载 1024 页。
手册加载时间:2026-09-27T00:10:45.258078。
发布说明快照:2026-09-26。安全证据快照:2026-09-26。PDF 链接按本地文件是否存在提供,历史版本的语言与 HTML 手册可能不同。生命周期参见官方版本政策。
升级注意事项
跨大版本升级需要导出/恢复或 pg_upgrade 等迁移方式,应阅读沿途大版本的发布说明与目标版本手册。小版本更新也可能要求额外操作,请核对对应发布的迁移说明。官方升级政策。
9.0.0 的兼容性变化 · 从首发到 9.0.23 的变化
9.0.0 的原始迁移说明
对于希望从任何早期版本迁移数据的用户,需要使用 pg_dump 进行转储/恢复,或者使用 pg_upgrade。
版本 9.0 包含一些为支持新特性和代码质量改进而有选择地破坏向后兼容性的变更。特别是,大量使用 PL/pgSQL、时间点恢复(PITR)或温备的用户应测试其应用,因为这些领域有轻微的用户可见变化。请注意以下不兼容之处:
发布历史
每次发布的原始变更均独立保留。CVE 数量表示发布说明中的提及,可能包含后续纠正,不等于本次新修复漏洞数。
| 版本 | 日期/快照截止时间 | 全部变化 | BUG 修复 | 迁移条目 | 提及 CVE |
|---|---|---|---|---|---|
| 9.0.23 | 2015-10-08 | 47 | 25 | 0 | 1 |
| 9.0.22 | 2015-06-12 | 2 | 2 | 0 | 0 |
| 9.0.21 | 2015-06-04 | 3 | 1 | 0 | 0 |
| 9.0.20 | 2015-05-22 | 35 | 13 | 0 | 3 |
| 9.0.19 | 2015-02-05 | 52 | 22 | 0 | 6 |
| 9.0.18 | 2014-07-24 | 28 | 14 | 0 | 1 |
| 9.0.17 | 2014-03-20 | 10 | 1 | 0 | 0 |
| 9.0.16 | 2014-02-20 | 37 | 16 | 0 | 8 |
| 9.0.15 | 2013-12-05 | 16 | 10 | 0 | 0 |
| 9.0.14 | 2013-10-10 | 26 | 13 | 0 | 0 |
| 9.0.13 | 2013-04-04 | 21 | 15 | 0 | 2 |
| 9.0.12 | 2013-02-07 | 23 | 9 | 0 | 1 |
| 9.0.11 | 2012-12-06 | 32 | 20 | 0 | 0 |
| 9.0.10 | 2012-09-24 | 10 | 5 | 0 | 0 |
| 9.0.9 | 2012-08-17 | 23 | 11 | 0 | 2 |
| 9.0.8 | 2012-06-04 | 27 | 19 | 0 | 2 |
| 9.0.7 | 2012-02-27 | 35 | 18 | 0 | 3 |
| 9.0.6 | 2011-12-05 | 29 | 13 | 0 | 0 |
| 9.0.5 | 2011-09-26 | 64 | 39 | 0 | 1 |
| 9.0.4 | 2011-04-18 | 29 | 18 | 0 | 0 |
| 9.0.3 | 2011-01-31 | 12 | 7 | 0 | 1 |
| 9.0.2 | 2010-12-16 | 42 | 26 | 0 | 0 |
| 9.0.1 | 2010-10-04 | 10 | 5 | 0 | 1 |
| 9.0.0 | 2010-09-20 | 237 | 5 | 20 | 0 |
首次发布变化
9.0.0 的原始条目,包含功能和兼容性变化。类别用于浏览,不是上游原始分类。
匹配 237 / 237 条原始变更。
移除服务器参数 add_missing_from(多年来默认关闭) · 兼容性变化 · 迁移说明
移除服务器参数
add_missing_from(多年来默认关闭)(Tom Lane)原始发布条目 ·
9.0.0/migration/001archive_mode 现在只影响 archive_command;新设置 wal_level 影响预写式日志的内容 · 兼容性变化 · 迁移说明
archive_mode现在只影响archive_command;新设置wal_level影响预写式日志的内容(Heikki Linnakangas)原始发布条目 ·
9.0.0/migration/003log_temp_files 现在默认文件大小单位为千字节 · 兼容性变化 · 迁移说明
log_temp_files现在默认文件大小单位为千字节(Robert Haas)原始发布条目 ·
9.0.0/migration/004bytea 输出现在默认以十六进制格式显示 · 兼容性变化 · 迁移说明
bytea输出现在默认以十六进制格式显示(Peter Eisentraut)如有兼容需要,可使用服务器参数
bytea_output选择传统输出格式。原始发布条目 ·
9.0.0/migration/006数组输入现在只把普通 ASCII 空白字符视为可能可忽略;它永远不会忽略非 ASCII 字符,即使按某些区域设置它们是空白 · 兼容性变化 · 迁移说明
数组输入现在只把普通 ASCII 空白字符视为可能可忽略;它永远不会忽略非 ASCII 字符,即使按某些区域设置它们是空白(Tom Lane)
这避免了一些数组值可能因服务器区域设置不同而被不同解释的极端情况。
原始发布条目 ·
9.0.0/migration/007改进 SIMILAR TO 模式和 SQL 风格 substring() 模式的标准符合性 · 兼容性变化 · 迁移说明
改进
SIMILAR TO模式和 SQL 风格substring()模式的标准符合性(Tom Lane)这包括把
?和{...}视为模式元字符(它们此前是普通字面字符);这对应 SQL:2008 新增的特性。此外,^和$现在被视为普通字面字符;此前它们被视为元字符,就好像模式遵循 POSIX 而不是 SQL 规则。另外,在 SQL 标准substring()中,用括号嵌套不再干扰子串的捕获。另外,方括号表达式(字符类)的处理现在更符合标准。原始发布条目 ·
9.0.0/migration/008按 SQL 标准拒绝位串 3 参数 substring() 中的负长度值 · 兼容性变化 · 迁移说明
按 SQL 标准拒绝位串 3 参数
substring()中的负长度值(Tom Lane)原始发布条目 ·
9.0.0/migration/009让 date_trunc 在降低秒的小数部分精度时截断而不是舍入 · 兼容性变化 · 迁移说明
让
date_trunc在降低秒的小数部分精度时截断而不是舍入(Tom Lane)对于基于整数的日期/时间,代码一直如此。现在基于浮点的日期/时间行为类似。
原始发布条目 ·
9.0.0/migration/010当子表从多个不相关的父表继承同一列时,收紧 RENAME 期间列名一致性的强制 · 兼容性变化 · 迁移说明
当子表从多个不相关的父表继承同一列时,收紧
RENAME期间列名一致性的强制(KaiGai Kohei)原始发布条目 ·
9.0.0/migration/011不再在底层表列被重命名时自动重命名索引和索引列 · 兼容性变化 · 迁移说明
不再在底层表列被重命名时自动重命名索引和索引列(Tom Lane)
管理员仍可以手工重命名这类索引和列。此变更需要更新 JDBC 驱动(可能还有其他驱动),以便重命名后仍能正确识别唯一索引。
原始发布条目 ·
9.0.0/migration/012CREATE OR REPLACE FUNCTION 不再能更改函数参数的声明名称 · 兼容性变化 · 迁移说明
CREATE OR REPLACE FUNCTION不再能更改函数参数的声明名称(Pavel Stehule)为了避免在命名参数调用中产生歧义,不再允许更改现有函数声明中输入参数的别名(但仍可为此前未命名的参数指定名称)。现在必须
DROP并重建函数才能做到这一点。原始发布条目 ·
9.0.0/migration/013当变量名与查询中使用的列名冲突时,PL/pgSQL 现在抛出错误 · 兼容性变化 · 迁移说明
当变量名与查询中使用的列名冲突时,PL/pgSQL 现在抛出错误(Tom Lane)
此前的行为是把有歧义的名称优先绑定到 PL/pgSQL 变量而不是查询列,这常常导致令人惊讶的错误行为。抛出错误可以轻松检测歧义情况。虽然建议修改遇到此类错误的函数以消除冲突,但如有必要,可以通过配置参数
plpgsql.variable_conflict或逐函数选项#variable_conflict恢复旧行为。原始发布条目 ·
9.0.0/migration/014PL/pgSQL 不再允许与某些 SQL 保留字匹配的变量名 · 兼容性变化 · 迁移说明
PL/pgSQL 不再允许与某些 SQL 保留字匹配的变量名(Tom Lane)
这是使 PL/pgSQL 解析器与核心 SQL 解析器更紧密对齐的结果。如有必要,可以为变量名加双引号来避开此限制。
原始发布条目 ·
9.0.0/migration/015PL/pgSQL 现在要求组合结果的列不仅匹配基本类型,还要匹配预期的类型修饰符 · 兼容性变化 · 迁移说明
PL/pgSQL 现在要求组合结果的列不仅匹配基本类型,还要匹配预期的类型修饰符(Pavel Stehule、Tom Lane)
例如,如果结果类型的某列声明为
NUMERIC(30,2),则在该列中返回其他精度的NUMERIC不再被接受。以前的版本疏于检查类型修饰符,因此会允许实际上不符合声明限制的结果行。原始发布条目 ·
9.0.0/migration/016PL/pgSQL 现在更一致地处理选择到组合字段的情况 · 兼容性变化 · 迁移说明
PL/pgSQL 现在更一致地处理选择到组合字段的情况(Tom Lane)
此前,像
SELECT ... INTO这样的语句即使记录字段rec.fldFROM ...fld是组合类型,也被视为标量赋值。现在它被视为记录赋值,与INTO目标是组合类型的常规变量时相同。因此,要赋给字段各子字段的值应写成SELECT列表的单独列,而不是像以前版本那样写成ROW(...)构造。如果需要以同时适用于 9.0 和以前版本的方式做到这一点,可以写成类似
。rec.fld:= ROW(...) FROM ...原始发布条目 ·
9.0.0/migration/017废弃把 => 用作操作符名 · 兼容性变化 · 迁移说明
废弃把
=>用作操作符名(Robert Haas)为了支持 SQL 标准的命名函数参数记法,未来版本的 PostgreSQL 可能会完全拒绝此操作符名。目前它仍被允许,但定义此类操作符时会发出警告。
原始发布条目 ·
9.0.0/migration/019移除对没有可用 64 位整数数据类型的平台的支持 · 兼容性变化 · 迁移说明
移除对没有可用 64 位整数数据类型的平台的支持(Tom Lane)
据信所有仍受支持的平台都有可用的 64 位整数数据类型。
原始发布条目 ·
9.0.0/migration/020新增 pg_last_xlog_receive_location() 和 pg_last_xlog_replay_location(),可用于监控备库服务器的 WAL 活动 · 新功能
新增
pg_last_xlog_receive_location()和pg_last_xlog_replay_location(),可用于监控备库服务器的 WAL 活动(Simon Riggs、Fujii Masao、Heikki Linnakangas)原始发布条目 ·
9.0.0/changes/003允许通过 ALTER TABLESPACE ... SET/RESET 为顺序和随机页面代价估计(seq_page_cost/random_page_cost)设置逐表空间的值 · 新功能
允许通过
ALTER TABLESPACE ... SET/RESET为顺序和随机页面代价估计(seq_page_cost/random_page_cost)设置逐表空间的值(Robert Haas)原始发布条目 ·
9.0.0/changes/004改进连接查询中 EvalPlanQual 重新检查的性能和可靠性 · 性能改进
改进连接查询中 EvalPlanQual 重新检查的性能和可靠性(Tom Lane)
涉及连接的
UPDATE、DELETE和SELECT FOR UPDATE/SHARE查询在遇到刚更新的行时现在表现得好得多。原始发布条目 ·
9.0.0/changes/005允许 IS NOT NULL 限制使用索引 · 新功能
允许
IS NOT NULL限制使用索引(Tom Lane)这在包含大量空值的索引中查找
MAX()/MIN()值时特别有用。原始发布条目 ·
9.0.0/changes/009改进优化器关于何时使用物化节点、以及 DISTINCT 用排序还是哈希的选择 · 新功能
改进优化器关于何时使用物化节点、以及
DISTINCT用排序还是哈希的选择(Tom Lane)原始发布条目 ·
9.0.0/changes/010改进优化器对涉及 boolean <> 操作符的表达式的等价检测 · 新功能
改进优化器对涉及
boolean<>操作符的表达式的等价检测(Tom Lane)原始发布条目 ·
9.0.0/changes/011改进 GEQO 计划选择 · 新功能
改进 GEQO 计划选择(Tom Lane)
这避免了罕见的 “failed to make a valid plan” 错误,还应能改进规划速度。
原始发布条目 ·
9.0.0/changes/013改进优化器对大于/小于比较的估计 · 新功能
改进优化器对大于/小于比较的估计(Tom Lane)
在查找大于/小于比较的统计信息时,如果比较值位于第一个或最后一个直方图桶中,则使用索引(如果可用)获取该列当前的実際最小值或最大值。这大幅改进了对数据范围端点附近比较值的估计准确性,尤其是当范围因新数据的添加而不断变化时。
原始发布条目 ·
9.0.0/changes/016允许使用 ALTER TABLE 设置不同值数量统计信息 · 新功能
允许使用
ALTER TABLE设置不同值数量统计信息(Robert Haas)这允许用户覆盖某列不同值的估计数量或百分比。此统计信息通常由
ANALYZE计算,但估计可能不佳,尤其是在行数非常多的表上。原始发布条目 ·
9.0.0/changes/017把受信任的 SSL 根证书名称传递给客户端,使客户端能返回合适的客户端证书 · 新功能
把受信任的 SSL 根证书名称传递给客户端,使客户端能返回合适的客户端证书(Craig Ringer)
原始发布条目 ·
9.0.0/changes/021为 log_line_prefix 新增 SQLSTATE 选项(%e) · 新功能
为
log_line_prefix新增 SQLSTATE 选项(%e)(Guillaume Smet)这允许用户按错误码编号汇总错误和消息的统计信息。
原始发布条目 ·
9.0.0/changes/023以 UTF16 编码写入 Windows 事件日志 · 新功能
以 UTF16 编码写入 Windows 事件日志(Itagaki Takahiro)
现在 Windows 上的 PostgreSQL 日志消息有了真正的多语言支持。
原始发布条目 ·
9.0.0/changes/024新增 pg_stat_reset_shared('bgwriter'),用于重置后台写入进程的集簇级共享统计信息 · 新功能
新增
pg_stat_reset_shared('bgwriter'),用于重置后台写入进程的集簇级共享统计信息(Greg Smith)原始发布条目 ·
9.0.0/changes/025新增 pg_stat_reset_single_table_counters() 和 pg_stat_reset_single_function_counters(),允许重置单个表和函数的统计计数器 · 新功能
新增
pg_stat_reset_single_table_counters()和pg_stat_reset_single_function_counters(),允许重置单个表和函数的统计计数器(Magnus Hagander)原始发布条目 ·
9.0.0/changes/026新增服务器参数 enable_material,控制优化器对物化节点的使用 · 新功能
新增服务器参数
enable_material,控制优化器对物化节点的使用(Robert Haas)默认为开启。关闭时,优化器不会纯粹出于性能原因添加物化节点,但在正确性需要时仍会使用。
原始发布条目 ·
9.0.0/changes/029更改服务器参数 log_temp_files,使其默认文件大小单位为千字节 · 新功能
更改服务器参数
log_temp_files,使其默认文件大小单位为千字节(Robert Haas)此前如果未指定单位,此设置按字节解释。
原始发布条目 ·
9.0.0/changes/030在重新加载 postgresql.conf 时记录参数值的变更 · 新功能
在重新加载
postgresql.conf时记录参数值的变更(Peter Eisentraut)这使管理员和安全人员可以审计数据库设置的变更,而且对检查
postgresql.conf编辑的效果也非常方便。原始发布条目 ·
9.0.0/changes/031对自定义服务器参数正确强制超级用户权限 · 新功能
对自定义服务器参数正确强制超级用户权限(Tom Lane)
非超级用户不再能对服务器当前未知的参数发出
ALTER ROLE/DATABASE SET。这使服务器能够正确检查仅超级用户参数只由超级用户设置。此前,SET会被允许,然后在会话启动时被忽略,使仅超级用户自定义参数远不如应有的有用。原始发布条目 ·
9.0.0/changes/032在应用 LIMIT 之后执行 SELECT FOR UPDATE/SHARE 处理,使返回的行数总是可预测 · 新功能
在应用
LIMIT之后执行SELECT FOR UPDATE/SHARE处理,使返回的行数总是可预测(Tom Lane)此前,并发事务所做的更改可能导致
SELECT FOR UPDATE意外返回少于LIMIT指定的行数。FOR UPDATE与ORDER BY组合仍可能产生令人惊讶的结果,但可以通过把FOR UPDATE放在子查询中来纠正。原始发布条目 ·
9.0.0/changes/033允许混用传统与 SQL 标准的 LIMIT/OFFSET 语法 · 新功能
允许混用传统与 SQL 标准的
LIMIT/OFFSET语法(Tom Lane)原始发布条目 ·
9.0.0/changes/034让 SELECT INTO 和 CREATE TABLE AS 在其命令标签中向客户端返回行数 · 新功能
让
SELECT INTO和CREATE TABLE AS在其命令标签中向客户端返回行数(Boszormenyi Zoltan)这可以省去一整次到客户端的往返,允许在不需要额外
COUNT查询的情况下计算结果数和分页。原始发布条目 ·
9.0.0/changes/036通过推迟刷盘加速 CREATE DATABASE · 性能改进
通过推迟刷盘加速
CREATE DATABASE(Andres Freund、Greg Stark)原始发布条目 ·
9.0.0/changes/039让存储类型为 MAIN 的列值保留在主堆页上,除非行放不进一个页面 · 新功能
让存储类型为
MAIN的列值保留在主堆页上,除非行放不进一个页面(Kevin Grittner)此前
MAIN值会被强制移出到 TOAST 表,直到行大小小于页面大小的四分之一。原始发布条目 ·
9.0.0/changes/042为 ALTER TABLE DROP COLUMN 和 ALTER TABLE DROP CONSTRAINT 实现 IF EXISTS · 新功能
为
ALTER TABLE DROP COLUMN和ALTER TABLE DROP CONSTRAINT实现IF EXISTS(Andres Freund)原始发布条目 ·
9.0.0/changes/043允许重写表的 ALTER TABLE 命令跳过 WAL 日志记录 · 新功能
允许重写表的
ALTER TABLE命令跳过 WAL 日志记录(Itagaki Takahiro)这类操作要么产生表的新副本要么回滚,因此可以跳过 WAL 归档,除非运行在连续归档模式下。这减少了 I/O 开销并改进了性能。
原始发布条目 ·
9.0.0/changes/044修复由非表所有者执行 ALTER TABLE table ADD COLUMN col serial 时的失败 · BUG 修复
修复由非表所有者执行
ALTER TABLE时的失败(Tom Lane)tableADD COLUMNcolserial原始发布条目 ·
9.0.0/changes/045为 CREATE TABLE ... LIKE 命令新增复制 COMMENTS 和 STORAGE 设置的支持 · 新功能
为
CREATE TABLE ... LIKE命令新增复制COMMENTS和STORAGE设置的支持(Itagaki Takahiro)原始发布条目 ·
9.0.0/changes/046为 CREATE TABLE ... LIKE 命令新增复制所有属性的快捷方式 · 新功能
为
CREATE TABLE ... LIKE命令新增复制所有属性的快捷方式(Itagaki Takahiro)原始发布条目 ·
9.0.0/changes/047新增 SQL 标准的 CREATE TABLE ... OF type 命令 · 新功能
新增 SQL 标准的
CREATE TABLE ... OF命令(Peter Eisentraut)type这允许创建匹配现有组合类型的表。命令中还可以指定额外的约束和默认值。
原始发布条目 ·
9.0.0/changes/048新增排他约束 · 新功能
新增排他约束(Jeff Davis)
排他约束通过允许任意比较操作符(而不仅仅是相等)来泛化唯一约束。它们通过
CREATE TABLE CONSTRAINT ... EXCLUDE子句创建。排他约束最常见的用途是指定列项不得重叠,而不仅仅是不相等。这对时间段和其他范围以及数组都很有用。此特性增强了许多日历、时间管理和科学应用的数据完整性检查。原始发布条目 ·
9.0.0/changes/050改进唯一约束违规错误消息,报告导致失败的值 · 新功能
改进唯一约束违规错误消息,报告导致失败的值(Itagaki Takahiro)
例如,唯一约束违规现在可能报告
Key (x)=(2) already exists。原始发布条目 ·
9.0.0/changes/051新增使用新的 GRANT/REVOKE IN SCHEMA 子句在整个模式内批量修改权限的能力 · 新功能
新增使用新的
GRANT/REVOKE IN SCHEMA子句在整个模式内批量修改权限的能力(Petr Jelinek)这简化了对象权限的管理,并使为应用数据安全利用数据库角色更加容易。
原始发布条目 ·
9.0.0/changes/052新增 ALTER DEFAULT PRIVILEGES 命令,用于控制稍后创建的对象的权限 · 新功能
新增
ALTER DEFAULT PRIVILEGES命令,用于控制稍后创建的对象的权限(Petr Jelinek)这大幅简化了复杂数据库应用中对象权限的分配。可以为表、视图、序列和函数设置默认权限。默认值可以按模式分配,也可以数据库范围分配。
原始发布条目 ·
9.0.0/changes/053新增用 GRANT/REVOKE 控制大对象(BLOB)权限的能力 · 新功能
新增用
GRANT/REVOKE控制大对象(BLOB)权限的能力(KaiGai Kohei)此前任何数据库用户都可以读取或修改任何大对象。现在可以逐大对象授予和撤销读写权限,并且会跟踪大对象的所有权。
原始发布条目 ·
9.0.0/changes/054接受 COPY ... CSV FORCE QUOTE * · 新功能
接受
COPY ... CSV FORCE QUOTE *(Itagaki Takahiro)现在
*可用作FORCE QUOTE子句中“所有列”的简写。原始发布条目 ·
9.0.0/changes/058新增允许在括号内指定选项的 COPY 语法 · 新功能
新增允许在括号内指定选项的
COPY语法(Robert Haas、Emmanuel Cecchet)这为未来的
COPY选项提供了更大的灵活性。仍支持旧语法,但只用于既有选项。原始发布条目 ·
9.0.0/changes/059允许 EXPLAIN 以 XML、JSON 或 YAML 格式输出 · 新功能
允许
EXPLAIN以 XML、JSON 或 YAML 格式输出(Robert Haas、Greg Sabino Mullane)新的输出格式易于机器读取,支持开发分析
EXPLAIN输出的新工具。原始发布条目 ·
9.0.0/changes/060新增 BUFFERS 选项,用于在 EXPLAIN ANALYZE 期间报告查询缓冲区使用情况 · 新功能
新增
BUFFERS选项,用于在EXPLAIN ANALYZE期间报告查询缓冲区使用情况(Itagaki Takahiro)这允许对单个查询做更好的分析。缓冲区使用情况不再报告在 log_statement_stats 及相关设置的输出中。
原始发布条目 ·
9.0.0/changes/061新增允许在括号内指定选项的 EXPLAIN 语法 · 新功能
新增允许在括号内指定选项的
EXPLAIN语法(Robert Haas)这为未来的
EXPLAIN选项提供了更大的灵活性。仍支持旧语法,但只用于既有选项。原始发布条目 ·
9.0.0/changes/063更改 VACUUM FULL,使其重写整个表并重建其索引,而不是移动单个行来压缩空间 · 新功能
更改
VACUUM FULL,使其重写整个表并重建其索引,而不是移动单个行来压缩空间(Itagaki Takahiro、Tom Lane)以前的方法通常更慢并导致索引膨胀。注意新方法在
VACUUM FULL期间会暂时使用更多磁盘空间;可能多达表及其索引通常占用空间的两倍。原始发布条目 ·
9.0.0/changes/064新增允许在括号内指定选项的 VACUUM 语法 · 新功能
新增允许在括号内指定选项的
VACUUM语法(Itagaki Takahiro)这为未来的
VACUUM选项提供了更大的灵活性。仍支持旧语法,但只用于既有选项。原始发布条目 ·
9.0.0/changes/065允许在 CREATE INDEX 中省略索引名以自动命名索引 · 新功能
允许在
CREATE INDEX中省略索引名以自动命名索引(Tom Lane)原始发布条目 ·
9.0.0/changes/066默认情况下,多列索引现在以所有列命名;索引表达式列现在基于其表达式命名 · 新功能
默认情况下,多列索引现在以所有列命名;索引表达式列现在基于其表达式命名(Tom Lane)
原始发布条目 ·
9.0.0/changes/067重建共享系统目录的索引现在完全是事务性且崩溃安全的 · 新功能
重建共享系统目录的索引现在完全是事务性且崩溃安全的(Tom Lane)
此前,重建共享索引只允许在独立模式下进行,而且操作期间崩溃可能使索引处于比之前更糟的状态。
原始发布条目 ·
9.0.0/changes/068为 GiST 新增 point_ops 操作符类 · 新功能
为 GiST 新增
point_ops操作符类(Teodor Sigaev)此特性允许对
point列建立 GiST 索引。该索引可用于多种类型的查询,例如point<@polygon(点在多边形内)。这应能使许多 PostGIS 查询更快。原始发布条目 ·
9.0.0/changes/069在 GIN 索引创建中使用红黑二叉树 · 新功能
在 GIN 索引创建中使用红黑二叉树(Teodor Sigaev)
红黑树是自平衡的。这避免了输入以非随机顺序出现时的变慢。
原始发布条目 ·
9.0.0/changes/070允许 bytea 值以十六进制记法书写 · 新功能
允许
bytea值以十六进制记法书写(Peter Eisentraut)服务器参数
bytea_output控制bytea输出使用十六进制还是传统格式。Libpq 的PQescapeByteaConn()函数在连接 PostgreSQL 9.0 或更新服务器时自动使用十六进制格式。但 9.0 之前的 libpq 版本无法正确处理来自更新服务器的十六进制格式。新的十六进制格式与更多使用二进制数据的应用直接兼容,使它们无需额外转换即可存储和获取。它的读写也明显快于传统格式。
原始发布条目 ·
9.0.0/changes/071允许把服务器参数 extra_float_digits 增大到 3 · 新功能
允许把服务器参数 extra_float_digits 增大到
3(Tom Lane)此前
extra_float_digits的最大设置为2。有些情况需要 3 位数字才能精确转储和恢复float4值。pg_dump 现在在从允许它的服务器转储时将使用设置 3。原始发布条目 ·
9.0.0/changes/072允许函数调用提供参数名并与函数定义中的命名参数匹配 · 新功能
允许函数调用提供参数名并与函数定义中的命名参数匹配(Pavel Stehule)
例如,如果函数定义为接受参数
a和b,则可以用func(a := 7, b := 12)或func(b := 12, a := 7)调用它。原始发布条目 ·
9.0.0/changes/078修复 to_char(),使其在 Windows 上以正确的编码输出本地化的数字和货币字符串 · BUG 修复
修复
to_char(),使其在 Windows 上以正确的编码输出本地化的数字和货币字符串(Hiroshi Inoue、Itagaki Takahiro、Bruce Momjian)原始发布条目 ·
9.0.0/changes/082新增聚合函数 string_agg(),用于把值组合成单个字符串 · 新功能
新增聚合函数
string_agg(),用于把值组合成单个字符串(Pavel Stehule)原始发布条目 ·
9.0.0/changes/086如果聚合转换函数未标记为 STRICT,以 DISTINCT 调用的聚合函数现在会被传递 NULL 值 · 新功能
如果聚合转换函数未标记为
STRICT,以DISTINCT调用的聚合函数现在会被传递 NULL 值(Andrew Gierth)例如,
agg(DISTINCT x)可能会把 NULL 的x值传递给agg()。这与非DISTINCT情况下的行为更一致。原始发布条目 ·
9.0.0/changes/087新增 pg_table_size() 和 pg_indexes_size(),为 pg_relation_size() 函数提供更用户友好的接口 · 新功能
新增
pg_table_size()和pg_indexes_size(),为pg_relation_size()函数提供更用户友好的接口(Bernd Helmle)原始发布条目 ·
9.0.0/changes/090新增用于序列权限检查的 has_sequence_privilege() · 新功能
新增用于序列权限检查的
has_sequence_privilege()(Abhijit Menon-Sen)原始发布条目 ·
9.0.0/changes/091更新 information_schema 视图以符合 SQL:2008 · 新功能
更新 information_schema 视图以符合 SQL:2008(Peter Eisentraut)
原始发布条目 ·
9.0.0/changes/092让 information_schema 视图正确显示 char 和 varchar 列的最大八位字节长度 · 新功能
让
information_schema视图正确显示char和varchar列的最大八位字节长度(Peter Eisentraut)原始发布条目 ·
9.0.0/changes/093加速 information_schema 权限视图 · 性能改进
加速
information_schema权限视图(Joachim Wieland)原始发布条目 ·
9.0.0/changes/094为 CREATE TRIGGER 新增 WHEN 子句,允许控制触发器是否触发 · 新功能
为
CREATE TRIGGER新增WHEN子句,允许控制触发器是否触发(Itagaki Takahiro)虽然同类检查总是可以在触发器内部执行,但在外部
WHEN子句中执行可能有性能收益。原始发布条目 ·
9.0.0/changes/097为 CREATE LANGUAGE 新增 OR REPLACE 子句 · 新功能
为
CREATE LANGUAGE新增OR REPLACE子句(Tom Lane)这有助于在语言尚不存在时选择性地安装它,而且在 PL/pgSQL 默认安装的现在特别有用。
原始发布条目 ·
9.0.0/changes/098默认安装 PL/pgSQL · 新功能
默认安装 PL/pgSQL(Bruce Momjian)
如果管理员对其可用性有安全或性能方面的顾虑,仍可以把它从特定数据库中移除。
原始发布条目 ·
9.0.0/changes/099改进对 PL/pgSQL 变量名与函数内查询所用标识符冲突情况的处理 · 新功能
改进对 PL/pgSQL 变量名与函数内查询所用标识符冲突情况的处理(Tom Lane)
现在的默认行为是在存在冲突时抛出错误,以避免令人惊讶的行为。可以通过配置参数
plpgsql.variable_conflict或逐函数选项#variable_conflict修改它,允许使用变量或查询提供的列。无论如何,PL/pgSQL 不再尝试在语法上无效的位置替换变量。原始发布条目 ·
9.0.0/changes/100让 PL/pgSQL 使用主词法分析器而不是自己的版本 · 新功能
让 PL/pgSQL 使用主词法分析器而不是自己的版本(Tom Lane)
这确保了对主系统行为(如字符串转义等细节)的准确跟踪。一些用户可见的细节(例如 PL/pgSQL 中被视为保留的关键字集合)因此而改变。
原始发布条目 ·
9.0.0/changes/101避免对无效的记录引用抛出不必要的错误 · 新功能
避免对无效的记录引用抛出不必要的错误(Tom Lane)
现在只有当引用实际被获取时才抛出错误,而不是在到达外层表达式时就抛出。例如,许多人曾在触发器中尝试这样做:
if TG_OP = 'INSERT' and NEW.col1 = ... then
这现在将按预期工作。
原始发布条目 ·
9.0.0/changes/102允许在 PL/pgSQL 函数内为输入参数赋值 · 新功能
允许在 PL/pgSQL 函数内为输入参数赋值(Steve Prentice)
此前输入参数被视为声明为
CONST,因此函数代码不能更改它们的值。此限制已被移除,以简化从没有等效限制的其他 DBMS 移植函数。输入参数现在就像初始化为传入值的局部变量。原始发布条目 ·
9.0.0/changes/104为 PL/pgSQL 的 MOVE FORWARD/BACKWARD 新增 count 和 ALL 选项 · 新功能
为 PL/pgSQL 的
MOVE FORWARD/BACKWARD新增count和ALL选项(Pavel Stehule)原始发布条目 ·
9.0.0/changes/106允许 PL/pgSQL 的 WHERE CURRENT OF 使用游标变量 · 新功能
允许 PL/pgSQL 的
WHERE CURRENT OF使用游标变量(Tom Lane)原始发布条目 ·
9.0.0/changes/107允许 PL/pgSQL 的 OPEN cursor FOR EXECUTE 使用参数 · 新功能
允许 PL/pgSQL 的
OPEN使用参数(Pavel Stehule、Itagaki Takahiro)cursorFOR EXECUTE这通过新的
USING子句实现。原始发布条目 ·
9.0.0/changes/108新增 PL/Perl 函数:quote_literal()、quote_nullable()、quote_ident()、encode_bytea()、decode_bytea()、looks_like_number()、encode_array_literal()、encode_array_constructor() · 新功能
新增 PL/Perl 函数:
quote_literal()、quote_nullable()、quote_ident()、encode_bytea()、decode_bytea()、looks_like_number()、encode_array_literal()、encode_array_constructor()(Tim Bunce)原始发布条目 ·
9.0.0/changes/109新增服务器参数 plperl.on_init,用于指定 PL/Perl 初始化函数 · 新功能
新增服务器参数
plperl.on_init,用于指定 PL/Perl 初始化函数(Tim Bunce)还提供
plperl.on_plperl_init和plperl.on_plperlu_init,分别用于可信或不可信语言的特定初始化。原始发布条目 ·
9.0.0/changes/110允许 PL/Perl 中使用 use strict · 新功能
允许 PL/Perl 中使用
use strict(Tim Bunce)Perl
strict检查还可以通过新的服务器参数plperl.use_strict全局启用。原始发布条目 ·
9.0.0/changes/112允许 PL/Perl 中使用 require · 新功能
允许 PL/Perl 中使用
require(Tim Bunce)它基本上是测试模块是否已加载,如果没有则生成错误。它不允许加载管理员未通过初始化参数预加载的模块。
原始发布条目 ·
9.0.0/changes/113如果使用 Perl 5.10 或更高版本,允许 PL/Perl 中使用 use feature · 新功能
如果使用 Perl 5.10 或更高版本,允许 PL/Perl 中使用
use feature(Tim Bunce)原始发布条目 ·
9.0.0/changes/114在 PL/Python 中新增 Unicode 支持 · 新功能
在 PL/Python 中新增 Unicode 支持(Peter Eisentraut)
字符串会根据需要自动与服务器编码相互转换。
原始发布条目 ·
9.0.0/changes/116改进 PL/Python 的 bytea 支持 · 新功能
改进 PL/Python 的
bytea支持(Caleb Welton)传入 PL/Python 的
bytea值现在表示为二进制而不是 PostgreSQL 的bytea文本格式。包含空字节的bytea值现在也能从 PL/Python 正确输出。布尔、整数和浮点值的传递也得到了改进。原始发布条目 ·
9.0.0/changes/117为 PL/Python 新增 Python 3 支持 · 新功能
为 PL/Python 新增 Python 3 支持(Peter Eisentraut)
新的服务器端语言名为
plpython3u。它不能与 Python 2 服务器端语言在同一会话中使用。原始发布条目 ·
9.0.0/changes/120让 psql 忽略其读取的脚本文件中前导的 UTF-8 编码 Unicode 字节顺序标记 · 新功能
让 psql 忽略其读取的脚本文件中前导的 UTF-8 编码 Unicode 字节顺序标记(Itagaki Takahiro)
这在客户端编码为 UTF-8 时启用。它改进了与某些(主要在 Windows 上)坚持插入此类标记的编辑器的兼容性。
原始发布条目 ·
9.0.0/changes/124修复 psql --file -,使其正确遵循 --single-transaction · BUG 修复
修复
psql --file -,使其正确遵循--single-transaction(Bruce Momjian)原始发布条目 ·
9.0.0/changes/125避免两个 psql 会话并发运行时 psql 的命令行历史相互覆盖 · 新功能
避免两个 psql 会话并发运行时 psql 的命令行历史相互覆盖(Tom Lane)
原始发布条目 ·
9.0.0/changes/126只要启用了 \timing 就显示其输出,无论是否处于“安静”模式 · 新功能
只要启用了
\timing就显示其输出,无论是否处于“安静”模式(Peter Eisentraut)原始发布条目 ·
9.0.0/changes/128改进 psql 中换行列的显示 · 新功能
改进 psql 中换行列的显示(Roger Leigh)
此行为现在是默认。以前的格式可以通过
\pset linestyle old-ascii使用。原始发布条目 ·
9.0.0/changes/129允许 psql 通过 \pset linestyle unicode 使用精致的 Unicode 画线字符 · 新功能
允许 psql 通过
\pset linestyle unicode使用精致的 Unicode 画线字符(Roger Leigh)原始发布条目 ·
9.0.0/changes/130让 \d 显示继承自指定父表的子表 · 新功能
让
\d显示继承自指定父表的子表(Damien Clochard)\d只显示子表数量,而\d+显示所有子表的名称。原始发布条目 ·
9.0.0/changes/131在 \d index_name 中显示索引列的定义 · 新功能
在
\d index_name中显示索引列的定义(Khee Chin)该定义对表达式索引很有用。
原始发布条目 ·
9.0.0/changes/132只在 \d+ 而不是 \d 中显示视图的定义查询 · 新功能
只在
\d+而不是\d中显示视图的定义查询(Peter Eisentraut)始终包含查询被认为过于冗长。
原始发布条目 ·
9.0.0/changes/133修复 pg_dump,使其在启用 standard_conforming_strings 时正确转储大对象 · BUG 修复
修复 pg_dump,使其在启用
standard_conforming_strings时正确转储大对象(Tom Lane)以前的编码在转储到归档文件再由 pg_restore 生成脚本输出时可能失败。
原始发布条目 ·
9.0.0/changes/135pg_restore 现在在生成脚本输出时以十六进制格式发出大对象数据 · 新功能
pg_restore 现在在生成脚本输出时以十六进制格式发出大对象数据(Tom Lane)
如果脚本随后被加载到 9.0 之前的服务器,这可能导致兼容性问题。解决办法是改为直接恢复到服务器。
原始发布条目 ·
9.0.0/changes/136允许 pg_dump 转储附加在组合类型列上的注释(Taro Minowa (Higepon)) · 新功能
允许 pg_dump 转储附加在组合类型列上的注释(Taro Minowa (Higepon))
原始发布条目 ·
9.0.0/changes/137pg_restore 现在会在开关和可选文件名之后还有命令行参数时抱怨 · 新功能
pg_restore 现在会在开关和可选文件名之后还有命令行参数时抱怨(Tom Lane)
此前它会静默忽略任何这类参数。
原始发布条目 ·
9.0.0/changes/139允许在系统重启期间安全地用 pg_ctl 启动 postmaster · 新功能
允许在系统重启期间安全地用 pg_ctl 启动 postmaster(Tom Lane)
此前,pg_ctl 的父进程可能基于过期的 postmaster 锁文件被误识别为运行中的 postmaster,导致数据库瞬时启动失败。
原始发布条目 ·
9.0.0/changes/140赋予 pg_ctl 初始化数据库的能力(通过调用 initdb) · 新功能
赋予 pg_ctl 初始化数据库的能力(通过调用 initdb)(Zdenek Kotala)
原始发布条目 ·
9.0.0/changes/141新增 libpq 函数 PQconnectdbParams() 和 PQconnectStartParams() · 新功能
新增 libpq 函数
PQconnectdbParams()和PQconnectStartParams()(Guillaume Lelarge)这些函数类似于
PQconnectdb()和PQconnectStart(),只是它们接受以空结尾的连接选项数组,而不是要求在单个字符串中提供所有选项。原始发布条目 ·
9.0.0/changes/142新增 libpq 函数 PQescapeLiteral() 和 PQescapeIdentifier() · 新功能
新增 libpq 函数
PQescapeLiteral()和PQescapeIdentifier()(Robert Haas)这些函数返回适当加引号和转义的 SQL 字符串字面量和标识符。调用者不需要像
PQescapeStringConn()那样预分配字符串结果。原始发布条目 ·
9.0.0/changes/143新增对每用户服务文件(.pg_service.conf)的支持,它在全站服务文件之前检查 · 新功能
新增对每用户服务文件(
.pg_service.conf)的支持,它在全站服务文件之前检查(Peter Eisentraut)原始发布条目 ·
9.0.0/changes/144在 libpq 中新增 TCP keepalive 设置 · 新功能
在 libpq 中新增 TCP keepalive 设置(Tollef Fog Heen、Fujii Masao、Robert Haas)
TCP 连接的服务器端此前已支持 keepalive 设置。
原始发布条目 ·
9.0.0/changes/146在提供替代方法的平台上,避免 libpq 中为阻塞和取消阻塞 SIGPIPE 而进行的额外系统调用 · 新功能
在提供替代方法的平台上,避免 libpq 中为阻塞和取消阻塞
SIGPIPE而进行的额外系统调用(Jeremy Kerr)原始发布条目 ·
9.0.0/changes/147加载客户端证书文件中给出的所有 SSL 证书 · 新功能
加载客户端证书文件中给出的所有 SSL 证书(Tom Lane)
这改进了对间接签名 SSL 证书的支持。
原始发布条目 ·
9.0.0/changes/149为 ecpg 新增 DESCRIBE [ OUTPUT ] 语句 · 新功能
为 ecpg 新增
DESCRIBE[OUTPUT] 语句(Boszormenyi Zoltan)原始发布条目 ·
9.0.0/changes/151新增返回当前事务状态的 ECPGtransactionStatus 函数 · 新功能
新增返回当前事务状态的 ECPGtransactionStatus 函数(Bernd Helmle)
原始发布条目 ·
9.0.0/changes/152在 ecpg Informix 兼容模式中新增 string 数据类型 · 新功能
在 ecpg Informix 兼容模式中新增
string数据类型(Boszormenyi Zoltan)原始发布条目 ·
9.0.0/changes/153允许 ecpg 无限制地使用 new 和 old 变量名 · 新功能
允许 ecpg 无限制地使用
new和old变量名(Michael Meskes)原始发布条目 ·
9.0.0/changes/154让 ecpg_dynamic_type() 对非 SQL3 数据类型返回零 · 新功能
让
ecpg_dynamic_type()对非 SQL3 数据类型返回零(Michael Meskes)此前它返回数据类型 OID 的负值。但这可能与有效的类型 OID 混淆。
原始发布条目 ·
9.0.0/changes/156在已有 64 位 long 的平台上支持 long long 类型 · 新功能
在已有 64 位
long的平台上支持long long类型(Michael Meskes)原始发布条目 ·
9.0.0/changes/157在 ecpg 的本机模式中新增范围外游标支持 · 新功能
在 ecpg 的本机模式中新增范围外游标支持(Boszormenyi Zoltan)
这允许
DECLARE使用OPEN被调用时不在作用域内的变量。此机制在 ecpg 的 Informix 兼容模式中早已存在。原始发布条目 ·
9.0.0/changes/158允许 ecpg 在 FETCH 和 MOVE 中使用噪声词 FROM 和 IN · 新功能
允许 ecpg 在
FETCH和MOVE中使用噪声词FROM和IN(Boszormenyi Zoltan)原始发布条目 ·
9.0.0/changes/160新增对控制 Linux 内存不足终止器的支持 · 新功能
新增对控制 Linux 内存不足终止器的支持(Alex Hunsaker、Tom Lane)
既然
/proc/self/oom_adj允许禁用 Linux 内存不足(OOM)终止器,建议对 postmaster 禁用 OOM 终止。之后可能希望对 postmaster 的子进程重新启用 OOM 终止。新的编译期选项LINUX_OOM_ADJ允许对子进程重新激活终止器。原始发布条目 ·
9.0.0/changes/162为 PGXS Makefile 新增数据和文档安装位置控制 · 新功能
为 PGXS Makefile 新增数据和文档安装位置控制(Mark Cave-Ayland)
原始发布条目 ·
9.0.0/changes/164新增 Makefile 规则,把 PostgreSQL 文档构建为单个 HTML 文件或单个纯文本文件 · 新功能
新增 Makefile 规则,把 PostgreSQL 文档构建为单个 HTML 文件或单个纯文本文件(Peter Eisentraut、Bruce Momjian)
原始发布条目 ·
9.0.0/changes/165支持在 64 位 Windows 上编译并以 64 位模式运行 · 新功能
支持在 64 位 Windows 上编译并以 64 位模式运行(Tsutomu Yamada、Magnus Hagander)
这允许在 Windows 上使用大型共享内存。
原始发布条目 ·
9.0.0/changes/166支持使用 Visual Studio 2008 构建服务器 · 新功能
支持使用 Visual Studio 2008 构建服务器(Magnus Hagander)
原始发布条目 ·
9.0.0/changes/167以子目录树而非发行版压缩包内的 tar 归档文件的形式分发预构建文档 · 新功能
以子目录树而非发行版压缩包内的 tar 归档文件的形式分发预构建文档(Peter Eisentraut)
例如,预构建的 HTML 文档现在位于
doc/src/sgml/html/;手册页的打包方式类似。原始发布条目 ·
9.0.0/changes/168用户定义的约束触发器现在在 pg_constraint 和 pg_trigger 中都有条目 · 新功能
用户定义的约束触发器现在在
pg_constraint和pg_trigger中都有条目(Tom Lane)由于此变更,
pg_constraint.pgconstrname现在是冗余的,已被移除。原始发布条目 ·
9.0.0/changes/171新增系统目录列 pg_constraint.conindid 和 pg_trigger.tgconstrindid,以更好地记录约束强制执行中索引的使用 · 新功能
新增系统目录列
pg_constraint.conindid和pg_trigger.tgconstrindid,以更好地记录约束强制执行中索引的使用(Tom Lane)原始发布条目 ·
9.0.0/changes/172允许使用单个操作系统信号向后台进程传达多个条件 · 新功能
允许使用单个操作系统信号向后台进程传达多个条件(Fujii Masao)
这允许新增特性而不受平台特定的信号条件数量限制。
原始发布条目 ·
9.0.0/changes/173改进源代码测试覆盖率,包括 contrib、PL/Python 和 PL/Perl · 新功能
改进源代码测试覆盖率,包括
contrib、PL/Python 和 PL/Perl(Peter Eisentraut、Andrew Dunstan)原始发布条目 ·
9.0.0/changes/174移除系统表引导时对平面文件的使用 · 新功能
移除系统表引导时对平面文件的使用(Tom Lane、Alvaro Herrera)
这改进了使用大量角色或数据库时的性能,并消除了一些可能的失败条件。
原始发布条目 ·
9.0.0/changes/175自动为“引导”目录生成 pg_attribute 的初始内容 · 新功能
自动为“引导”目录生成
pg_attribute的初始内容(John Naylor)这大幅简化了对这些目录的更改。
原始发布条目 ·
9.0.0/changes/176把 INSERT/UPDATE/DELETE 操作的处理从 execMain.c 中拆分出来 · 新功能
把
INSERT/UPDATE/DELETE操作的处理从execMain.c中拆分出来(Marko Tiikkaja)更新现在在单独的 ModifyTable 节点中执行。此变更是未来改进的必要基础设施。
原始发布条目 ·
9.0.0/changes/177缩短某些文件名的长度,使发行版压缩包中所有文件路径都少于 100 个字符 · 新功能
缩短某些文件名的长度,使发行版压缩包中所有文件路径都少于 100 个字符(Tom Lane)
某些解压程序对更长的文件路径有问题。
原始发布条目 ·
9.0.0/changes/179新增 ERRCODE_INVALID_PASSWORD SQLSTATE 错误码 · 新功能
新增
ERRCODE_INVALID_PASSWORDSQLSTATE错误码(Bruce Momjian)原始发布条目 ·
9.0.0/changes/180经作者许可,移除少数剩余的个人源代码版权声明 · 新功能
经作者许可,移除少数剩余的个人源代码版权声明(Bruce Momjian)
个人版权声明无关紧要,但社区偶尔不得不回答关于它们的问题。
原始发布条目 ·
9.0.0/changes/181重构 HTML 文档 Makefile 规则,使其依赖检查正确工作,避免不必要的重建 · 新功能
重构 HTML 文档
Makefile规则,使其依赖检查正确工作,避免不必要的重建(Peter Eisentraut)原始发布条目 ·
9.0.0/changes/183使用 DocBook XSL 样式表而非 Docbook2X 构建手册页 · 新功能
使用 DocBook XSL 样式表而非 Docbook2X 构建手册页(Peter Eisentraut)
这改变了构建手册页所需的工具集。
原始发布条目 ·
9.0.0/changes/184要求 Autoconf 2.63 来构建 configure · 新功能
要求 Autoconf 2.63 来构建 configure(Peter Eisentraut)
原始发布条目 ·
9.0.0/changes/187要求 Flex 2.5.31 或更高版本以从 CVS 检出构建 · 新功能
要求 Flex 2.5.31 或更高版本以从 CVS 检出构建(Tom Lane)
原始发布条目 ·
9.0.0/changes/188要求 Perl 5.8 或更高版本以从 CVS 检出构建 · 新功能
要求 Perl 5.8 或更高版本以从 CVS 检出构建(John Naylor、Andrew Dunstan)
原始发布条目 ·
9.0.0/changes/189为 Bonjour 使用更现代的 API · 新功能
为 Bonjour 使用更现代的 API(Tom Lane)
Bonjour 支持现在要求 OS X 10.3 或更高版本。旧 API 已被 Apple 弃用。
原始发布条目 ·
9.0.0/changes/190重构 LDFLAGS 的使用,使其在平台间更一致 · 新功能
重构
LDFLAGS的使用,使其在平台间更一致(Tom Lane)LDFLAGS现在用于链接可执行文件和共享库,并且在链接可执行文件时附加LDFLAGS_EX,链接共享库时附加LDFLAGS_SL。原始发布条目 ·
9.0.0/changes/194使后端头文件可以安全地包含在 C++ 中 · 新功能
使后端头文件可以安全地包含在 C++ 中(Kurt Harriman、Peter Eisentraut)
这些变更移除了此前使 C++ 难以用于后端代码的关键字冲突。但是,在为后端函数使用 C++ 时仍有其他复杂之处。在适当的地方仍需要
extern "C" { },内存管理和错误处理仍是有问题的。原始发布条目 ·
9.0.0/changes/195新增 AggCheckCallContext(),用于检测 C 函数是否被作为聚合调用 · 新功能
新增
AggCheckCallContext(),用于检测 C 函数是否被作为聚合调用(Hitoshi Harada)原始发布条目 ·
9.0.0/changes/196更改 SearchSysCache() 及相关函数的调用约定,以避免硬编码缓存键的最大数量 · 新功能
更改
SearchSysCache()及相关函数的调用约定,以避免硬编码缓存键的最大数量(Robert Haas)现有调用目前仍可工作,但如果不转换为新风格,预计会在 9.1 或更高版本中中断。
原始发布条目 ·
9.0.0/changes/197要求对 fastgetattr() 和 heap_getattr() 后端宏的调用提供非 NULL 的第四个参数 · 新功能
要求对
fastgetattr()和heap_getattr()后端宏的调用提供非 NULL 的第四个参数(Robert Haas)原始发布条目 ·
9.0.0/changes/198自定义 typanalyze 函数不应再依赖 VacAttrStats.attr 来确定将要传递给它们的数据类型 · 新功能
自定义 typanalyze 函数不应再依赖
VacAttrStats.attr来确定将要传递给它们的数据类型(Tom Lane)此变更是为了允许对存储类型与底层列数据类型不同的索引列收集统计信息。有新的字段告知实际被分析的数据类型。
原始发布条目 ·
9.0.0/changes/199新增用于处理 ColumnRef 和 ParamRef 节点的解析器钩子 · 新功能
新增用于处理 ColumnRef 和 ParamRef 节点的解析器钩子(Tom Lane)
原始发布条目 ·
9.0.0/changes/200新增 ProcessUtility 钩子,使可加载模块可以控制工具命令 · 新功能
新增 ProcessUtility 钩子,使可加载模块可以控制工具命令(Itagaki Takahiro)
原始发布条目 ·
9.0.0/changes/201新增 contrib/pg_upgrade 以支持就地升级 · 新功能
新增
contrib/pg_upgrade以支持就地升级(Bruce Momjian)这避免了升级到 PostgreSQL 新大版本时转储/重载数据库的要求,从而把停机时间降低了数量级。它支持从 PostgreSQL 8.3 和 8.4 升级到 9.0。
原始发布条目 ·
9.0.0/changes/202新增在二进制升级期间保留关系 relfilenode 值的支持 · 新功能
新增在二进制升级期间保留关系
relfilenode值的支持(Bruce Momjian)原始发布条目 ·
9.0.0/changes/203新增在二进制升级期间保留 pg_type 和 pg_enum OID 的支持 · 新功能
新增在二进制升级期间保留
pg_type和pg_enumOID 的支持(Bruce Momjian)原始发布条目 ·
9.0.0/changes/204把表空间内的数据文件移到 PostgreSQL 版本特定的子目录中 · 新功能
把表空间内的数据文件移到 PostgreSQL 版本特定的子目录中(Bruce Momjian)
这简化了二进制升级。
原始发布条目 ·
9.0.0/changes/205为 contrib/pgbench 新增多线程选项(-j) · 新功能
为
contrib/pgbench新增多线程选项(-j)(Itagaki Takahiro)这允许 pgbench 使用多个 CPU,降低 pgbench 本身成为测试瓶颈的风险。
原始发布条目 ·
9.0.0/changes/206为 contrib/pgbench 新增 \shell 和 \setshell 元命令 · 新功能
为
contrib/pgbench新增\shell和\setshell元命令(Michael Paquier)原始发布条目 ·
9.0.0/changes/207contrib/dict_xsyn 的新特性 · 新功能
contrib/dict_xsyn的新特性(Sergey Karpov)新选项为
matchorig、matchsynonyms和keepsynonyms。原始发布条目 ·
9.0.0/changes/208新增全文词典 contrib/unaccent · 新功能
新增全文词典
contrib/unaccent(Teodor Sigaev)这个过滤词典移除字母上的重音符号,使跨多种语言的全文搜索容易得多。
原始发布条目 ·
9.0.0/changes/209为 contrib/dblink 新增 dblink_get_notify() · 新功能
为
contrib/dblink新增dblink_get_notify()(Marcus Kempe)这允许 dblink 中的异步通知。
原始发布条目 ·
9.0.0/changes/210改进 contrib/dblink 对已删除列的处理 · 新功能
改进
contrib/dblink对已删除列的处理(Tom Lane)这影响
dblink_build_sql_insert()及相关函数。这些函数现在按逻辑而非物理列编号对列计数。原始发布条目 ·
9.0.0/changes/211大幅提高 contrib/hstore 的数据长度限制,并新增 B-tree 和哈希支持,使 hstore 列上可以进行 GROUP BY 和 DISTINCT 操作 · 新功能
大幅提高
contrib/hstore的数据长度限制,并新增 B-tree 和哈希支持,使hstore列上可以进行GROUP BY和DISTINCT操作(Andrew Gierth)还新增了函数和操作符。这些改进使
hstore成为嵌入 PostgreSQL 的全功能键值存储。原始发布条目 ·
9.0.0/changes/212新增 contrib/passwordcheck,用于支持站点特定的口令强度策略 · 新功能
新增
contrib/passwordcheck,用于支持站点特定的口令强度策略(Laurenz Albe)应修改此模块的源代码以实现站点特定的口令策略。
原始发布条目 ·
9.0.0/changes/213新增 contrib/pg_archivecleanup 工具 · 新功能
新增
contrib/pg_archivecleanup工具(Simon Riggs)它设计用于
archive_cleanup_command服务器参数,用于删除不再需要的归档文件。原始发布条目 ·
9.0.0/changes/214在 contrib/auto_explain 输出中添加查询文本 · 新功能
在
contrib/auto_explain输出中添加查询文本(Andrew Dunstan)原始发布条目 ·
9.0.0/changes/215为 contrib/pg_stat_statements 新增缓冲区访问计数器 · 新功能
为
contrib/pg_stat_statements新增缓冲区访问计数器(Itagaki Takahiro)原始发布条目 ·
9.0.0/changes/216更新 contrib/start-scripts/linux,使其使用 /proc/self/oom_adj 禁用 Linux 内存不足(OOM)终止器 · 新功能
更新
contrib/start-scripts/linux,使其使用/proc/self/oom_adj禁用 Linux 内存不足(OOM)终止器(Alex Hunsaker、Tom Lane)原始发布条目 ·
9.0.0/changes/217
安全证据
共 30 条记录,来自官方安全矩阵及发布说明的提及。只有安全快照明确列出此分支时才显示修复版本;仅有提及不能确定漏洞适用性或新修复。