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