58.1. Funciones del adaptador de datos externos #

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:

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.