CREATE FOREIGN DATA WRAPPER — 定義新的外部資料封裝器
CREATE FOREIGN DATA WRAPPERname
[ HANDLERhandler_function
| NO HANDLER ] [ VALIDATORvalidator_function
| NO VALIDATOR ] [ OPTIONS (option
'value
' [, ... ] ) ]
CREATE FOREIGN DATA WRAPPER
建立一個新的外部資料封裝器。定義外部資料封裝器的使用者會成為其擁有者。
外部資料封裝器名稱在資料庫中必須是唯一的。
只有超級使用者才能建立外部資料封裝器。
name
要建立的外部資料封裝器的名稱。
HANDLER handler_function
handler_function
是先前註冊的函數名稱,將被呼叫以檢索外部資料表的執行函數。處理函數不得帶任何引數,且其回傳型別必須是 fdw_handler
。
可以建立沒有處理函數的外部資料封裝器,但使用此類封裝器的外部資料表只能宣告,不能存取。
VALIDATOR validator_function
validator_function
是先前註冊的函數名稱,將被呼叫以檢查給定外部資料封裝器的泛型選項,以及使用外部資料封裝器的外部伺服器、使用者對應和外部資料表的選項。如果未指定驗證函數或 NO VALIDATOR
,則在建立時不會檢查選項。(外部資料封裝器可能會在執行時忽略或拒絕無效的選項規格,具體取決於實作。)驗證函數必須採用兩個引數:一個是 text[]
型別,其中包含儲存在系統目錄中的選項陣列;另一個是 oid
型別,它是包含選項的系統目錄的 OID。忽略回傳型別;該函數應使用 ereport(ERROR)
函數報告無效選項。
OPTIONS ( option
'value
' [, ... ] )
此子句指定新外部資料封裝器的選項。允許的選項名稱和值特定於每個外部資料封裝器,並使用外部資料封裝器的驗證函數進行驗證。選項名稱必須是唯一的。
PostgreSQL 的外部資料功能仍在積極開發中。查詢的優化很原始(並且大部分留給封裝器)。因此,未來在效能方面還有很大的改進空間。
建立一個無用的外部資料封裝器 dummy
CREATE FOREIGN DATA WRAPPER dummy;
建立一個帶有處理函數 file_fdw_handler
的外部資料封裝器 file
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
建立一個帶有一些選項的外部資料封裝器 mywrapper
CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
CREATE FOREIGN DATA WRAPPER
符合 ISO/IEC 9075-9 (SQL/MED),但 HANDLER
和 VALIDATOR
子句是擴充功能,且標準子句 LIBRARY
和 LANGUAGE
未在 PostgreSQL 中實作。
請注意,SQL/MED 功能整體而言尚未完全符合。
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。