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

yusaku matsuda yumatuda @ msoft.co.jp
2004年 6月 14日 (月) 18:35:55 JST


石田 様

エムソフトの松田と申します。
お返事遅くなりまして、大変申し訳ありません。

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

なるほど、やはりそうなのですか。

>PostgreSQL のバージョンにもよると思うのですが、私の環境(7.4.2)では
>エラーは発生しませんでした。

こちらの環境を記述するのを忘れておりました。申し訳ありません。
PostgreSQLのバージョンは、7.2.2です。

>pg_dump の出力結果は function の方が table より先にありましたが、
>出力の先頭に、
>SET check_function_bodies = false;
>と書かれていたことによってエラーが抑止されたのではいかと思います。

7.4.2のドキュメントに、check_function_bodies に関しての記述がありました。
--ここから
このパラメータは通常真です。偽に設定した場合、CREATE FUNCTION中の関数本体文字列の検証が無効になります。
検証を無効にすることは、ダンプから関数定義をリストアする時の前方参照といった問題を防ぐことができ、場合によっては有用です。
ここまで--

石田様の環境で問題が無かったのは、上記の理由からだと思うのですが、
そこで私も、頭に、
SET check_function_bodies = false;
を付与して再度リストアしてみました。
するとcheck_function_bodieなんてありません。と怒られます。
7.2.2で、check_function_bodieに当たる物を7.2.3のドキュメントから探したのですが見当たりません。
ご存知ありませんでしょうか?

#PostgreSQLのバージョンをあげれば解決する、と言う事なのでしょうが・・・。





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