学习PostgreSQL的FDW(#5)-辅助函数介绍
PG核心服务器提供了多个辅助函数,是外部包装器的开发者们能很容易地访问到FDW相关对象的属性,例如FDW选项。使用这些函数,只需在源文件中引入foreign/foreign.h头文件即可。
函数 | 代码 | 说明 |
---|---|---|
GetForeignDataWrapper | ForeignDataWrapper * GetForeignDataWrapper(Oid fdwid); | 为具有给定 OID 的外部数据包装器返回一个ForeignDataWrapper对象。一个ForeignDataWrapper对象包含该FDW的特性 |
GetForeignServer | ForeignServer * GetForeignServer(Oid serverid); | 为一个具有给定 OID 的外部服务器返回ForeignServer对象。一个ForeignServer对象包含该服务器的特性 |
GetUserMapping | UserMapping * GetUserMapping(Oid userid, Oid serverid); | 为在给定服务器上的给定角色的用户映射返回UserMapping对象(如果指定用户没有映射,它将返回PUBLIC的映射,如果也没有则抛出错误)。一个UserMapping对象包含该用户映射的特性 |
GetForeignTable | ForeignTable * GetForeignTable(Oid relid); | 为一个具有给定 OID 的外部表返回ForeignTable对象。一个ForeignTable对象包含该外部表的特性 |
GetForeignColumnOptions | List * GetForeignColumnOptions(Oid relid, AttrNumber attnum); | 为一个具有给定外部表 OID 和属性号的列返回针对每一列的FDW选项,形式为一个DefElem列表。如果该列没有选项则返回 NIL。 |
GetForeignDataWrapperByName | ForeignDataWrapper GetForeignDataWrapperByName(const char name, bool missing_ok); | 为一个具有给定名称的外部数据包装器返回ForeignDataWrapper对象。如果包装器没有找到,在missing_ok为真时返回 NULL,否则抛出一个错误。 |
GetForeignServerByName | ForeignServer GetForeignServerByName(const char name, bool missing_ok); | 为一个具有给定名称的外部服务器返回ForeignServer对象。如果该服务器没有被找到,在missing_ok为真时返回 NULL,否则抛出一个错误。 |