58.3. Funciones auxiliares del adaptador de datos externos #

Se exportan varias funciones auxiliares desde el servidor principal para que los autores de adaptadores de datos externos puedan acceder fácilmente a los atributos de los objetos relacionados con FDW, como las opciones de FDW. Para usar cualquiera de estas funciones, debes incluir el archivo de cabecera foreign/foreign.h en tu archivo fuente. Esa cabecera también define los tipos de estructura que devuelven estas funciones.

ForeignDataWrapper *
GetForeignDataWrapperExtended(Oid fdwid, bits16 flags);

Esta función devuelve un objeto ForeignDataWrapper para el adaptador de datos externos con el OID dado. Un objeto ForeignDataWrapper contiene propiedades de la FDW (consulta foreign/foreign.h para obtener detalles). flags es una máscara de bits combinada con OR que indica un conjunto adicional de opciones. Puede tomar el valor FDW_MISSING_OK, en cuyo caso se devuelve un resultado NULL al invocador en lugar de un error para un objeto no definido.

ForeignDataWrapper *
GetForeignDataWrapper(Oid fdwid);

Esta función devuelve un objeto ForeignDataWrapper para el adaptador de datos externos con el OID dado. Un objeto ForeignDataWrapper contiene propiedades de la FDW (consulta foreign/foreign.h para obtener detalles).

ForeignServer *
GetForeignServerExtended(Oid serverid, bits16 flags);

Esta función devuelve un objeto ForeignServer para el servidor externo con el OID dado. Un objeto ForeignServer contiene propiedades del servidor (consulta foreign/foreign.h para obtener detalles). flags is una máscara de bits combinada con OR que indica un conjunto adicional de opciones. Puede tomar el valor FSV_MISSING_OK, en cuyo caso se devuelve un resultado NULL al invocador en lugar de un error para un servidor no definido.

ForeignServer *
GetForeignServer(Oid serverid);

Esta función devuelve un objeto ForeignServer para el servidor externo con el OID dado. Un objeto ForeignServer contiene propiedades del servidor (consulta foreign/foreign.h para obtener detalles).

UserMapping *
GetUserMapping(Oid userid, Oid serverid);

Esta función devuelve un objeto UserMapping para la asignación de usuario (user mapping) del rol dado en el servidor dado. (Si no hay ninguna asignación para el usuario específico, devolverá la asignación para PUBLIC, o lanzará un error si no hay ninguna). Un objeto UserMapping contiene propiedades de la asignación de usuario (consulta foreign/foreign.h para obtener detalles).

ForeignTable *
GetForeignTable(Oid relid);

Esta función devuelve un objeto ForeignTable para la tabla externa con el OID dado. Un objeto ForeignTable contiene propiedades de la tabla externa (consulta foreign/foreign.h para obtener detalles).

List *
GetForeignColumnOptions(Oid relid, AttrNumber attnum);

Esta función devuelve las opciones de FDW por columna para la columna con el OID de tabla externa y número de atributo dados, en la forma de una lista de DefElem. Se devuelve NIL si la columna no tiene opciones.

Algunos tipos de objetos tienen funciones de búsqueda basadas en el nombre, además de las basadas en el OID:

ForeignDataWrapper *
GetForeignDataWrapperByName(const char *name, bool missing_ok);

This función devuelve un objeto ForeignDataWrapper para el adaptador de datos externos con el nombre dado. Si no se encuentra el adaptador, devuelve NULL si missing_ok es true, de lo contrario genera un error.

ForeignServer *
GetForeignServerByName(const char *name, bool missing_ok);

Esta función devuelve un objeto ForeignServer para el servidor externo con el nombre dado. Si no se encuentra el servidor, devuelve NULL si missing_ok is true, de lo contrario genera un error.