选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

E.236. Postgres95 Release 0.03 #

发行日期

1995-07-21

E.236.1. 变更

不兼容变更:
 * 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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。