CREATE FOREIGN DATA WRAPPER — definir un nuevo envolvedor de datos foráneos (foreign-data wrapper)
CREATE FOREIGN DATA WRAPPERnombre[ HANDLERfunción_manejadora| NO HANDLER ] [ VALIDATORfunción_validadora| NO VALIDATOR ] [ OPTIONS (opción'valor' [, ... ] ) ]
CREATE FOREIGN DATA WRAPPER crea un nuevo
envolvedor de datos foráneos. El usuario que define un envolvedor de datos foráneos
se convierte en su propietario.
El nombre del envolvedor de datos foráneos debe ser único dentro de la base de datos.
Solo los superusuarios pueden crear envolvedores de datos foráneos.
nombreEl nombre del envolvedor de datos foráneos que se va a crear.
HANDLER función_manejadorafunción_manejadora es el
nombre de una función previamente registrada que será llamada para
recuperar las funciones de ejecución para las tablas foráneas.
La función manejadora no debe recibir argumentos, y
su tipo de retorno debe ser fdw_handler.
Es posible crear un envolvedor de datos foráneos sin una función manejadora, pero las tablas foráneas que utilicen dicho envolvedor solo podrán ser declaradas, no accedidas.
VALIDATOR función_validadorafunción_validadora
es el nombre de una función previamente registrada que será llamada para
verificar las opciones genéricas proporcionadas al envolvedor de datos foráneos, así
como las opciones para servidores foráneos, mapeos de usuarios y tablas foráneas
que utilicen el envolvedor de datos foráneos. Si no se especifica ninguna función validadora o
se indica NO VALIDATOR, las opciones no se verificarán en el
momento de la creación. (Los envolvedores de datos foráneos posiblemente ignoren o
rechacen especificaciones de opciones no válidas en tiempo de ejecución, según la
implementación). La función validadora debe recibir dos argumentos: uno de tipo
text[], que contendrá el array de opciones tal como se almacenan en los
catálogos del sistema, y otro de tipo oid, que será el OID del catálogo
del sistema que contiene las opciones. Se ignora el tipo de retorno; la función debe
informar de las opciones no válidas utilizando la función ereport(ERROR).
OPTIONS ( opción 'valor' [, ... ] )Esta cláusula especifica opciones para el nuevo envolvedor de datos foráneos. Los nombres y valores de opciones permitidos son específicos de cada envolvedor de datos foráneos y se validan mediante la función validadora del mismo. Los nombres de opciones deben ser únicos.
La funcionalidad de datos foráneos de PostgreSQL todavía está bajo desarrollo activo. La optimización de consultas es rudimentaria (y en su mayor parte también se deja al envolvedor). Por lo tanto, hay un margen considerable para futuras mejoras de rendimiento.
Crea un envolvedor de datos foráneos inútil llamado dummy:
CREATE FOREIGN DATA WRAPPER dummy;
Crea un envolvedor de datos foráneos llamado file con
la función manejadora file_fdw_handler:
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
Crea un envolvedor de datos foráneos llamado mywrapper con algunas
opciones:
CREATE FOREIGN DATA WRAPPER mywrapper
OPTIONS (debug 'true');
CREATE FOREIGN DATA WRAPPER cumple con el estándar ISO/IEC
9075-9 (SQL/MED), con la excepción de que las cláusulas HANDLER
y VALIDATOR son extensiones, y las cláusulas estándar
LIBRARY y LANGUAGE
no están implementadas en PostgreSQL.
Ten en cuenta, sin embargo, que la funcionalidad SQL/MED en su conjunto aún no es conforme.