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