[pgsql-jp: 33182] Re: テーブルとファンクションをりストアする場合のoid 問題

ISHIDA Akio iakio @ pjam.jpweb.net
2004年 6月 8日 (火) 19:46:29 JST


こんにちは。石田@苫小牧市です。

yusaku matsuda wrote:

> いつも参考にさせて頂いております。
> エムソフトの松田と申します。
> 
> 下記の手順でDBをリストアした際にエラーが出て困っております。
> ---ここから

(中略)

> ---ここまで
> 
> とすると、最後のリストアで、
> ERROR:  Relation "test" does not exist
> と言うエラーが表示されます。
> 
> これは、testfuncのoidがtestより大きくなっているため、と言う結論に至りました。
> まず、この結論は正しいでしょうか?

ざっと見た感じでは、OID 以外に オブジェクトの種類でも並べかえて
いるようですが、テーブルとファンクションについては特に並べかえて
いなさそうなので、結果的に OID 順になっていると思います。

> そしてもう一つ、この動作に関してはこう言うものなのでしょうか?
> テーブルをdropした場合は、そのテーブルを使用しているfunctionも削除し、
> createし直す、と言うのが当然なのでしょうか?

PostgreSQL のバージョンにもよると思うのですが、私の環境(7.4.2)では
エラーは発生しませんでした。
pg_dump の出力結果は function の方が table より先にありましたが、
出力の先頭に、
SET check_function_bodies = false;
と書かれていたことによってエラーが抑止されたのではいかと思います。

-- 
ISHIDA Akio <iakio @ pjam.jpweb.net/iakio @ mono-space.net>



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