Foreign Data Wrapper Helper Functions
Foreign Data Wrapper Helper Functions
Several helper functions are exported from the core server so that authors of foreign data wrappers can get easy access to attributes of FDW-related objects, such as FDW options. To use any of these functions, you need to include the header file foreign/foreign.h in your source file. That header also defines the struct types that are returned by these functions.
ForeignDataWrapper *
GetForeignDataWrapperExtended(Oid fdwid, bits16 flags);
ForeignDataWrapper object for the foreign-data wrapper with the given OID. A ForeignDataWrapper object contains properties of the FDW (see foreign/foreign.h for details). flags is a bitwise-or'd bit mask indicating an extra set of options. It can take the value FDW_MISSING_OK, in which case a NULL result is returned to the caller instead of an error for an undefined object.
ForeignDataWrapper *
GetForeignDataWrapper(Oid fdwid);
ForeignDataWrapper object for the foreign-data wrapper with the given OID. A ForeignDataWrapper object contains properties of the FDW (see foreign/foreign.h for details).
ForeignServer *
GetForeignServerExtended(Oid serverid, bits16 flags);
ForeignServer object for the foreign server with the given OID. A ForeignServer object contains properties of the server (see foreign/foreign.h for details). flags is a bitwise-or'd bit mask indicating an extra set of options. It can take the value FSV_MISSING_OK, in which case a NULL result is returned to the caller instead of an error for an undefined object.
ForeignServer *
GetForeignServer(Oid serverid);
ForeignServer object for the foreign server with the given OID. A ForeignServer object contains properties of the server (see foreign/foreign.h for details).
UserMapping *
GetUserMapping(Oid userid, Oid serverid);
UserMapping object for the user mapping of the given role on the given server. (If there is no mapping for the specific user, it will return the mapping for PUBLIC, or throw error if there is none.) A UserMapping object contains properties of the user mapping (see foreign/foreign.h for details).
ForeignTable *
GetForeignTable(Oid relid);
ForeignTable object for the foreign table with the given OID. A ForeignTable object contains properties of the foreign table (see foreign/foreign.h for details).
List *
GetForeignColumnOptions(Oid relid, AttrNumber attnum);
DefElem. NIL is returned if the column has no options.
Some object types have name-based lookup functions in addition to the OID-based ones:
ForeignDataWrapper *
GetForeignDataWrapperByName(const char *name, bool missing_ok);
ForeignDataWrapper object for the foreign-data wrapper with the given name. If the wrapper is not found, return NULL if missing_ok is true, otherwise raise an error.
ForeignServer *
GetForeignServerByName(const char *name, bool missing_ok);
ForeignServer object for the foreign server with the given name. If the server is not found, return NULL if missing_ok is true, otherwise raise an error.