56.1. Функции обертки внешних данных#

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

Если функция проверки не указана, параметры не проверяются во время создания объекта или изменения объекта.