CREATE FOREIGN DATA WRAPPER — 新しい外部データラッパーを定義する
CREATE FOREIGN DATA WRAPPERname
[ HANDLERhandler_function
| NO HANDLER ] [ VALIDATORvalidator_function
| NO VALIDATOR ] [ OPTIONS (option
'value
' [, ... ] ) ]
CREATE FOREIGN DATA WRAPPER
は新しい外部データラッパーを作成します。
外部データラッパーを定義したユーザがその所有者となります。
外部データラッパーの名前はデータベース内で一意でなければなりません。
スーパーユーザのみが外部データラッパーを作成することができます。
name
作成する外部データラッパーの名前です。
HANDLER handler_function
handler_function
は、事前に登録された、外部テーブル向けの関数実行を受け付けるために呼び出される関数の名前です。
ハンドラ関数は引数を取らず、fdw_handler
型を返すものでなければなりません。
ハンドラ関数を持たない外部データラッパーを作成することもできますが、こうしたラッパーを使用する外部テーブルは宣言することができるだけでアクセスできません。
VALIDATOR validator_function
validator_function
は、外部データラッパーへ与える一般的なオプションと、その外部データラッパーを使用する外部サーバ、ユーザマップおよび外部テーブルへ与えるオプションを検査するために呼び出される、前もって登録された関数の名前です。
検証関数がない、またはNO VALIDATOR
が指定された場合、オプションは作成時に検査されません。
(実装に依存しますが、実行時外部データラッパーは無効なオプション指定を無視することも拒絶することもできます。)
検証関数は2つの引数を取らなければなりません。
1つはtext[]
型で、システムカタログ内に格納されたオプションの配列を含みます。
もう1つはoid
型で、オプションを含むシステムカタログのOIDです。
戻り値の型は無視されます。
関数はereport()
関数を使用して無効なオプションを報告しなければなりません。
OPTIONS ( option
'value
' [, ... ] )
この句は新しい外部データラッパー用のオプションを指定します。 使用できるオプション名と値は外部データラッパーごとに固有であり、外部データラッパーの検証関数を使用して検証されます。 オプション名は一意でなければなりません。
PostgreSQLの外部データ機能はまだ活発な開発がなされています。 問い合わせの最適化がまだ開発が進んでいません(そしてほとんどがラッパーに任せられています)。 したがって将来の性能向上の余地が大きくあります。
無意味な外部データラッパーdummy
を作成します。
CREATE FOREIGN DATA WRAPPER dummy;
file_fdw_handler
ハンドラ関数を持つ外部データラッパーfile
を作成します。
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
いくつかオプションを付けた外部データラッパーmywrapper
を作成します。
CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
CREATE FOREIGN DATA WRAPPER
はISO/IEC 9075-9 (SQL/MED)に準拠しています。
ただし、HANDLER
句とVALIDATOR
句は拡張であり、PostgreSQLでは標準のLIBRARY
句とLANGUAGE
句は実装されていません。
しかし、SQL/MED機能は全体としてまだ従っていないことに注意してください。