多个助手函数被从核心服务器输出,这样外部数据包装器的作者们可以很容易访问到FDW相关对象的属性,例如FDW选项。要使用任何其中一个函数,你需要在你的源文件中包括头文件foreign/foreign.h
。这个头也定义了被这些函数返回的结构类型。
ForeignDataWrapper *
GetForeignDataWrapperExtended(Oid fdwid, bits16 flags);
此功能返回具有给定 OID 的外数据包装器的ForeignDataWrapper
对象。 ForeignDataWrapper
对象包含 FDW 的属性(详细信息请参阅foreign/foreign.h
)。 flags
是一个 bitwise-or"d位掩码,指示一组外加的选项集。
它可以取值FDW_MISSING_OK
,在这种情况下NULL
结果将返回给调用方,而不是返回错误给未定义的对象。
ForeignDataWrapper *
GetForeignDataWrapper(Oid fdwid);
这个函数为具有给定 OID 的外部数据包装器返回一个ForeignDataWrapper
对象。一个ForeignDataWrapper
对象包含该FDW的特性(详见foreign/foreign.h
)。
ForeignServer *
GetForeignServerExtended(Oid serverid, bits16 flags);
此功能返回具有给定 OID 的外数据包装器的ForeignServer
对象。 ForeignServer
对象包含 FDW 的属性(详细信息请参阅foreign/foreign.h
)。 flags
是一个 bitwise-or"d位掩码,指示一组外加的选项集。
它可以取值FDW_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,否则抛出一个错误。
视图collations包含在当前数据库中可用的排序规则。表36.8.collations 列列类型描述 collation_catalogsql_identifier包含该排序...
目录pg_largeobject保存构成“大对象”的数据。一个大对象在被创建时会被分配一个OID。每个大对象被分解成段或“页”,以便小到...
视图pg_shadow的存在是为了向后兼容:它模拟了在PostgreSQL版本8.1之前的一个系统目录。它显示pg_authid中所有被标记为rolcanlog...
分屏操作分屏何为分屏..请看此图为何要分屏用过 linux 的小伙伴都知道,分屏耍的好,可以提高工作效率的。如何获取 Atom 的分屏命...
从v2版本开始,项目的创建不再依赖远端获取,仓库模板已经通过资源管理的方式内置到了工具二进制文件中,因此项目创建速度非...
GoFrame是一款模块化、高性能、企业级的Go基础开发框架。GoFrame不是一款WEB/RPC框架,而是一款通用性的基础开发框...
如果打印error变量,打印出error对应的堆栈而不是日志方法调用时的堆栈通过以下方法只会打印error的字符串描述信息,并且堆...
NewOption自定义配置的错误对象创建说明:用于自定义配置的错误对象创建。格式:NewOption(option Option) error示例:func Exam...