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