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_functionhandler_function 是先前注册的函数的名称,该函数将被调用以检索外表的执行函数。该处理函数不得采用任何参数,并且其返回类型必须是 fdw_handler。
可以创建一个没有处理函数的外数据包装器,但使用此类包装器的外表只能声明,而不能访问。
VALIDATOR validator_functionvalidator_function 是先前注册的函数的名称,该函数将被调用以检查提供给外数据包装器的通用选项,以及使用外数据包装器的外部服务器、用户映射和外表的选项。如果没有指定验证器函数或 NO VALIDATOR,则在创建时不会检查选项。(外数据包装器可能会在运行时忽略或拒绝无效的选项规范,具体取决于实现。)验证器函数必须采用两个参数:一个类型为 text[],其中将包含存储在系统目录中的选项数组,另一个类型为 oid,其中将包含包含选项的系统目录的 OID。返回类型将被忽略;函数应使用 ereport(ERROR) 函数报告无效的选项。
选项 ( 选项 '值' [, ... ] )此子句为新的外部数据封装程序指定选项。允许的选项名称和值特定于每个外部数据封装程序,并使用外部数据封装程序的验证器函数进行验证。选项名称必须唯一。
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 功能作为一个整体尚未符合标准。
如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。