Перейти к основному содержимому

CREATE FOREIGN DATA WRAPPER

примечание

Эта страница переведена при помощи нейросети GigaChat.

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
Указывает имя ранее зарегистрированной функции обработки, которая будет вызываться для получения функций выполнения внешних таблиц. Такая функция не должна принимать аргументы, а ее возвращаемый тип должен быть fdw_handler.
Примечание

Допускается создание оболочки без функции обработки, однако в этом случае к внешним таблицам, использующим такую оболочку, можно только обращаться, но нельзя их создавать.

VALIDATOR validator_function
Указывает имя ранее зарегистрированной функции проверки, используемой для валидации общих параметров оболочки, а также параметров внешних серверов, сопоставлений пользователей и внешних таблиц. Если функция проверки не указана или используется NO VALIDATOR, параметры не проверяются при создании. Однако оболочка может проверять или отклонять параметры во время выполнения — это зависит от ее реализации.

Функция валидации должна принимать два аргумента: массив text[] с параметрами и oid — идентификатор системного каталога, в котором они хранятся. Возвращаемое значение игнорируется, функция должна сигнализировать о недопустимых параметрах через ereport(ERROR).

OPTIONS (option 'value' [, ... ])
Определяет параметры для создаваемой внешней оболочки данных.

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

Примечания

Механизм работы с внешними данными в PostgreSQL все еще развивается. Оптимизация запросов пока примитивна и во многом зависит от конкретной реализации внешней оболочки. Следовательно, в этой области возможны значительные улучшения производительности в будущем.

Примеры

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

Следует учитывать, что реализация SQL/MED в PostgreSQL в целом пока не полностью соответствует стандарту.

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

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