Synopsis

Description

CREATE PROTOCOL associates a data access protocol name with call
handlers that are responsible for reading from and writing data to an external data
source.

The CREATE PROTOCOL must specify either a read call handler or a
write call handler. The call handlers specified in the CREATE
PROTOCOL command must be defined in the database.

The protocol name can be specified in an CREATE EXTERNAL TABLE
command.

For information about creating and enabling a custom data access protocol, see
"Example Custom Data Access Protocol" in the Greenplum Database Administrator
Guide.

Parameters

TRUSTED

A noise word.

name

The name of the data access protocol. The protocol name is case sensitive.
The name must be unique among the protocols in the database.

readfunc= 'read_call_handler'

The name of a previously registered function that Greenplum Database calls
to read data from an external data source. The command must specify either a
read call handler or a write call handler.

writefunc= 'write_call_handler'

The name of a previously registered function that Greenplum Database calls
to write data to an external data source. The command must specify either a
read call handler or a write call handler.

validatorfunc='validate_handler'

An optional validator function that validates the URL specified in the
CREATE EXTERNAL TABLE command.

Notes

Greenplum Database installs the custom protocols file,
gpfdist, gpfdists, and gphdfs
by default. Optionally, the s3 protocol can be installed.

Any shared library that implements a data access protocol must be located in the same
location on all Greenplum Database segment hosts. For example, the shared library
can be in a location specified by the operating system environment variable
LD_LIBRARY_PATH on all hosts. You can also specify the location
when you define the handler function. For example, when you define the
s3 protocol in the CREATE PROTOCOL command,
you specify $libdir/gps3ext.so as the location of the shared
object, where $libdir is located at
$GPHOME/lib.