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