CREATE FOREIGN DATA WRAPPER — создание нового обёрточного модуля сторонних данных
CREATE FOREIGN DATA WRAPPERname[ HANDLERhandler_function| NO HANDLER ] [ VALIDATORvalidator_function| NO VALIDATOR ] [ OPTIONS (option'value' [, ... ] ) ]
Команда CREATE FOREIGN DATA WRAPPER создаёт новый обёрточный модуль сторонних данных (foreign-data wrapper). Пользователь, определяющий обёрточный модуль сторонних данных, становится его владельцем.
Имя обёрточного модуля сторонних данных должно быть уникальным в пределах базы данных.
Только суперпользователи могут создавать обёрточные модули сторонних данных.
nameИмя создаваемого обёрточного модуля сторонних данных.
HANDLER handler_function
handler_function — это имя ранее зарегистрированной функции, которая будет вызываться для получения функций выполнения для сторонних таблиц. Функция-обработчик не должна принимать аргументов, а её возвращаемый тип должен быть fdw_handler.
Можно создать обёрточный модуль сторонних данных без функции-обработчика, но сторонние таблицы, использующие такой модуль, можно только объявить, но не получить к ним доступ.
VALIDATOR validator_function
validator_function — это имя ранее зарегистрированной функции, которая будет вызываться для проверки общих параметров, заданных для обёрточного модуля сторонних данных, а также параметров для сторонних серверов, пользовательских сопоставлений и сторонних таблиц, использующих этот модуль. Если функция-валидатор не указана или указано NO VALIDATOR, то параметры не будут проверяться во время создания. (Обёрточные модули сторонних данных могут игнорировать или отклонять неверные параметры во время выполнения, в зависимости от реализации.) Функция-валидатор должна принимать два аргумента: один типа text[], который будет содержать массив параметров, хранящихся в системных каталогах, и один типа oid, который будет OID системного каталога, содержащего параметры. Возвращаемый тип игнорируется; функция должна сообщать о неверных параметрах, используя функцию ereport(ERROR).
OPTIONS ( option 'value' [, ... ] )Это предложение задаёт параметры для нового обёрточного модуля сторонних данных. Допустимые имена и значения параметров специфичны для каждого модуля сторонних данных и проверяются с использованием его функции-валидатора. Имена параметров должны быть уникальными.
Функциональность работы со сторонними данными в Digital Q.DataBase всё ещё находится в активной разработке. Оптимизация запросов примитивна (и в основном также возложена на обёрточный модуль). Таким образом, остаётся значительный простор для улучшения производительности в будущем.
Создать бесполезный обёрточный модуль сторонних данных 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 не реализованы в Digital Q.DataBase.
Однако обратите внимание, что функциональность SQL/MED в целом ещё не соответствует стандарту.