El autor del FDW debe implementar una función de manejo (handler) y, opcionalmente, una función de validación (validator). Ambas funciones deben estar escritas en un lenguaje compilado como C, utilizando la interfaz de versión 1. Para obtener detalles sobre las convenciones de llamada del lenguaje C y la carga dinámica, consulta la Section 36.10.
La función de manejo simplemente devuelve una estructura de punteros a funciones para
las funciones de retrollamada (callbacks) que serán llamadas por el planificador, el ejecutor
y varios comandos de mantenimiento.
La mayor parte del esfuerzo al escribir un FDW consiste en implementar estas funciones
de retrollamada.
La función de manejo debe registrarse en PostgreSQL sin argumentos
y devolviendo el pseudotipo especial fdw_handler. Las funciones de retrollamada
son funciones simples de C y no son visibles ni invocables a nivel de SQL. Las funciones
de retrollamada se describen en la Section 58.2.
La función de validación es responsable de validar las opciones dadas en los comandos
CREATE y ALTER para su adaptador de datos externos,
así como para los servidores externos, las asignaciones de usuarios (user mappings) y las
tablas externas que utilizan el adaptador.
La función de validación debe registrarse recibiendo dos argumentos: un array de texto
que contiene las opciones a validar y un OID que representa el tipo de objeto con el que
están asociadas las opciones. Este último corresponde al OID del catálogo del sistema en el
que se almacenaría el objeto, uno de:
AttributeRelationId
ForeignDataWrapperRelationId
ForeignServerRelationId
ForeignTableRelationId
UserMappingRelationId
Si no se proporciona una función de validación, las opciones no se comprueban en el momento de creación del objeto ni en el de modificación.