CREATE FOREIGN DATA WRAPPER

    Description

    creates a new foreign-data wrapper in the current database. The user who defines the foreign-data wrapper becomes its owner.

    Only superusers can create foreign-data wrappers.

    name

    The name of the foreign-data wrapper to create. The name must be unique within the database.

    HANDLER handler_function

    The name of a previously registered function that Greenplum Database calls to retrieve the execution functions for foreign tables. hander_function must take no arguments, and its return type must be fdw_handler.

    It is possible to create a foreign-data wrapper with no handler function, but you can only declare, not access, foreign tables using such a wrapper.

    VALIDATOR validator_function

    validator_function must take two arguments: one of type text[], which contains the array of options as stored in the system catalogs, and one of type oid, which identifies the OID of the system catalog containing the options.

    The return type is ignored; validator_function should report invalid options using the ereport(ERROR) function.

    OPTIONS ( option ‘value’ [, … ] )

    The options for the new foreign-data wrapper. Option names must be unique. The option names and values are foreign-data wrapper-specific and are validated using the foreign-data wrappers’ validator_function.

    mpp_execute { ‘master’ | ‘any’ | ‘all segments’ }

    An option that identifies the host from which the foreign-data wrapper reads or writes data:

    • master (the default)—Read or write data from the master host.
    • —Read or write data from all segments. To support this option value, the foreign-data wrapper must have a policy that matches the segments to data.

      > Note Greenplum Database supports parallel writes to foreign tables only when you set mpp_execute 'all segments'.

    The mpp_execute option can be specified in multiple commands: CREATE FOREIGN TABLE, CREATE SERVER, and CREATE FOREIGN DATA WRAPPER. The foreign table setting takes precedence over the foreign server setting, followed by the foreign-data wrapper setting.

    Notes

    The foreign-data wrapper functionality is still under development. Optimization of queries is primitive (and mostly left to the wrapper).

    Create a useless foreign-data wrapper named dummy:

    Create a foreign-data wrapper named with a handler function named file_fdw_handler:

    Create a foreign-data wrapper named mywrapper that includes an option:

    Compatibility

    CREATE FOREIGN DATA WRAPPER conforms to ISO/IEC 9075-9 (SQL/MED), with the exception that the HANDLER and VALIDATOR clauses are extensions, and the standard clauses LIBRARY and LANGUAGE are not implemented in Greenplum Database.

    Note, however, that the SQL/MED functionality as a whole is not yet conforming.

    , DROP FOREIGN DATA WRAPPER, , CREATE USER MAPPING