E.340. 版本 1.02

E.340.1. 从版本 1.02 迁移到版本 1.02.1
E.340.2. 转储/重装过程
E.340.3. 修改列表

发布日期:. 1996-08-01

E.340.1. 从版本 1.02 迁移到版本 1.02.1

本文是用于 1.02.1 的新的迁移文件。它包括 'copy' 的改变和一个用于转换旧的 ASCII 文件的脚本。

注意

下面的信息用于帮助那些希望从 Postgres95 1.01 和 1.02 向 Postgres95 1.02.1 迁移的用户。

如果你刚刚开始使用 Postgres95 1.02.1 并且不需要迁移旧的数据库, 那么你不需要阅读下面的部分。

要想从旧的 Postgres95 版本 1.01 或 1.02 数据库向版本 1.02.1 升级, 需要进行下面步骤:

  1. 运行新的 1.02.1 postmaster

  2. 向 1.01 或 1.02 数据库中增加 1.02.1 的新的内建函数和操作符。 方法是在你的 1.01 或 1.02 的数据库上运行新的 1.02.1 服务器然后应用文件末尾的查询。 这些工作可以很轻松的通过 psql 来完成。如果你的 1.01 或 1.02 数据库叫 testdb 并且你已经把文件末尾的命令剪切下来并存入到文件 addfunc.sql 里,那么:

    % psql testdb -f addfunc.sql

    那些从 1.02 数据库升级的人们在执行文件中最后两个语句时会看到警告消息, 因为它们已经在 1.02 中出现了。 这些警告不会产生问题。

E.340.2. 转储/重装过程

如果你试图重装 pg_dump 或文本模式,copy tablename to stdout会在原先的版本中生成, 你将需要在加载到数据库之前在 ASCII 文件上运行下面的 sed 脚本。 因为原先的格式用'.'作为数据结束符,而现在使用'\.'。同样,现在空字符串用''进行装载, 而不是 NULL。请参阅 copy 的手册页获取完整的细节描述。

sed 's/^\.$/\\./g' <in_file >out_file

如果你从一个旧的二进制拷贝或非标准输出拷贝中恢复数据, 就不需要做上述转换,因为不存在数据结束符字符问题。

-- agc添加的下列的行反应不区分大小写
-- 正则表达式搜索 varchar (in 1.02), 和 bpchar (in 1.02.1)
create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);

E.340.3. 修改列表

源代码管理和开发
 * 世界各地的志愿者团队
 * 源代码树现在在 CVS 在 ftp.ki.net

增强
 * psql (和底层的 libpq 库)现在对格式化输出有了更多的选项,包括 HTML
 * pg_dump 现在输出模式和/或数据,带有许多提高完善的修复。
 * psql 在管理 shell 脚本中用来替代监控器。监控器将在下一个版本中停用。
 * 日期/时间函数增强
 * NULL 插入/更新/比较 修复/增强
 * TCL/TK 库和 shell 修复以和 tck7.4/tk4.0 和 tcl7.5/tk4.1 一起工作

Bug 修补(多得说不完)
 * 索引
 * 存储管理
 * 在解除参考之前检查 NULL 指针
 * Makefile 修复

新增端口
 * 添加了 SolarisX86 端口
 * 添加了 BSD/OS 2.1 端口
 * 添加了 DG/UX 端口