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 *
GetForeignDataWrapper(Oid fdwid);

This function returns a 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 *
GetForeignServer(Oid serverid);

This function returns a 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);

This function returns a 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);

This function returns a 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);

This function returns the per-column FDW options for the
column with the given foreign table OID and attribute number, in
the form of a list of 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:

Submit correction

If you see anything in the documentation that is not correct, does not match
your experience with the particular feature or requires further clarification,
please use
this form
to report a documentation issue.