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
,其處理函式為 file_fdw_handler
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 功能尚未完全符合標準。
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步闡明的內容,請使用 此表格 來報告文件問題。