pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
不兼容变更:
* BETA-0.3 与用以前版本创建的数据库不兼容
(由于系统目录更改和索引结构更改)。
* 双引号(")作为字符串字面量的引号字符已被废弃;
你需要将它们转换为单引号(')。
* 聚合的名称(如 int4sum)已按照
SQL 标准重命名(如 sum)。
* CHANGE ACL 语法被 GRANT/REVOKE 语法取代。
* 浮点字面量(如 3.14)现在是 float4 类型(而不是以前版本的
float8);如果你依赖它
是 float8 类型,可能需要进行类型转换。如果忽略类型转换而把
浮点字面量赋给 float8 类型的字段,可能会得到错误的
存储值!
* LIBPQ 经过彻底翻新,前端应用程序
可以连接多个后端
* pg_user 中的 usesysid 字段已从 int2 改为 int4,以
允许更宽范围的 Unix 用户 id。
* netbsd/freebsd/bsd 操作系统移植已合并为
单一的 BSD44_derived 移植。(感谢 Alistair Crooks)
SQL 标准符合性(以下详述使 postgres95
更符合 SQL-92 标准的更改):
* 以下 SQL 类型现在是内建的:smallint、int(eger)、float、real、
char(N)、varchar(N)、date 和 time。
以下是现有 postgres 类型的别名:
smallint -> int2
integer, int -> int4
float, real -> float4
char(N) 和 varchar(N) 实现为截断的 text 类型。此外,
char(N) 会做空白填充。
* 用单引号(')引用字符串字面量;''(除
\' 外)也可用于在字符串中插入单引号
* 使用 SQL 标准聚合名(MAX、MIN、AVG、SUM、COUNT)
(此外,聚合现在可以重载,即你可以定义
接受用户自定义类型的 MAX 聚合。)
* 移除 CHANGE ACL。添加 GRANT/REVOKE 语法。
- 可以使用 "GROUP" 关键字把权限授予组。
例如:
GRANT SELECT ON foobar TO GROUP my_group;
关键字 'PUBLIC' 也受支持,表示所有用户。
每次只能对一个用户或组授予或撤销
权限。
不支持 "WITH GRANT OPTION"。只有类所有者可以更改
访问控制
- 默认访问控制是给用户只读访问权限。
你必须显式授予用户插入/更新权限。要更改
这一点,请修改
src/backend/utils/acl.h
中定义 ACL_WORLD_DEFAULT
的那一行
缺陷修复:
* 空表上的聚合不被运行的缺陷已修复。现在,
在空表上运行的聚合将返回聚合的初始条件。因此,空表的 COUNT 现在会正确返回 0。
空表的 MAX/MIN 将返回值为 NULL 的元组。
* 允许在 monitor 中使用 \;
* LISTEN/NOTIFY 异步通知机制现在可以工作
* 规则动作体中的 NOTIFY 现在可以工作
* 哈希索引可以工作了,访问方法总体上性能应该更好。
创建大型 btree 索引应该快得多。(感谢 Paul
Aoki)
其他更改与增强:
* 添加了用于解释查询执行计划的 EXPLAIN 语句(例如 "EXPLAIN SELECT * FROM EMP" 会打印出该查询的执行计划)。
* WARN 和 NOTICE 消息不再带时间戳。要打开错误消息的时间戳,请取消注释 src/backend/utils/elog.h 中的这一行:
/* define ELOG_TIMESTAMPS */
* 访问控制被违反时,会给出消息
"Either no such class or insufficient privilege"
。这与找不到类时返回的消息相同。这可以阻止无权限的用户
猜测受权限保护的类的存在。
* 还做了一些用户不可见的
系统目录更改。
libpgtcl 更改:
* "pg_result" tcl 命令添加了 -oid 选项。
pg_result -oid 返回最后插入元组的 oid。如果最后的命令不是 INSERT,则 pg_result -oid 返回 ""。
* 大对象接口以 pg_lo* tcl 命令的形式提供:
pg_lo_open, pg_lo_close, pg_lo_creat, etc.
可移植性增强与新移植:
* flex/lex 的问题已经解决。现在,在任何平台上都应该可以用 flex 代替 lex。
我们不再根据你所用的平台假设你使用的词法分析器。
* 现在支持 Linux-ELF 移植。已测试多种配置:已知以下配置可以工作:
kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
所有内容均为 ELF 格式,
新实用程序:
* ipcclean 已加入发行版
通常不需要运行 ipcclean,但如果你的后端崩溃
并留下共享内存段,ipcclean 会为你清理它们。
新文档:
* 用户手册已经修订并添加了 libpq 文档。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。