pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发行日期:. 1998-10-30
此版本有许多新特性和改进。感谢我们的开发者和维护者,自上一个版本以来系统的几乎每个方面都得到了关注。以下是简要而不完整的总结:
得益于 Jan Wieck 在重写规则系统中的大量新代码,视图和规则现在可以工作了。他还为 程序员指南写了相关章节。
Jan 还贡献了第二个过程语言 PL/pgSQL,与他在上个版本贡献的最初的 PL/pgTCL 过程语言相伴。
我们有 Tatsuo Ishii 提供的可选多字节字符集支持,以补充现有的区域设置支持。
客户端/服务器通信得到了清理,感谢 Tom Lane,对异步消息和中断的支持更好了。
解析器现在执行自动类型强制,以把参数匹配到可用的操作符和函数,并把列和表达式与目标列匹配。这使用了支持 PostgreSQL 类型可扩展特性的通用机制。用户指南有涵盖此主题的新章节。
新增了三种数据类型。其中两种,inet 和 cidr,支持各种形式的 IP 网络、子网和机器寻址。某些平台上现在有 8 字节整数类型可用。详情见 用户指南中的数据类型章节。第四种类型 serial 现在被解析器支持,作为 int4 类型、序列和唯一索引的混合体。
新增了更多 SQL92 兼容的语法特性,包括 INSERT DEFAULT VALUES
自动配置和安装系统得到了一些关注,应比以往在更多平台上更健壮。
希望从任何以前的 PostgreSQL 版本迁移数据的用户,需要使用 pg_dump 或 pg_dumpall 进行转储/恢复。
缺陷修复
---------
修复 PQsetdb/PQfinish 中的小内存泄漏(Bryan)
移除 char2-16 数据类型,使用 char/varchar(Darren)
Pqfn 现在处理 NOTICE 消息(Anders)
降低多后端时自旋锁的忙等开销(dg)
卡死自旋锁检测(dg)
修复 "ISO 风格" timespan 的解码和编码(Thomas)
修复事务回滚后删除表的问题(Vadim)
更改错误消息并移除无效的更新消息(Vadim)
修复 COPY 数组检查的问题
修复 SELECT 1 UNION SELECT NULL
修复大对象调用中的缓冲区泄漏(Pascal)
把 owner 从 oid 类型改为 int4(Bruce)
修复 Oracle 兼容函数 btrim()、ltrim() 和 rtrim() 中的缺陷
修复共享失效缓存溢出(Massimo)
防止失败的 COPY 中的文件描述符泄漏(Bruce)
修复 libpgtcl 的 pg_select 中的内存泄漏(Constantin)
修复超过 8 字符的用户名/口令问题(Tom)
修复后端处理异步 NOTIFY 的问题(Tom)
修复许多错误的系统表条目(Tom)
增强
------------
升级 ecpg 和 ecpglib,参见 src/interfaces/ecpc/ChangeLog(Michael)
在 EXPLAIN 中显示使用的索引(Zeugswetter)
EXPLAIN 调用规则系统并显示被重写查询的计划(Jan)
通过 configure 使许多数据类型和函数感知多字节(Tatsuo)
新 configure --with-mb 选项(Tatsuo)
新 initdb --pgencoding 选项(Tatsuo)
新 createdb -E 多字节选项(Tatsuo)
Select version(); 现在返回 PostgreSQL 版本(Jeroen)
libpq 现在允许异步客户端(Tom)
允许从客户端取消后端查询(Tom)
psql 现在可用 Control-C 取消查询(Tom)
libpq 用户不必发送哑查询即可获取 NOTIFY 消息(Tom)
NOTIFY 现在发送发送者的 PID,可以判断是否是自己的(Tom)
PGresult 结构现在包含相关的错误消息(如果有)(Tom)
定义 date_part() 的 "tz_hour" 和 "tz_minute" 参数(Thomas)
添加 varchar 和 bpchar 之间转换的例程(Thomas)
添加允许把 varchar 和 bpchar 调整到目标列大小的例程(Thomas)
添加位标志以支持数据检索中的时区小时和分钟(Thomas)
允许有效浮点数的更多变体(如 ".1"、"1e6")(Thomas)
修复带前导空格的一元负号解析(Thomas)
按 SQL92 规范实现 TIMEZONE_HOUR、TIMEZONE_MINUTE(Thomas)
检查并正确忽略 FOREIGN KEY 列约束(Thomas)
按 SQL92 规范定义 USER 为 CURRENT_USER 的同义词(Thomas)
启用 HAVING 子句但其他地方尚无修复。
使 "char" 类型成为 "char(1)" 的同义词(实际实现为 bpchar)(Thomas)
为 DEFAULT 子句处理保存指定的字符串类型(Thomas)
强制涉及不同数据类型的操作(Thomas)
允许对不同类型列的某些索引使用(Thomas)
添加自动类型转换能力(Thomas)
清理大对象,使文件在打开时被截断(Peter)
Readline 清理(Tom)
允许 psql \f \ 用空格作为分隔符(Bruce)
把 pg_attribute.atttypmod 传递给前端以获取列字段长度(Tom、Bruce)
/contrib 中的 Msql 兼容库(Aldrin)
移除 ORDER/GROUP BY 子句标识符必须
包含在目标列表中的要求(David)
转换列以匹配 UNION 子句中的列(Thomas)
移除 fork()/exec() 只做 fork()(Bruce)
Jdbc 清理(Peter)
在 ps 命令行上显示后端状态(只在某些平台上有效)(Bruce)
Pg_hba.conf 的 database 字段现在有 sameuser 选项
使 lo_unlink 接受 oid 参数而不是 int4
为无法处理我们宏的编译器新增 DISABLE_COMPLEX_MACRO(Bruce)
Libpgtcl 现在把 NOTIFY 作为 Tcl 事件处理,不必发送哑查询(Tom)
libpgtcl 清理(Tom)
向 libpgtcl 的 pg_result 命令添加 -error 选项(Tom)
新区域设置补丁,参见 docs/README/locale(Oleg)
修复 pg_dump 使 CONSTRAINT 和 CHECK 语法正确(ccb)
新 contrib/lo 代码用于移除孤立大对象(Peter)
多字节特性的新 psql 命令 "SET CLIENT_ENCODING TO 'encoding'",
参见 /doc/README.mb(Tatsuo)
contrib/noupdate 代码用于撤销列上的更新权限
libpq 现在可以在 Windows 上编译(Magnus)
在 libpq 中添加 PQsetdbLogin()
新 8 字节整数类型,由 configure 检查操作系统支持(Thomas)
更好地支持带引号的表/列名(Thomas)
在 pg_dump 中用双引号包围表和列名(Thomas)
PQreset() 现在可用于口令(Tom)
处理 GROUP BY 目标列表列号越界的情形(David)
允许子查询中的 UNION
向 \d? 命令添加屏幕自动调整大小(Bruce)
用 UNION 在一个查询中显示所有 \d? 结果(Bruce)
添加 \d? 字段搜索特性(Bruce)
Pg_dump 发出更少的 \connect 请求(Tom)
使 pg_dump -z 标志更好地工作并在手册页中记录(Tom)
添加对子查询和 union 完全支持的 HAVING 子句(Stephan)
contrib/fulltextindex 中的全文索引例程(Maarten)
事务 id 现在存储在共享内存中(Vadim)
发出 COPY 命令时的新 PGCLIENTENCODING(Tatsuo)
支持 SQL92 语法 "SET NAMES"(Tatsuo)
支持 LATIN2-5(Tatsuo)
添加 UNICODE 回归测试用例(Tatsuo)
锁管理器清理,LLL 的新锁定模式(Vadim)
允许 OR 子句使用索引(Bruce)
允许 "SELECT NULL ORDER BY 1;"
Explain VERBOSE 打印计划,现在还把计划美化打印到
postmaster 日志文件(Bruce)
向 \d 命令添加索引显示(Bruce)
允许对函数 GROUP BY(David)
大对象的新 pg_class.relkind(Bruce)
把 libpq NOTICE 消息发送到其他位置的新方法(Tom)
psql 的新 \w 写入命令(Bruce)
新 /contrib/findoidjoins 扫描 oid 列以发现连接关系(Bruce)
检查含常量的限制子句的有效索引时
允许考虑二进制兼容的索引(Thomas)
/contrib/isbn_issn 中的新 ISBN/ISSN 代码
允许 NOT LIKE、IN、NOT IN、BETWEEN 和 NOT BETWEEN 约束(Thomas)
新重写系统修复了规则和视图的许多问题(Jan)
* 关系上的规则可用
* insert/update/delete 上的事件限定可用
* 新的 OLD 变量引用 CURRENT,CURRENT 未来将被移除
* 更新规则可在规则限定/动作中引用 NEW 和 OLD
* 视图上的 insert/update/delete 规则可用
* 现在支持多个规则动作,用括号包围
* 普通用户可以在有 RULE 权限的表上创建视图/规则
* 规则和视图继承创建者的权限
* 没有列级别的规则
* 没有 UPDATE NEW/OLD 规则
* 新 pg_tables、pg_indexes、pg_rules 和 pg_views 系统视图
* SELECT 规则只有单个动作
* 彻底的重写改造,也许在 6.5
* 处理子查询
* 处理视图上的聚合
* 处理 insert into select from view 可用
系统索引现在是多键的(Bruce)
移除 Oidint2、oidint4 和 oidname 类型(Bruce)
更多系统表查找使用系统缓存(Bruce)
backend/pl 中的新后端编程语言 PL/pgSQL(Jan)
新 SERIAL 数据类型,自动创建序列/索引(Thomas)
无需重新编译即可启用断言检查(Massimo)
用户锁增强(Massimo)
设置序列值的新 setval() 命令(Massimo)
启动时若无 postmaster 运行则自动移除 unix 套接字文件(Massimo)
条件跟踪包(Massimo)
新 UNLISTEN 命令(Massimo)
psql 和 libpq 现在可用 win32.mak 在 Windows 下编译(Magnus)
Lo_read 不再存储尾随 NULL(Bruce)
标识符现在内部截断为 31 字符(Bruce)
Createuser 选项现在可在命令行上使用
添加 64 位整数支持代码,configure 已测试,int8 类型(Thomas)
防止失败 COPY 的文件描述符泄漏(Bruce)
新 pg_upgrade 命令(Bruce)
更新的 /contrib 目录(Massimo)
新 CREATE TABLE DEFAULT VALUES 语句可用(Thomas)
新 INSERT INTO TABLE DEFAULT VALUES 语句可用(Thomas)
新 DECLARE 和 FETCH 特性(Thomas)
libpq 的内部结构现在不导出(Tom)
允许多达 8 键的索引(Bruce)
移除 ARCHIVE 关键字,它不再使用(Thomas)
pg_dump -n 标志以抑制标识符周围的引号
禁用视图的系统列(Jan)
用于网络地址的新 INET 和 CIDR 类型(TomH、Paul)
psql 输出中不再有双引号
pg_dump 现在转储视图(Terry)
新 SET QUERY_LIMIT(Tatsuo、Jan)
源代码树变更
-------------------
/contrib 清理(Jun)
内联一些每行都调用的小函数(Bruce)
Alpha/linux 修复
HP-UX 清理(Tom)
多字节回归测试(Soonmyung.)
从 configure 移除 --disabled 选项
定义 PGDOC 默认使用 POSTGRESDIR
使回归可选
移除 pgindent 的额外花括号代码(Bruce)
添加 bsdi 共享库支持(Bruce)
新 --without-CXX 支持 configure 选项(Brook)
新 FAQ_CVS
更新 tools/backend 中的后端流程图(Bruce)
把 atttypmod 从 int16 改为 int32(Bruce、Tom)
为没有 Getrusage() 的平台提供修复(Tom)
把 PQconnectdb、PGUSER、PGPASSWORD 添加到 libpq 手册页
NS32K 平台修复(Phil Nelson、John Buller)
SCO 7/UnixWare 2.x 修复(Billy 等)
Sparc/Solaris 2.5 修复(Ryan)
Pgbuiltin.3 已过时,移到 doc 文件(Thomas)
更多的文档(Thomas)
Nextstep 支持(Jacek)
Aix 支持(David)
pginterface 手册页(Bruce)
所有共享库都有版本号
把所有操作系统特定的共享库定义合并到一个文件
更智能的 TCL/TK 配置检查(Billy)
更智能的 perl 配置(Brook)
未找到 install 脚本时 configure 使用随附的 install-sh(Tom)
用于共享库配置的新 Makefile.shlib(Tom)
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。