创建外部数据包装器

创建外部数据包装器—定义新的外部数据包装器

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 *是先前注册的函数的名称,将调用该函数来检查提供给外部数据包装程序的通用选项,以及使用外部数据包装程序的外部服务器,用户 Map 和外部表的选项。如果未指定验证器功能或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子句是 extensions,而标准子句LIBRARYLANGUAGE不在 PostgreSQL 中实现。

但是请注意,整个 SQL/MED 功能尚未符合要求。

See Also

更改外部数据包装器, 丢弃外来数据包装器, CREATE SERVER, 创建用户 Map, 创建外表