リリース v1.01

バージョン 1.0 からバージョン 1.01 への移行

The following notes are for the benefit of users who want to migrate databases from postgres95 1.0 to postgres95 1.01.

以下のメモは、postgres95 1.0 から postgres95 1.01 へデータベースの移 行を行なうユーザのためのものです。

If you are starting afresh with postgres95 1.01 and do not need to migrate old databases, you do not need to read any further.

postgres95 1.01 から新たに開始する、または、古いデータベースの移行を 必要としない場合、以降を読む必要はありません。

In order to postgres95 version 1.01 with databases created with postgres95 version 1.0, the following steps are required:

postgres95 バージョン 1.0 で作成したデータベースを使って、postgres95 バージョン 1.01 を動かすには、以下のステップが必要です。

  1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and OIDNAMELEN to 20.

    src/Makefile.global 内の NAMEDATALEN の定義を 16 に、OIDNAMELEN を 20 に設定します。

  2. Decide whether you want to use Host based authentication.

    ホストを元にした認証を行なうか否かを決定します。

    1. If you do, you must create a file name "pg_hba" in your top-level data directory (typically the value of your $PGDATA). src/libpq/pg_hba shows an example syntax.

      行なう場合、データディレクトリの最上位ディレクトリ(通常は $PGDATA の 値)に "pg_hba" というファイルを作成します。 src/libpq/pg_hbaは、構文の例を示しています。

    2. If you do not want host-based authentication, you can comment out the line

      ホストを元にした認証を行なわない場合、src/Makefile.global 内の以下の行 をコメントアウトして下さい。

      	HBA = 1
      in src/Makefile.global

      Note that host-based authentication is turned on by default, and if you do not take steps A or B above, the out-of-the-box 1.01 will not allow you to connect to 1.0 databases.

      ホストを元にした認証はデフォルトで有効になっていることに注意して下さい。 上の A もしくは B のステップを行なわなかった場合 1.01 が稼働するマシン 以外から 1.0 データベースへの接続ができなくなります。

  3. Compile and install 1.01, but DO NOT do the initdb step.

    1.01 をコンパイル、インストールします。しかし、initdb の処理は行 なわないで下さい。

  4. Before doing anything else, terminate your 1.0 postmaster, and backup your existing $PGDATA directory.

    他のことをする前に、1.0 の postmaster を終了させて下さい。そして、既 存の $PGDATA ディレクトリをバックアップして下さい。

  5. Set your PGDATA environment variable to your 1.0 databases, but set up path up so that 1.01 binaries are being used.

    PGDATA 環境変数を 1.0 データベースに設定して下さい。しかし、1.01 の バイナリを使用するように path は最新を参照するように設定して下さい。

  6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1

    $PGDATA/PG_VERSION ファイルを 5.0 から 5.1 に変更して下さい。

  7. Start up a new 1.01 postmaster

    新しい 1.01 の postmaster を起動して下さい。

  8. Add the new built-in functions and operators of 1.01 to 1.0 databases. This is done by running the new 1.01 server against your own 1.0 database and applying the queries attached and saving in the file 1.0_to_1.01.sql. This can be done easily through psql. If your 1.0 database is name "testdb":

    1.01 に新しく組み込まれた関数と演算子を 1.0 データベースに追加します。 既存の 1.0 データベースに対して新しい 1.01 サーバを実行し、添付された 問い合わせを適用し、1.0_to_1.01.sql ファイルに保存することでなされます。 psql を使用するとより簡単にできます。 1.0 データベースの名前が "testdb" であるとすると、

    	% psql testdb -f 1.0_to_1.01.sql
    and then execute the following commands (cut and paste from here): その後に、次のコマンドを実行して下さい。(ここからカットアンドペースト して下さい。)
    -- add builtin functions that are new to 1.01
    
    create function int4eqoid (int4, oid) returns bool as 'foo'
    language 'internal';
    create function oideqint4 (oid, int4) returns bool as 'foo'
    language 'internal';
    create function char2icregexeq (char2, text) returns bool as 'foo'
    language 'internal';
    create function char2icregexne (char2, text) returns bool as 'foo'
    language 'internal';
    create function char4icregexeq (char4, text) returns bool as 'foo'
    language 'internal';
    create function char4icregexne (char4, text) returns bool as 'foo'
    language 'internal';
    create function char8icregexeq (char8, text) returns bool as 'foo'
    language 'internal';
    create function char8icregexne (char8, text) returns bool as 'foo'
    language 'internal';
    create function char16icregexeq (char16, text) returns bool as 'foo'
    language 'internal';
    create function char16icregexne (char16, text) returns bool as 'foo'
    language 'internal';
    create function texticregexeq (text, text) returns bool as 'foo'
    language 'internal';
    create function texticregexne (text, text) returns bool as 'foo'
    language 'internal';
    
    -- add builtin functions that are new to 1.01
    
    create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
    create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
    create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
    create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
    create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
    create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
    create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
    create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
    create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
    create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
    create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
    create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);

詳細な変更点一覧

Incompatibilities:
 * 1.01 is backwards compatible with 1.0 database provided the user
   follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
   If those steps are not taken, 1.01 is not compatible with 1.0 database.

Enhancements:
 * added PQdisplayTuples() to libpq and changed monitor and psql to use it
 * added NeXT port (requires SysVIPC implementation)
 * added CAST .. AS ... syntax
 * added ASC and DESC keywords
 * added 'internal' as a possible language for CREATE FUNCTION
   internal functions are C functions which have been statically linked
   into the postgres backend.
 * a new type "name" has been added for system identifiers (table names,
   attribute names, etc.)  This replaces the old char16 type.   The
   of name is set by the NAMEDATALEN #define in src/Makefile.global
 * a readable reference manual that describes the query language.
 * added host-based access control.  A configuration file ($PGDATA/pg_hba)
   is used to hold the configuration data.  If host-based access control
   is not desired, comment out HBA=1 in src/Makefile.global.
 * changed regex handling to be uniform use of Henry Spencer's regex code
   regardless of platform.  The regex code is included in the distribution
 * added functions and operators for case-insensitive regular expressions. 
   The operators are ~* and !~*.
 * pg_dump uses COPY instead of SELECT loop for better performance

Bug fixes:
 * fixed an optimizer bug that was causing core dumps when 
   functions calls were used in comparisons in the WHERE clause
 * changed all uses of getuid to geteuid so that effective uids are used
 * psql now returns non-zero status on errors when using -c
 * applied public patches 1-14