56.1. Функции обертки внешних данных#
56.1. Функции обертки внешних данных #
Создатель обертки для внешних данных FDW должен реализовать функцию-обработчик и, по желанию, функцию-валидатор. Обе функции должны быть написаны на компилируемом языке, таком как C, с использованием интерфейса версии 1.
Функция обработчика просто возвращает структуру указателей на функции обратного вызова, которые будут вызываться планировщиком, исполнителем и различными командами обслуживания.
Большая часть усилий при написании FDW заключается в реализации этих функций обратного вызова.
Функция обработчика должна быть зарегистрирована в Tantor BE как функция, не принимающая аргументов и возвращающая специальный псевдотип fdw_handler
. Функции обратного вызова являются обычными функциями на языке C и не видимы или вызываемы на уровне SQL. Функции обратного вызова описаны в Раздел 56.2.
Функция валидатора отвечает за проверку параметров, указанных в
командах CREATE
и ALTER
для
своей обертки внешних данных, а также внешних серверов, сопоставлений пользователей и
внешних таблиц, использующих этот обработчик.
Функция валидатора должна быть зарегистрирована как принимающая два аргумента:
текстовый массив, содержащий параметры для проверки, и OID,
представляющий тип объекта, с которым связаны параметры.
Последний соответствует OID системного каталога, в котором будет храниться объект, один из:
AttributeRelationId
ForeignDataWrapperRelationId
ForeignServerRelationId
ForeignTableRelationId
UserMappingRelationId
Если функция проверки не указана, параметры не проверяются во время создания объекта или изменения объекта.