Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

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>

Имя ранее зарегистрированной функции, которую Greengage DB вызывает для получения функций выполнения для сторонних таблиц. Функция <handler_function> не должна принимать аргументы, а ее возвращаемый тип должен быть fdw_handler.

Можно создать обертку сторонних данных без функции-обработчика, но тогда с помощью такой обертки можно только объявлять сторонние таблицы, а не обращаться к ним

VALIDATOR <validator_function>

Имя ранее зарегистрированной функции, которую Greengage DB вызывает для проверки параметров, заданных для обертки сторонних данных. Эта функция также проверяет параметры для сторонних серверов, сопоставлений пользователей и сторонних таблиц, использующих данную обертку сторонних данных. Если не указана функция-валидатор или указано NO VALIDATOR, Greengage DB не проверяет параметры во время создания. В зависимости от реализации обертки сторонних данных могут игнорировать или отклонять недопустимые параметры во время выполнения.

Параметр <validator_function> должен принимать два аргумента: один типа text[], содержащий массив параметров в том виде, в котором они хранятся в системных каталогах, и один типа oid, идентифицирующий OID системного каталога, содержащего эти параметры.

Возвращаемый тип игнорируется. Параметр <validator_function> должен сообщать о недопустимых параметрах с помощью функции ereport(ERROR)

OPTIONS (<option> '<value>' [, …​ ])

Параметры для новой обертки сторонних данных. Имена параметров должны быть уникальными. Имена и значения параметров зависят от конкретной обертки сторонних данных и проверяются с помощью функции <validator_function> этой обертки сторонних данных

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

Параметр, определяющий хост, с которого обертка сторонних данных читает или записывает данные:

  • master (по умолчанию) — читать или записывать данные с мастер-хоста.

  • any — читать данные либо с мастер-хоста, либо с любого одного сегмента, в зависимости от того, какой путь дешевле.

  • all segments — читать или записывать данные со всех сегментов. Для поддержки этого значения параметра обертка сторонних данных должна иметь политику, сопоставляющую сегменты данным.

    ПРИМЕЧАНИЕ

    Greengage DB поддерживает параллельную запись в сторонние таблицы только при значении mpp_execute 'all segments'.

Поддержка параметра mpp_execute и конкретных режимов зависит от конкретной обертки сторонних данных.

Параметр 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), за исключением того, что выражения HANDLER и VALIDATOR являются расширениями, а стандартные выражения LIBRARY и LANGUAGE в Greengage DB не реализованы. Однако функциональность SQL/MED в целом пока еще не является полностью соответствующей стандарту.

См. также