E.305. 版本 6.0

发布日期: 1997-01-29

对于想从此版本以前的 PostgreSQL 迁移到此版本的都需要做转储/恢复工作。

E.305.1. 从版本 1.09 迁移到版本 6.0

这种迁移需要对1.09数据库完全转储,然后在6.0里将数据全部恢复回去。

E.305.2. 从 1.09 以前的版本迁移到版本 6.0

从 1.* 以前的版本迁移首先要升级到 1.09 版本,因为在 1.02 版本中已经改善了 COPY 的输出格式。

E.305.3. 变化

Bug 修复
---------
ALTER TABLE bug - 运行 postgres 进程需要重读表定义
允许 vacuum 运行在一个表或整个数据库上 (Bruce)
修复数组
修复数组内存写入溢出 (Kurt)
修复难懂的 btree range/non-range bug (Dan)
修复在某些类型如时间和日期上的哈希索引
修复 pg_log 尺寸激增
修复 lo_export() 上的权限 (Bruce)
修复未初始化的读取内存 (Kurt)
修复 ALTER TABLE ... char(3) bug (Bruce) 
修复一些小的内存泄露
修复 EXPLAIN 处理选项和改变了的 full_path 选项名
修复 acl 权限分组的输出
内存泄露(像 Purify 这样的工具的破坏) (Kurt)
规则系统小幅度的改善
修复 NOTIFY 
为运行时检查新增 asserts
彻底检查 parser/analyze 代码以适当的报告错误和提升速度
Pg_dump -d 现在可以适当的处理 NULL (Bruce)
阻止 SELECT NULL 使服务器崩溃 (Bruce) 
当 INSERT ... SELECT columns 不匹配时适当的报告错误
当插入字段名不正确时适当的报告错误
psql \g filename 现在可以工作了 (Bruce)
psql 修复一行上的多个声明有多个输出时的问题
删除了重复的系统 OID
SELECT * INTO TABLE . GROUP/ORDER BY 如果表已经存在则给出未连接的错误 (Bruce)
修复了几个使后端崩溃的查询
插入字符串中起始引号错误 (Bruce)
提交空查询现在返回空状态,不只是 " " 查询 (Bruce)

增强
------------
添加 EXPLAIN 手册页 (Bruce)
添加 UNIQUE 索引功能 (Dan)
添加 hostname/user 级别访问控制而不只是 hostname 和 user
为 <> 添加同义词 != (Bruce)
允许 "select oid,* from table"
允许 BY,ORDER BY 通过编号指定字段,或通过非别名的 table.column (Bruce)
允许从前端 COPY (Bryan)
允许 GROUP BY 使用别名字段名 (Bruce)
允许真实的压缩,不只是在同一页上重新使用 (Vadim)
允许安装配置选项自动添加到本地用户 (Bryan)
允许 libpq 区分文本值 '' 和 null (Bruce)
允许非 postgres 用户在 destroydb 上有 createdb 权限
允许限制谁可以创建 C 函数 (Bryan)
允许限制谁可以在后端 COPY (Bryan)
可以收缩表、pg_time 和 pg_log (Vadim & Erich)
改变调试级别 2 为只输出查询,改变调试标题布局 (Bruce)
改变缺省小数常量表示从 float4 到 float8 (Bruce)
当 postmaster 启动时设置 European 日期格式
如果没有找到准确的大小写情况则执行小写的函数名
修复 aggregate/GROUP 处理,允许 'select sum(func(x),sum(x+y) from z'
Gist 现在包含在发布里 (Marc)
本地用户的身份认证 (Bryan)
实现了 BETWEEN 限定符 (Bruce)
实现了 IN 限定符 (Bruce)
libpq 有 PQgetisnull() (Bruce)
改善了 libpq++
新增选项到 initdb (Bryan)
Pg_dump 允许转储 OID (Bruce)
Pg_dump 为了速度在加载表之后创建索引 (Bruce)
Pg_dumpall 转储所有数据库,和用户表
为 NULL 值附加 Pginterface (Bruce)
阻止 postmaster 作为 root 运行
psql \h 和 \? 现在可读 (Bruce)
psql 允许在行中任何地方有反向斜线,分号 (Bruce)
psql 改变了查询中或引号中行的命令提示符 (Bruce)
psql char(3) 现在在 \d 输出中作为 (bp)char 显示 (Bruce)
psql 现在返回更精确的代码 (Bryan?)
psql 更新帮助语法 (Bruce)
重复访问和修复 vacuum (Vadim)
减少回归差异的大小,删除时区名差异 (Bruce)
删除编译时参数以启用二进制发布 (Bryan)
HBA 标记的相反含义 (Bryan)
本地用户的安全认证 (Bryan)
加速 vacuum (Vadim)
vacuum 现在有了 VERBOSE 选项 (Bruce)

源代码树的改变
-------------------
所有函数现在有了和调用相比较的原型
允许维护可以简单的在 Makefile.global 中禁用 (Bruce)
改变在代码中使用的 oid 常量为 #define 名
解耦 sparc 和 solaris 的定义 (Kurt)
Gcc -Wall 编译只有来自不固定结构的警告
主要包括文件 reorganization/reduction (Marc)
Make 现在在编译失败时停止 (Bryan)
Makefile 重组 (Bryan, Marc)
合并 bsdi_2_1 到 bsdi (Bruce) 
删除了监控程序
更改名字 Postgres95 为 PostgreSQL
新增 config.h 文件 (Marc, Bryan)
PG_VERSION 现在设置为 6.0 并且被 postmaster 使用
可移植性附加物,包括 Ultrix, DG/UX, AIX, 和 Solaris
减少 #define 的数量,集中 #define
删除系统表中重复的 OID (Dan)
删除重复的系统目录信息或报告不匹配 (Dan)
删除许多 os 特定的 #define
重组目标文件 generation/location (Bryan, Marc)
重组端口特定的文件位置 (Bryan, Marc)
未使用的/未初始化的变量纠正