核心伺服器匯出了幾個輔助函式,以便外部資料包裝器 (FDW) 的作者可以方便地訪問 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);
此函式以 DefElem
列表的形式返回具有給定外部表 OID 和屬性編號的列的每個列 FDW 選項。如果該列沒有選項,則返回 NIL。
除基於 OID 的查詢函式外,某些物件型別還具有基於名稱的查詢函式。
ForeignDataWrapper * GetForeignDataWrapperByName(const char *name, bool missing_ok);
此函式返回具有給定名稱的外部資料包裝器的 ForeignDataWrapper
物件。如果找不到該包裝器,則當 missing_ok 為 true 時返回 NULL,否則丟擲錯誤。
ForeignServer * GetForeignServerByName(const char *name, bool missing_ok);
此函式返回具有給定名稱的外部伺服器的 ForeignServer
物件。如果找不到該伺服器,則當 missing_ok 為 true 時返回 NULL,否則丟擲錯誤。
如果您在文件中發現任何不正確之處、與您對特定功能的體驗不符之處或需要進一步澄清之處,請使用 此表單 報告文件問題。