核心伺服器匯出幾個輔助函數,以便外部資料包裝器的作者可以輕鬆存取與 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,否則引發錯誤。
如果您在文件中發現任何不正確、與您使用特定功能的體驗不符或需要進一步澄清的地方,請使用此表單來報告文件問題。