[pgsql-jp: 28399] Re: pg_restore で lo がリストアできない
minoru fukuda
fukuda @ kinol.co.jp
2002年 12月 20日 (金) 18:27:00 JST
福田@キノルです。
井上さん。どうもありがとうございました。
おっしゃるようにやってみて、また報告します。
> 井上です。
>
> minoru fukuda wrote:
> >
> > こんにちは、福田@キノルです。
> >
> > これまで PostgreSQL 7.2 で作っていた DB を pg_dump でダンプして
> > 7.3 で pg_restore を使ってリストアしようとしたところ、下記のような
> > エラーが表示されて、リストアに失敗します。
> >
> > pg_restore: [archiver (db)] error while updating column "itemdata" of table "t_h
> > agaki": ERROR: Unable to identify an operator '=' for types 'oid' and 'lo'
> > You will have to retype this query using an explicit cast
> >
> > 7.2 時代は lo もうまくリストアできていたのですが、このメッセージによると
> > lo がうまくリストアできていないようなのです。
>
> この現象は本家でも報告されています。申し訳ないですが
> 時間がなくちゃんと調べている暇がありません。原因は多分
> 次のようなところだと思います。
>
> 7.3になってキャストの仕組みが変わりました。loとoid
> をキャストしたり比較するためには、次のようにキャストを
> 登録する必要があります。
>
> create cast (lo as oid) with function oid(lo) as implicit;
> create cast (oid as lo) with function lo(oid) as implicit;
>
> さらにこのようにキャストを定義するためにはoid(lo)やlo(oid)
> をIMMUTABLEな関数として定義する必要があります。
>
> pg_dumpのデータが編集できるようなら上記の点に注意して
> 試してみてください。
>
> Hiroshi Inoue
> http://w2422.nsk.ne.jp/~inoue/
--
福田稔 Minoru Fukuda
fukuda @ kinol.co.jp
kinol interactive inc.
http://www.kinol.co.jp
pgsql-jp メーリングリストの案内