リリース日: 1996-02-23
以下の注意は、Postgres95 1.0 から Postgres95 1.01 への移行を行うユーザ向けのものです。
新規に Postgres95 1.02.1 を使用し始める場合は古いデータベースを移行する必要はありませんので、これ以上読み続ける必要はありません。
Postgres95 バージョン 1.0 で作成したデータベースをPostgres95 バージョン 1.01 で使用するためには、以下の手順が必要です。
src/Makefile.global 内の NAMEDATALEN の定義を 16 に、OIDNAMELEN の定義を 20 に設定します。
ホストベース認証方式を使用するかどうか決定します。
使用する場合、最上位データディレクトリ(通常は $PGDATA の値)に pg_hba という名前のファイルを作成しなければなりません。 src/libpq/pg_hba に構文の例があります。
ホストベース認証方式を使用しない場合、src/Makefile.global 内の以下の行をコメントアウトすることができます。
HBA = 1
ホストベース認証方式はデフォルトで有効であり、上の A または B の手順を行わなかった場合、1.01 ボックス以外から 1.0 データベースへ接続することはできなくなることに注意して下さい。
1.01 をコンパイルし、インストールします。 しかし、initdb を実行してはいけません。
これ以上作業する前に、1.0 のpostmaster を終了させ、既存の $PGDATA ディレクトリをバックアップします。
PGDATA 環境変数を 1.0 データベースに設定し、パスを 1.01のバイナリが使用されるように設定します。
$PGDATA/PG_VERSION ファイルを 5.0から5.1へ変更します。
新しい 1.01 postmaster を起動します。
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 そして、以下のコマンドを実行して下さい。
(以下を切り出して使用して下さい。)
-- 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