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