Функции-обертки сторонних данных
Эта страница переведена при помощи нейросети GigaChat.
Автору FDW (Foreign Data Wrapper, Обертки сторонних данных) необходимо реализовать функцию обработчика и, возможно, функцию валидатора. Обе функции должны быть написаны на скомпилированном языке, таком как C, с использованием интерфейса версии 1. Подробнее о соглашениях о вызове языка C и динамической загрузке смотрите в разделе Функции на языке C.
Функция обработчика просто возвращает структуру указателей функций к функциям обратного вызова, которые будут вызываться планировщиком, исполнителем и различными командами обслуживания. Большая часть усилий при написании FDW заключается в реализации этих функций обратного вызова. Функция обработчика должна быть зарегистрирована в PostgreSQL как не принимающая аргументов и возвращающая специальный псевдотип fdw_handler. Функции обратного вызова являются простыми функциями C и не видны и не вызываются на уровне SQL. Функции обратного вызова описаны в разделе Маршруты обратного вызова для перехвата иностранных данных.
Функция валидатора отвечает за проверку параметров, заданных в командах CREATE и ALTER для своего внешнего хранилища данных, а также для внешних серверов, сопоставлений пользователей и внешних таблиц, использующих это хранилище. Функция валидатора должна быть зарегистрирована как принимающая два аргумента: текстовый массив, содержащий параметры для проверки, и OID, представляющий тип объекта, с которым связаны эти параметры. Последний соответствует OID системного каталога, в котором будет храниться объект, одному из следующих:
AttributeRelationId;ForeignDataWrapperRelationId;ForeignServerRelationId;ForeignTableRelationId;UserMappingRelationId.
Если функция проверки не предоставляется, опции не проверяются во время создания объекта или во время изменения объекта
и OID, представляющий тип объекта, с которым связаны параметры. Последний соответствует OID системного каталога, в котором будет храниться объект, одному из следующих: