CREATE FOREIGN DATA WRAPPER

Определяет новый внешний обработчик данных.

Синтаксис

CREATE FOREIGN DATA WRAPPER name
    [ HANDLER handler_function | NO HANDLER ]
    [ VALIDATOR validator_function | NO VALIDATOR ]
    [ OPTIONS ( [ mpp_execute { 'master' | 'any' | 'all segments' } [, ] ] option 'value' [, ... ] ) ]

Описание

Команда CREATE FOREIGN DATA WRAPPER создает новый внешний обработчик данных в текущей базе данных. Пользователь, определивший внешний обработчик данных, становится его владельцем.

Создавать внешние обработчики данных могут только суперпользователи.

Параметры

name

  • Имя создаваемого внешнего обработчика данных. Это имя должно быть уникальным в пределах базы данных.

HANDLER handler_function

  • Вызов базы данных YMatrix для получения имени ранее зарегистрированной функции, выполняющей операции с внешней таблицей. Функция handler_function не должна принимать параметров, а её возвращаемый тип должен быть fdw_handler.
    Можно создавать внешние обработчики данных без функций-обработчиков, однако такие обработчики можно использовать только при отсутствии доступа к внешним таблицам.

VALIDATOR validator_function

  • Вызов базы данных YMatrix для проверки имени ранее зарегистрированной функции, используемой для проверки опций, переданных внешнему обработчику данных. Эта функция также проверяет опции внешних серверов, отображений пользователей и внешних таблиц, использующих данный внешний обработчик данных. Если функция-валидатор не указана или указано NO VALIDATOR, база данных YMatrix не будет проверять опции при создании. (В зависимости от реализации, внешний обработчик данных может игнорировать или отклонять недопустимые опции во время выполнения.)
    Функция validator_function должна принимать два параметра: один типа text[], содержащий массив опций из системного каталога, и другой типа oid, который идентифицирует OID системного каталога, содержащего эти опции.
    Возвращаемое значение игнорируется; функция validator_function должна использовать функцию ereport(ERROR) для сообщения о неверных опциях.

OPTIONS ( option 'value' [, ... ] )

  • Опции для нового внешнего обработчика данных. Имя опции должно быть уникальным. Имена и значения опций зависят от конкретного внешнего обработчика данных и проверяются с помощью функции validator_function данного обработчика.

mpp_execute { 'master' | 'any' | 'all segments' }

  • Опция, определяющая хост, с которого внешний обработчик данных запрашивает данные:
    • master (по умолчанию) — Запрос данных осуществляется с мастер-хоста.
    • any — Запрос данных осуществляется с мастер-хоста или любого сегмента, в зависимости от того, какой путь является менее затратным.
    • all segments — Запрос данных осуществляется со всех сегментов. Для поддержки этого значения внешний обработчик данных должен иметь политику, сопоставляющую сегменты с данными.
  • Опция mpp_execute может указываться в нескольких командах: CREATE FOREIGN TABLE, CREATE SERVER и CREATE FOREIGN DATA WRAPPER. Настройки внешней таблицы имеют приоритет над настройками внешнего сервера, которые, в свою очередь, имеют приоритет над настройками внешнего обработчика данных.

Примечание

Функциональность внешних обработчиков данных находится в стадии разработки. Оптимизация запросов остаётся примитивной (в основном передаётся самому обработчику).

Примеры

Создание бесполезного внешнего обработчика данных с именем dummy:

CREATE FOREIGN DATA WRAPPER dummy;

Создание внешнего обработчика данных с именем file с использованием функции-обработчика file_fdw_handler:

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), однако предложения LIBRARY и VALIDATOR являются расширениями, а стандартные предложения LIBRARY и LANGUAGE в базе данных YMatrix не реализованы.

Обратите внимание, что функциональность SQL/MED в целом пока не полностью соответствует требованиям стандарта.

Смотрите также

ALTER FOREIGN DATA WRAPPER , DROP FOREIGN DATA WRAPPER