PostgreSQL 9.1.5文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 50章外部データラッパの作成 | 早送り | 次のページ |
FDWの作者は、ハンドラ関数と、オプションで検証関数を実装する必要があります。 両関数とも、version-1インターフェースを使用して、Cなどのコンパイル言語で作成しなければなりません。 C言語の呼び出し規約と動的ロードについては項35.9を参照してください。
ハンドラ関数は単に、プランナやエグゼキュータから呼び出されるコールバック関数のポインタを保持する構造体を返します。 FDWを作成するための労力のほとんどは、これらのコールバック関数を実装することに費やされます。 ハンドラ関数は、引数を取らず特殊な仮想型であるfdw_handlerを返す関数としてPostgreSQLに登録しなければなりません。 コールバック関数は通常のC言語関数で、SQLレベルでは参照も呼び出しもできません。コールバック関数の説明は項50.2にあります。
検証関数は、そのラッパを使用する外部サーバ、ユーザマッピング、外部テーブルだけでなく、外部データラッパ自身のCREATEやALTERといったコマンドで指定されたオプションの妥当性を検証する責任があります。 検証関数は、検証するオプションを含むtext配列と、オプションを関連付けるオブジェクトの種類を表すOID(そのオブジェクトが格納されるシステムカタログのOIDでForeignDataWrapperRelationIdまたはForeignServerRelationIdまたはUserMappingRelationIdまたはForeignTableRelationIdのいずれか)という二つの引数を取るものとして登録しなければなりません。 検証関数が指定されなかった場合、オブジェクト作成時やオブジェクト変更時にオプションはチェックされません。