Defines a new foreign-data wrapper.
CREATE FOREIGN DATA WRAPPER <name>
[ HANDLER <handler_function> | NO HANDLER ]
[ VALIDATOR <validator_function> | NO VALIDATOR ]
[ OPTIONS ( [ mpp_execute { 'coordinator' | 'any' | 'all segments' } [, ] ] <option> '<value>' [, ... ] ) ]
CREATE FOREIGN DATA WRAPPER
creates a new foreign-data wrapper in the current database. The user who defines the foreign-data wrapper becomes its owner.
The foreign-data wrapper name must be unique within the database.
Only superusers can create foreign-data wrappers.
fdw_handler
.
NO VALIDATOR
is specified, Greenplum Database does not check options at creation time. (Depending upon the implementation, foreign-data wrappers may ignore or reject invalid options at runtime.)
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.
ereport(ERROR)
function.
A Greenplum Database-specific option that identifies the host from which the foreign-data wrapper reads or writes data:
coordinator
(the default)—Read or write data from the coordinator host.any
—Read data from either the coordinator host or any one segment, depending on which path costs less.all segments
—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.NoteGreenplum Database supports parallel writes to foreign tables only when you set
mpp_execute 'all segments'
.
Support for the foreign-data wrapper mpp_execute
option, and the specific modes, is foreign-data wrapper-specific.
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.
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 FOREIGN DATA WRAPPER dummy;
Create a foreign-data wrapper named file
with a handler function named file_fdw_handler
:
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
Create a foreign-data wrapper named mywrapper
that includes an option:
CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
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.
ALTER FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER, CREATE FOREIGN TABLE, CREATE SERVER, CREATE USER MAPPING
Parent topic: SQL Commands