Postgresql 中文操作指南

CREATE FOREIGN DATA WRAPPER

CREATE FOREIGN DATA WRAPPER — 定义新的外国数据包装器

Synopsis

CREATE FOREIGN DATA WRAPPER name
    [ HANDLER handler_function | NO HANDLER ]
    [ VALIDATOR validator_function | NO VALIDATOR ]
    [ OPTIONS ( option 'value' [, ... ] ) ]

Description

CREATE FOREIGN DATA WRAPPER 创建新的外国数据包装器。定义外国数据包装器的用户将成为其所有者。

外国数据包装器名称在数据库中必须是唯一的。

只有超级用户才能创建外国数据包装器。

Parameters

  • name

    • 要创建的外国数据包装器的名称。

  • HANDLER _handler_function_

    • handler_function 是之前注册过的函数的名称,它将被调用以检索外国表的执行函数。处理程序函数不能接受任何参数,其返回类型必须是 fdw_handler

    • 可以创建一个不带处理程序函数的外国数据包装器,但使用此类包装器的外国表只能被声明,而不能被访问。

  • VALIDATOR _validator_function_

    • validator_function 是之前注册过的函数的名称,该函数将被调用来检查提供给外国数据包装器的通用选项,以及使用该外国数据包装器的外国服务器、用户映射和外国表的选项。如果没有指定验证函数或 NO VALIDATOR ,那么将在创建时不检查选项。(根据实现情况,外国数据包装器可能会在运行时忽略或拒绝无效的选项规范。)验证函数必须带有两个参数:一个类型为 text[] (其中包含存储在系统目录中的选项数组),另一个类型为 oid (它将是包含选项的系统目录的 OID)。将忽略返回类型;函数应使用 ereport(ERROR) 函数报告无效的选项。

  • OPTIONS ( _option ' value ' [, …… ] )_

    • 此子句具体说明新外来数据包装程序的选项。允许的选项名称和值是针对每个外来数据包装程序的,并且在使用外来数据包装程序验证函数验证之后才能使用。选项名称必须是唯一的。

Notes

PostgreSQL 的外来数据功能仍在积极开发中。对查询的优化还是原始的(而且大多也留给包装程序)。因此,未来还有相当大的性能提升的空间。

Examples

创建无用的外来数据包装程序 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');

Compatibility

CREATE FOREIGN DATA WRAPPER 符合 ISO/IEC 9075-9(SQL/MED), HANDLERVALIDATOR 子句是扩展名且标准子句 LIBRARYLANGUAGE 未在 PostgreSQL 中实施这一例外情况除外。

但是,请注意,SQL/MED 功能作为一个整体尚未符合。