核心服务器导出了一些辅助函数,以便外部数据包装器的作者可以轻松访问与FDW相关的对象的属性,例如FDW选项。要使用任何这些函数,您需要在源文件中包含头文件foreign/foreign.h
。该头文件还定义了这些函数返回的结构类型。
ForeignDataWrapper * GetForeignDataWrapperExtended(Oid fdwid, bits16 flags);
此函数返回给定 OID 的外部数据包装器的 ForeignDataWrapper
对象。 ForeignDataWrapper
对象包含 FDW 的属性(有关详细信息,请参见 foreign/foreign.h
)。flags
是一个按位或的位掩码,指示一组额外的选项。它可以取值 FDW_MISSING_OK
,在这种情况下,对于未定义的对象,将向调用方返回 NULL
结果而不是错误。
ForeignDataWrapper * GetForeignDataWrapper(Oid fdwid);
此函数返回给定 OID 的外部数据包装器的 ForeignDataWrapper
对象。 ForeignDataWrapper
对象包含 FDW 的属性(有关详细信息,请参见 foreign/foreign.h
)。
ForeignServer * GetForeignServerExtended(Oid serverid, bits16 flags);
此函数返回给定 OID 的外部服务器的 ForeignServer
对象。 ForeignServer
对象包含服务器的属性(有关详细信息,请参见 foreign/foreign.h
)。flags
是一个按位或的位掩码,指示一组额外的选项。它可以取值 FSV_MISSING_OK
,在这种情况下,对于未定义的对象,将向调用方返回 NULL
结果而不是错误。
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);
此函数返回给定外部表 OID 和属性编号的每列 FDW 选项,以 DefElem
列表的形式。如果列没有选项,则返回 NIL。
某些对象类型除了基于 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,否则引发错误。
如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用此表单报告文档问题。