PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# CREATE FOREIGN DATA WRAPPER

## 名前

CREATE FOREIGN DATA WRAPPER -- 新しい外部データラッパを定義する

## 概要

    CREATE FOREIGN DATA WRAPPER name
        [ HANDLER handler_function | NO HANDLER ]
        [ VALIDATOR validator_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_fdw_validator`という1つの組込みの外部データラッパの検証関数が提供されています。 これはlibpq接続パラメータに対応したオプションを受け付けます。

## 例

無意味な外部データラッパ`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機能は全体としてまだ従っていないことに注意してください。

## 関連項目

ALTER FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER, CREATE SERVER, CREATE USER MAPPING

前のページ | ホーム | 次のページ
CREATE EXTENSION | 上に戻る | CREATE FOREIGN TABLE