PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 53. 写一个外部数据封装器 | 下一页

# 53.3. 外数据封装辅助函数

从核心服务器输出一些辅助函数，因此外数据封装作者可以很容易访问FDW-相关对象的属性，比如FDW选项。 为了使用任何这些函数，你需要包含你的源文件中的头文件`foreign/foreign.h`。 该头文件也定义了这些函数返回的结构体类型。

    ForeignDataWrapper *
    GetForeignDataWrapper(Oid fdwid);

该函数为给定OID的外数据封装返回一个`ForeignDataWrapper`对象。 `ForeignDataWrapper`对象包含 FDW的属性 (参阅`foreign/foreign.h`获取更多详情）。

    ForeignServer *
    GetForeignServer(Oid serverid);

该函数为给定OID的外服务器返回一个`ForeignServer`对象。 `ForeignServer`对象包含 服务器的属性 (参阅`foreign/foreign.h`获取更多详情）。

    UserMapping *
    GetUserMapping(Oid userid, Oid serverid);

该函数为给定服务器上给定角色的用户映射返回`UserMapping`对象。 （如果没有特定用户映射，那么它将返回`PUBLIC`映射，或者如果什么没有，则抛出错误。） `UserMapping`对象包含用户映射属性(参阅`foreign/foreign.h` 获取详情）。

    ForeignTable *
    GetForeignTable(Oid relid);

该函数为给定OID外表返回`ForeignTable`对象。 `ForeignTable`对象包含外表属性(参阅 `foreign/foreign.h`获取更多详情)。

    List *
    GetForeignColumnOptions(Oid relid, AttrNumber attnum);

该函数返回在列表`DefElem`形式中具有给定外表OID和属性数每列FDW选项， 如果该列没有选项，那么返回零。

一些对象类型除了基于OID的那个有基于名字的查找函数：

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

该函数返回具有给定名称的外数据封装的`ForeignDataWrapper`对象。 如果没有找到封装，如果missing_ok是真的，那么返回NULL，否则抛出错误。

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

该函数为给定名字的外服务器返回`ForeignServer`对象。 如果没有找到服务器，如果missing_ok是真的，那么返回NULL，否则抛出错误。

上一页 | 起始页 | 下一页
外数据封装回调程序 | 上一级 | 外数据封装查询规划