CREATE FOREIGN DATA WRAPPER
CREATE FOREIGN DATA WRAPPER — определить новую обертку сторонних данных
Синтаксис
CREATE FOREIGN DATA WRAPPER имя
[ HANDLER функция_обработчик | NO HANDLER ]
[ VALIDATOR функция_валидатор | NO VALIDATOR ]
[ OPTIONS ( параметр 'значение' [, ... ] ) ]
Описание
Команда CREATE FOREIGN DATA WRAPPER создает новую обертку сторонних данных.
Пользователь, определяющий обертку сторонних данных, становится ее владельцем.
Имя обертки сторонних данных должно быть уникальным в пределах базы данных.
Только суперпользователи могут создавать обертки сторонних данных.
Параметры
имя
Имя создаваемой обертки сторонних данных.
HANDLER функция_обработчик
функция_обработчик — это имя ранее зарегистрированной функции, которая
будет вызвана для извлечения функций, реализующих обращение к сторонним таблицам.
Функция-обработчик должна быть без аргументов, а ее возвращаемым типом должен быть
fdw_handler.
Можно создать обертку сторонних данных без функции-обработчика, но сторонние
таблицы, использующие такую обертку, могут быть только объявлены, но не доступны.
VALIDATOR функция_валидатор
функция_валидатор — это имя ранее зарегистрированной функции, которая будет вызвана для проверки общих параметров, передаваемых обертке сторонних данных, а также параметров для сторонних серверов, сопоставлений пользователей и сторонних таблиц, использующих эту обертку сторонних данных. Если функции-валидатора нет или указано NO VALIDATOR, то во время создания объектов параметры проверяться не будут. (Возможно, обертки сторонних данных будут игнорировать или отклонять недопустимые значения параметров во время выполнения, в зависимости от реализации.) Функция-валидатор должна принимать два аргумента: первый типа text[] (в нем содержится массив параметров, хранящихся в системном каталоге), а второй типа oid (в нем указывается OID системного каталога, содержащего эти параметры). Возвращаемое значение игнорируется; функция должна сообщить о недопустимых параметрах с помощью системной функции ereport(ERROR).
OPTIONS ( параметр 'значение' [, ... ] )
Это предложение задает параметры для новой обертки сторонних данных. Допустимые имена и значения параметров являются специфичными для каждой обертки сторонних данных и проверяются с помощью функции-валидатора. Имена параметров должны быть уникальными.
Примечания
Функциональность работы QHB со сторонними данными все еще находится в стадии активной разработки. Оптимизация запросов примитивна (и по большей части это тоже делает обертка). Таким образом, имеются широкие возможности для дальнейшего повышения производительности.
Примеры
Создание бесполезной обертки сторонних данных 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), за исключением того, что в QHB предложения
HANDLER и VALIDATOR являются расширениями, а стандартные предложения
LIBRARY и LANGUAGE не реализованы.
Обратите внимание, однако, что соответствие функциональности SQL/MED в комплексе пока не достигнуто.
См. также
ALTER FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER, CREATE SERVER, CREATE USER MAPPING, CREATE FOREIGN TABLE