[pgsql-jp: 26554] lo型の追加について

Hiroyuki Yamada hiroyuki @ rh.is.hitachizosen.co.jp
2002年 7月 1日 (月) 18:55:12 JST


山田@京都です。
 みなさん、こんにちは。ラージオブジェクトの事でちょっと教えていただきたいこ
とがあります。
過去のMLで下記のものを見つけたのですが、
「※ pg_dumpを行なう前に」以下のところの1)2)の項目の実行方法(手順)等を
教えていただけ
ないでしょうか?ご教授の程、よろしくお願いします。

<以下引用>
============================================================================
=======
[pgsql-jp 24290] Re: ラージオブジェクトのバックアップ/リストアについて

----------------------------------------------------------------------------
----
From: Hiroshi Inoue <Inoue @ tpf.co.jp>
Date: Wed, 26 Dec 2001 15:21:13 +0900
References: <200112260022.BBF17089.TFZLPVV @ mail.wind.ne.jp>
----------------------------------------------------------------------------
----
井上です。
Yousuke Takahashi wrote:
>
> 高橋です。お世話になります。
> ユーザー定義型のラージオブジェクト持つテーブルのバックアップ/リストアで
> つまずいています。お知恵を拝借したいと思います。
>
> まず、以下のようにして lo というラージオブジェクト用のデータ型を定義し
>
> CREATE TYPE "lo" ( internallength = 4, externallength = 10,
> input = "int4in", output = "int4out", send = "int4out",
> receive = "int4in", default = '',passedbyvalue);

[pgsql-jp 23132] BLOBのバックアップとリストア
を参照してください。
ODBCのFAQで説明されているloの型定義は手抜きがひどく
[pgsql-jp 23141]のパッチを適用してもpg_restoreでは
処理できません。contrib/loが提供しているlo型の方が
望ましいと思います。
ただ、単純にlo型をDROPして作り直しても既存のlo型の
カラムには反映されない上にそのカラムは参照できなく
なってしまいます。どうしてもということであれば、次
のようないささか強引なやり方が可能かと思います。
ただし結果の保証はいたしかねますので、あらかじめ
(postmaster停止中の)$PGDATA以下を全コピーするな
どしておいてから試してみてください。

※ pg_dumpを行なう前に

1)contrib/loからlo.soをインストールします。 <----------ココ
2)lo.soが提供するfunction群をインストールします。  <------------ココ
  psql xxx < lo.sql
    この際 create type lo ... は当然ですがエラーと
  なります(元のlo型定義をdropしてはいけません)。

3)次のコマンドを実行してlo型の中身を変更します。
    update pg_type set typbyval='f', typinput='lo_in',
    typoutput='lo_out',typreceive='lo_in',typsend='lo_out'
    where typname='lo' and typbyval='t';
    update pg_attribute set attbyval = 'f' where atttypid=
    (select oid from pg_type where typname='lo');

4)上記変更でlo型はcontrib/loが提供するものとほとんど
  同じものに変貌します。念のため変更の後で元のデータ
  が処理できることを確認してください。

※ pg_restoreを行なう前に
5)[pgsql 23141]のパッチを適用してpg_restoreを作成し
  直してください。なお7.2にはこのパッチが既に組み込
  まれています。

ODBCのFAQを直さなくてはと思うものの。

Hiroshi Inoue
----------------------------------------------------------------------------
----
References:
[pgsql-jp 24268] ラージオブジェクトのバックアップ/リストアについて
From: Yousuke Takahashi <yousuke @ mail.wind.ne.jp>
Prev by Date: [pgsql-jp 24289] Re: 大量データ取得時間の短縮について
Next by Date: [pgsql-jp 24291] timestamp 関数
Prev by thread: [pgsql-jp 24268] ラージオブジェクトのバックアップ/リストア
について
Next by thread: [pgsql-jp 24264] No suitable driver
Index(es):
Date
Thread





pgsql-jp メーリングリストの案内