2011年10月 4日

[pgsql-jp: 40945] Re:create language plpgsql databasename とは?

2011/10/4 tanaka <tanaka_hideo@xxxxx>:
> 第 35章手続き言語
> のところに書かれている
> 「ハンドラそのものはC言語関数で、他のC言語関数と同様に、共有オブジェクトにコンパイルされ、要求に応じてロードされます。」
> が、実施されるという理解で良いでしょうか?

プロシージャ言語を含めた PostgreSQL の拡張モジュールは
一般的に、以下のステップを経て使えるようになります。


1. ライブラリ・ファイルをファイルシステム上に配置する。
(.dll や .so の拡張子を持つファイル)
2. ライブラリ・ファイル内の関数を、PostgreSQL データベースに
登録するために、登録用SQLを実行。
3. 実際にアプリから機能を使う際に、ライブラリがロードされる。

plpgsql のライブラリ・ファイルは、PostgreSQL本体と一緒に
インストール済みなので、通常は 1.の手順は要りません。
plpgsql 自体は、C言語で書かれていますね。

CREATE LANGUAGE は、2.に相当する操作で、データベースに
ライブラリを登録するための操作です。

そして、3.として、CREATE FUNCTION した関数を呼び出すと、
実際にライブラリがロードされ、実行されることになります。


……という感じで、イメージは伝わるでしょうか?

--
Itagaki Takahiro

投稿者 xml-rpc : 2011年10月 4日 22:39
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106646
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。