[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 メーリングリストの案内