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 (
параметр
'значение
' [, ... ] )Это предложение определяет параметры для создаваемой обёртки сторонних данных. Набор допустимых параметров и значений для каждой обёртки свой, контроль их правильности осуществляет функция проверки сторонних данных. Имена параметров должны быть уникальными.
Примечания
Функциональность 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
стандартом не предусмотрены, а предложения LIBRARY
и LANGUAGE
, напротив, не реализованы в PostgreSQL.
Учтите, однако, что функциональность SQL/MED в целом ещё не обеспечивается.