CREATE FOREIGN DATA WRAPPER — define um novo empacotador de dados estrangeiros
CREATE FOREIGN DATA WRAPPERnome[ HANDLERfunção_manipuladora| NO HANDLER ] [ VALIDATORfunção_validadora| NO VALIDATOR ] [ OPTIONS (opção'valor' [, ... ] ) ]
O comando CREATE FOREIGN DATA WRAPPER define um
novo empacotador de dados estrangeiros
[122].
O usuário que define o empacotador de dados estrangeiros se torna
o seu dono.
O nome do empacotador de dados estrangeiros deve ser único no banco de dados.
Somente os superusuários podem criar empacotadores de dados estrangeiros.
nomeO nome do empacotador de dados estrangeiros a ser criado.
HANDLER função_manipuladora
A função_manipuladora
é uma função previamente registrada que será chamada para recuperar
as funções de execução para tabelas estrangeiras.
A função manipuladora não deve receber argumentos, e seu tipo de dados
retornado deve ser fdw_handler.
É possível criar um empacotador de dados estrangeiros sem nenhuma função manipuladora, mas as tabelas estrangeiras que usam este empacotador só podem ser declaradas, e não acessadas.
VALIDATOR função_validadora
A função_validadora
é uma função previamente registrada que será chamada para
verificar as opções genéricas fornecidas ao empacotador de dados
estrangeiros, bem como as opções para os servidores estrangeiros,
mapeamentos de usuários e tabelas estrangeiras usando
o empacotador de dados estrangeiros.
Se nenhuma função validadora ou NO VALIDATOR
for especificado, as opções não serão verificadas no momento da
criação. (Os empacotadores de dados estrangeiros possivelmente
irão ignorar ou rejeitar as especificações de opções inválidas
em tempo de execução, dependendo da implementação.)
A função validadora deve receber dois argumentos:
um do tipo text[], contendo a matriz de opções
conforme armazenado nos catálogos do sistema,
e um do tipo oid, que será o OID do catálogo
do sistema contendo as opções.
O tipo de dados de retorno é ignorado; a função deverá relatar as
opções inválidas usando a função ereport(ERROR).
OPTIONS ( opção 'valor' [, ... ] )Esta cláusula especifica opções para o novo empacotador de dados estrangeiros. Os nomes e valores de opção permitidos são específicos para cada empacotador de dados estrangeiros, e são validados usando a função validadora do empacotador de dados estrangeiros. Os nomes das opções devem ser únicos.
A funcionalidade de dados estrangeiros do PostgreSQL continua em desenvolvimento ativo. A otimização de consultas é primitiva (e principalmente deixada para o empacotador também). Assim, há espaço considerável para futuras melhorias de desempenho. [123]. [124]
Criar o empacotador de dados estrangeiros inútil dummy:
CREATE FOREIGN DATA WRAPPER dummy;
Criar o empacotador de dados estrangeiros file,
com a função manipuladora file_fdw_handler:
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
Criar o empacotador de dados estrangeiros
meu_empacotador com algumas opções:
CREATE FOREIGN DATA WRAPPER meu_empacotador
OPTIONS (debug 'true');
O comando CREATE FOREIGN DATA WRAPPER
está em conformidade com o padrão
ISO/IEC 9075-9 (SQL/MED), com a exceção de que as cláusulas
HANDLER e VALIDATOR são
extensões, e as cláusulas LIBRARY e
LANGUAGE do padrão não são implementadas no
PostgreSQL.
Note, entretanto, que a funcionalidade SQL/MED ainda não está em conformidade na totalidade.
[122]
O módulo postgres_fdw fornece o
empacotador de dados estrangeiros postgres_fdw,
que pode ser usado para acessar dados armazenados em servidores
PostgreSQL externos. (N. T.)