他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

59.1. 外部データラッパー関数

FDWの作者は、ハンドラ関数と、オプションで検証関数を実装する必要があります。 両関数とも、version-1インタフェースを使用して、Cなどのコンパイル言語で作成しなければなりません。 C言語の呼び出し規約と動的ロードについては38.10を参照してください。

ハンドラ関数は単に、プランナやエグゼキュータ、様々なメンテナンスコマンドから呼び出されるコールバックの関数ポインタを含む構造体を返します。 FDWを作成するための労力のほとんどは、これらのコールバック関数を実装することに費やされます。 ハンドラ関数は、引数を取らず特殊な仮想型であるfdw_handlerを返す関数としてPostgreSQLに登録しなければなりません。 コールバック関数は通常のC言語関数で、SQLレベルでは参照も呼び出しもできません。コールバック関数の説明は59.2にあります。

検証関数は、そのラッパーを使用する外部サーバ、ユーザマッピング、外部テーブルだけでなく、外部データラッパー自身のCREATEALTERといったコマンドで指定されたオプションの妥当性の検証を担当します。 検証関数は、検証するオプションを含むtext配列と、オプションを関連付けるオブジェクトの種類を表すOID(そのオブジェクトが格納されるシステムカタログのOIDで次のいずれか、ForeignDataWrapperRelationIdForeignServerRelationIdUserMappingRelationIdForeignTableRelationId)という二つの引数を取るものとして登録しなければなりません。 検証関数が指定されなかった場合、オブジェクト作成時やオブジェクト変更時にオプションはチェックされません。