pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发行日期:. 1995-07-21
不兼容变更:
* 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) 实现为截断的文本类型。此外,
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 等。
可移植性增强和新移植:
* 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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。