↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

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

35.14. Postgres95 Beta 0.03

35.14.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) 实现为截断的 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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。