pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
2002-02-04
此发行版改进了 PostgreSQL 在高负载应用中的使用。
此发行版的主要变更:
清理(vacuum)不再锁定表,因此在清理期间允许正常的用户访问。 新的 VACUUM FULL 命令执行旧式清理:锁定表并收缩表 的磁盘副本。
超过四十亿事务的安装不再有问题。
OID 现在是可选的。对于 OID 使用过度的情况,用户现在可以创建 不带 OID 的表。
系统现在会在 ANALYZE 期间计算直方图列统计信息, 使优化器能够做出更好的选择。
新的 MD5 加密选项允许更安全地存储和传输口令。Linux 和 BSD 系统 上还提供了新的 Unix 域套接字认证选项。
管理员可以使用新的表访问统计模块获取有关表和索引使用情况的 细粒度信息。
程序和库消息现在可以用多种语言显示。
希望从任何以前的发行版迁移数据的用户,需要使用 pg_dump 进行转储/恢复。
注意以下不兼容之处:
此发行版中 VACUUM 命令的语义发生了变化。你可能 需要相应地更新你的维护流程。
在此发行版中,使用 = NULL 的比较将总是返回 false(更准确地说,是 NULL)。以前的发行版会自动将此语法转换为 IS NULL。可以通过 postgresql.conf 参数重新启用旧行为。
pg_hba.conf 和 pg_ident.conf 配置现在 只在收到 SIGHUP 信号之后重新加载,而不是在每次 连接时加载。
函数 octet_length() 现在返回未压缩的数据长度。
日期/时间值 'current' 不再可用。你需要改写 你的应用程序。
函数 timestamp()、time() 和 interval() 不再可用。请用 timestamp 'string' 或 CAST 代替 timestamp()。
SELECT ... LIMIT #,# 语法将在下一个发行版中移除。 你应当把查询改为使用独立的 LIMIT 和 OFFSET 子句,例如 LIMIT 10 OFFSET 20。
在独立的目录中创建临时文件(Bruce)
postmaster 启动时删除孤立的临时文件(Bruce)
为一些系统表添加唯一索引(Tom)
系统表操作符重组(Oleg Bartunov、Teodor Sigaev、Tom)
将 pg_log 更名为 pg_clog(Tom)
启用 SIGTERM、SIGQUIT 来杀死后端(Jan)
移除后端数量的编译期限制(Tom)
信号量资源失败时更好的清理(Tatsuo、Tom)
允许安全的事务 ID 回卷(Tom)
从一些系统表中移除 OID(Tom)
移除 "triggered data change violation" 错误检查(Tom)
预备/保存计划的 SPI 门廊创建(Jan)
允许 SPI 列函数对系统列工作(Tom)
长值压缩改进(Tom)
用于表、索引访问的统计收集器(Jan)
将超长序列名截断为合理值(Tom)
以毫秒为单位测量事务时间(Thomas)
修复 TID 顺序扫描(Hiroshi)
超级用户 ID 现在固定为 1(Peter E)
新的 pg_ctl "reload" 选项(Tom)
优化器改进(Tom)
供优化器使用的新的直方图列统计信息(Tom)
重用预写日志文件而不是丢弃它们(Tom)
缓存改进(Tom)
IS NULL、IS NOT NULL 优化器改进(Tom)
改进锁管理器以减少锁竞争(Tom)
为索引访问支持函数保留 relcache 项(Tom)
改进 NUMERIC 中 NaN 和无穷大的选择率(Tom)
R-tree 性能改进(Kenneth Been)
B-树分割更高效(Tom)
将 UPDATE、DELETE 权限改为彼此独立(Peter E)
新的 REFERENCES、TRIGGER 权限(Peter E)
允许一次对多个用户执行 GRANT/REVOKE(Peter E)
新的 has_table_privilege() 函数(Joe Conway)
允许非超级用户清理数据库(Tom)
新的 SET SESSION AUTHORIZATION 命令(Peter E)
修复新创建表上权限修改的缺陷(Tom)
禁止非超级用户访问 pg_statistic,添加用户可访问的视图(Tom)
在认证之前 fork postmaster 以防止挂起(Peter E)
在 Linux、*BSD 上添加基于 Unix 域套接字的 ident 认证(Helge Bahmann、Oliver Elphick、Teodor Sigaev、Bruce)
添加使用 MD5 加密的口令认证方法(Bruce)
允许使用 MD5 加密存储的口令(Bruce)
PAM 认证(Dominic J. Eidson)
只在启动和 SIGHUP 时加载 pg_hba.conf 和 pg_ident.conf(Bruce)
某些时区缩写按澳大利亚而不是北美解释,现在可以在运行时设置(Bruce)
设置默认事务隔离级别的新参数(Peter E)
将 "expr = NULL" 转换为 "expr IS NULL" 的新参数,默认关闭(Peter E)
控制 VACUUM 内存使用的新参数(Tom)
设置客户端认证超时的新参数(Tom)
设置最大打开文件数的新参数(Tom)
INSERT 规则添加的语句现在在 INSERT 之后执行(Jan)
禁止目标列表中出现未修饰的关系名(Bruce)
ORDER BY 中 NULL 现在排在所有正常值之后(Tom)
新的 IS UNKNOWN、IS NOT UNKNOWN 布尔测试(Tom)
新的 SHARE UPDATE EXCLUSIVE 锁模式(Tom)
新的 EXPLAIN ANALYZE 命令,显示运行时间和行数(Martijn van Oosterhout)
修复 LIMIT 与子查询的问题(Tom)
修复 LIMIT、DISTINCT ON 被下推到子查询的问题(Tom)
修复嵌套 EXCEPT/INTERSECT(Tom)
修复临时表中的 SERIAL(Bruce)
允许临时序列(Bruce)
序列现在内部使用 int8(Tom)
新的 SERIAL8 创建带序列的 int8 列,默认仍是 SERIAL4(Tom)
使用 WITHOUT OIDS 使 OID 变为可选(Tom)
为 CREATE TYPE 添加 %TYPE 语法(Ian Lance Taylor)
为 CHECK 约束添加 ALTER TABLE / DROP CONSTRAINT(Christopher Kings-Lynne)
新的 CREATE OR REPLACE FUNCTION 用于更改现有函数(保留函数 OID)(Gavin Sherry)
添加 ALTER TABLE / ADD [ UNIQUE | PRIMARY ](Christopher Kings-Lynne)
允许重命名视图中的列
使 ALTER TABLE / RENAME COLUMN 更新索引的列名(Brent Verner)
修复继承表上 ALTER TABLE / ADD CONSTRAINT ... CHECK 的问题(Stephan Szabo)
ALTER TABLE RENAME 正确更新外键触发器参数(Brent Verner)
DROP AGGREGATE 和 COMMENT ON AGGREGATE 现在接受 aggtype(Tom)
为 SQL 函数添加自动的返回类型数据转换(Tom)
允许 GiST 索引处理 NULL 和多键索引(Oleg Bartunov、Teodor Sigaev、Tom)
启用部分索引(Martijn van Oosterhout)
添加 RESET ALL、SHOW ALL(Marko Kreen)
CREATE/ALTER USER/GROUP 现在允许任意顺序的选项(Vince)
添加 LOCK A, B, C 功能(Neil Padgett)
为 CREATE/ALTER USER 添加新的 ENCRYPTED/UNENCRYPTED 选项(Bruce)
新的轻量级 VACUUM 不锁定表;旧语义以 VACUUM FULL 提供(Tom)
禁止对视图执行 COPY TO/FROM(Bruce)
COPY DELIMITERS 字符串必须恰好为一个字符(Tom)
索引元组少于堆元组的 VACUUM 警告现在只在适当时出现(Martijn van Oosterhout)
修复 CREATE INDEX 的权限检查(Tom)
禁止对 CREATE/DROP INDEX/TRIGGER/VIEW 的不当使用(Tom)
SUM()、AVG()、COUNT() 现在内部使用 int8 以提升速度(Tom)
添加 convert()、convert2()(Tatsuo)
新函数 bit_length()(Peter E)
使 CHAR(n)/VARCHAR(n) 中的 "n" 表示字符数而不是字节数(Tatsuo)
CHAR()、VARCHAR() 现在拒绝过长的字符串(Peter E)
BIT VARYING 现在拒绝过长的位串(Peter E)
BIT 现在拒绝与声明长度不匹配的位串(Peter E)
INET、CIDR 文本转换函数(Alex Pilosov)
INET、CIDR 的操作符 << 和 <<= 现在可索引(Alex Pilosov)
Bytea 的 \### 现在要求有效的三位八进制数
Bytea 比较改进,现在支持 =、<>、>、>=、< 和 <=
Bytea 现在支持 B-树索引
Bytea 现在支持 LIKE、LIKE...ESCAPE、NOT LIKE、NOT LIKE...ESCAPE
Bytea 现在支持连接
新的 bytea 函数:position、substring、trim、btrim 和 length
encode() 函数的新模式 "escaped",在最少转义的 bytea 与 text 之间转换
添加 pg_database_encoding_max_length()(Tatsuo)
添加 pg_client_encoding() 函数(Tatsuo)
now() 返回毫秒精度的时间(Thomas)
新的 TIMESTAMP WITHOUT TIMEZONE 数据类型(Thomas)
添加带 "T" 的 ISO 日期/时间规范,yyyy-mm-ddThh:mm:ss(Thomas)
新的 xid/int 比较函数(Hiroshi)
为 TIME、TIMESTAMP 和 INTERVAL 数据类型添加精度(Thomas)
修改类型强制转换逻辑以优先尝试二进制兼容函数(Tom)
新的 encode() 函数默认安装(Marko Kreen)
改进的 to_*() 转换函数(Karel Zak)
使用单字节编码时优化 LIKE/ILIKE(Tatsuo)
contrib/pgcrypto 中的新函数:crypt()、hmac()、encrypt()、gen_salt()(Marko Kreen)
更正 translate() 函数的描述(Bruce)
为 SET TIME ZONE 添加 INTERVAL 参数(Thomas)
添加 INTERVAL YEAR TO MONTH(等)语法(Thomas)
使用单字节编码时优化 length 函数(Tatsuo)
修复 path_inter、path_distance、path_length、dist_ppath 以处理闭合路径(Curtis Barrett、Tom)
octet_length(text) 现在返回未压缩长度(Tatsuo、Bruce)
处理日期/时间字面量中 "July" 这样的全名(Greg Sabino Mullane)
一些 datatype() 函数调用的求值方式发生了变化
添加对儒略和 ISO 时间规范的支持(Thomas)
psql、pg_dump、libpq 和服务器的国家语言支持(Peter E)
简体中文、繁体中文、捷克语、法语、德语、匈牙利语、俄语、瑞典语的消息翻译(Peter E、Serguei A. Mokhov、Karel Zak、Weiping He、Zhenbang Wei、Kovacs Zoltan)
使 trim、ltrim、rtrim、btrim、lpad、rpad、translate 感知多字节(Tatsuo)
添加 LATIN5、6、7、8、9、10 支持(Tatsuo)
添加 ISO 8859-5、6、7、8 支持(Tatsuo)
更正 LATIN5 使其表示 ISO-8859-9 而不是 ISO-8859-5(Tatsuo)
使 mic2ascii() 感知非 ASCII(Tatsuo)
拒绝无效的多字节字符序列(Tatsuo)
现在 SELECT 循环使用门廊,允许超大结果集(Jan)
CURSOR 和 REFCURSOR 支持(Jan)
现在可以返回打开的游标(Jan)
添加 ELSEIF(Klaus Reger)
改进 PL/pgSQL 错误报告,包括错误位置(Tom)
为兼容性,允许在游标声明中使用 IS 或 FOR 关键字(Bruce)
修复 SELECT ... FOR UPDATE(Tom)
修复 PERFORM 返回多行的问题(Tom)
使 PL/pgSQL 使用服务器的类型强制转换代码(Tom)
内存泄漏修复(Jan、Tom)
使末尾分号变为可选(Tom)
新的非信任 PL/Perl(Alex Pilosov)
即使 libperl 不是共享库,PL/Perl 现在也能在某些平台上构建(Peter E)
现在报告 errorInfo(Vsevolod Lobko)
添加 spi_lastoid 函数(bob@redivi.com)
……是新增的(Andrew Bosma)
\d 按唯一、主键分组显示索引(Christopher Kings-Lynne)
允许反斜杠命令带末尾分号(Greg Sabino Mullane)
如果可能,从 /dev/tty 读取口令
更改用户和数据库时强制新的口令提示(Tatsuo、Tom)
为 Unicode 格式化正确的列数(Patrice)
新函数 PQescapeString(),转义命令字符串中的引号(Florian Weimer)
新函数 PQescapeBytea(),转义二进制字符串以用作 SQL 字符串字面量
返回 INSERT 的 OID(Ken K)
处理更多数据类型(Ken K)
处理字符串中的单引号和换行(Ken K)
处理 NULL 变量(Ken K)
修复时区处理(Barry Lind)
改进的 Druid 支持
允许非多字节服务器使用八位字符(Barry Lind)
支持 BIT、BINARY 类型(Ned Wolpert)
减少内存使用(Michael Stephens、Dave Cramer)
更新 DatabaseMetaData(Peter E)
添加 DatabaseMetaData.getCatalogs()(Peter E)
编码修复(Anders Bengtsson)
Get/setCatalog 方法(Jason Davies)
DatabaseMetaData.getColumns() 现在返回列默认值(Jason Davies)
DatabaseMetaData.getColumns() 性能改进(Jeroen van Vianen)
JDBC1 和 JDBC2 的部分合并(Anders Bengtsson)
事务性能改进(Barry Lind)
数组修复(Greg Zoller)
序列化添加
修复批处理(Rene Pijlman)
ExecSQL 方法重组(Anders Bengtsson)
GetColumn() 修复(Jeroen van Vianen)
修复 isWriteable() 函数(Rene Pijlman)
改进 JDBC2 一致性测试的通过率(Rene Pijlman)
添加 bytea 类型能力(Barry Lind)
添加 isNullable()(Rene Pijlman)
JDBC 日期/时间测试套件修复(Liam Stewart)
修复 SELECT 'id' AS xxx FROM table(Dave Cramer)
修复 DatabaseMetaData 以正确显示精度(Mark Lillywhite)
新的 getImported/getExported 键(Jason Davies)
MD5 口令加密支持(Jeremy Wohl)
修复以真正使用类型缓存(Ned Wolpert)
移除查询大小限制(Hiroshi)
移除文本字段大小限制(Hiroshi)
修复多字节模式下的 SQLPrimaryKeys(Hiroshi)
允许 ODBC 过程调用(Hiroshi)
改进布尔处理(Aidan Mountford)
大多数配置选项现在可通过 DSN 设置(Hiroshi)
多字节和性能修复(Hiroshi)
允许驱动与 iODBC 或 unixODBC 一起使用(Peter E)
MD5 口令加密支持(Bruce)
为 odbc.sql 添加更多兼容函数(Peter E)
实现 EXECUTE ... INTO(Christof Petig)
多行描述符支持(例如 CARDINALITY)(Christof Petig)
修复 GRANT 参数(Lee Kindness)
修复 INITIALLY DEFERRED 缺陷
若干缺陷修复(Michael、Christof Petig)
指示变量数组的自动分配(int *ind_p=NULL)
字符串数组的自动分配(char **foo_pp=NULL)
修复 ECPGfree_auto_mem
所有具有外部链接的函数名现在都以 ECPG 为前缀
结构体数组的修复(Michael)
修复 Python fetchone()(Gerhard Haring)
在适当处在 Tcl 中使用 UTF、Unicode(Vsevolod Lobko、Reinhard Max)
添加 Tcl COPY TO/FROM(ljb)
防止 pg_dump 输出默认索引操作符类(Tom)
修复 libpgeasy 内存泄漏(Bruce)
configure、动态加载器和共享库修复(Peter E)
QNX 4 移植的修复(Bernd Tegge)
Cygwin 和 Windows 移植的修复(Jason Tishler、Gerhard Haring、Dmitry Yurtaev、Darko Prenosil、Mikhail Terekhov)
修复 Windows 套接字通信失败(Magnus、Mikhail Terekhov)
Hurd 编译修复(Oliver Elphick)
BeOS 修复(Cyril Velter)
移除 configure --enable-unicode-conversion,现在由多字节启用(Tatsuo)
AIX 修复(Tatsuo、Andreas)
修复并行 make(Peter E)
将 SQL 语言手册页安装到操作系统特定的目录(Peter E)
将 config.h 重命名为 pg_config.h(Peter E)
重组头文件的安装布局(Peter E)
移除 SEP_CHAR(Bruce)
新的 GUC 钩子(Tom)
合并 GUC 与命令行处理(Marko Kreen)
移除 EXTEND INDEX(Martijn van Oosterhout、Tom)
缩进 Java 代码的新 pgjindent 工具(Bruce)
在 C++ 下编译时移除 true/false 的定义(Leandro Fanzone、Tom)
pgindent 修复(Bruce、Tom)
在适当处用 strcmp() 替换 strcasecmp()(Peter E)
Dynahash 可移植性改进(Tom)
在自旋锁结构中添加 'volatile' 的使用
改进信号处理逻辑(Tom)
新的 contrib/rtree_gist(Oleg Bartunov、Teodor Sigaev)
新的 contrib/tsearch 全文索引(Oleg、Teodor Sigaev)
添加 contrib/dblink 用于远程数据库访问(Joe Conway)
contrib/ora2pg Oracle 转换工具(Gilles Darold)
contrib/xml XML 转换工具(John Gray)
contrib/fulltextindex 修复(Christopher Kings-Lynne)
新的 contrib/fuzzystrmatch,合并了 levenshtein、metaphone 和 soundex(Joe Conway)
为 contrib/intarray 添加布尔查询、二分查找和修复(Oleg Bartunov)
新的 pg_upgrade 工具(Bruce)
为 pg_resetxlog 添加新选项(Bruce、Tom)
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。