CREATE FOREIGN DATA WRAPPER — 새 외부 자료 싸개 정의
CREATE FOREIGN DATA WRAPPER이름
[ HANDLER핸들러함수
| NO HANDLER ] [ VALIDATOR유효성검사함수
| NO VALIDATOR ] [ OPTIONS (옵션
'값
' [, ... ] ) ]
CREATE FOREIGN DATA WRAPPER
명령은
새 외부 자료 싸개를 만든다.
이 외부 자료 싸개를 만드는 사용자가 그것의 소유주가 된다.
해당 데이터베이스에서 지정한 이름의 외부 자료 싸개는 하나만 있어야 한다.
외부 자료 싸개는 슈퍼유저만 만들 수 있다.
이름
만들 외부 자료 싸개 이름.
HANDLER 핸들러함수
핸들러함수
는
외부 테이블을 사용할 때 내부적으로 작업하는 내용이 담긴 함수다.
이 함수는 외부 자료 싸개를 만들기 전에 먼저 해당 데이터베이스에
등록되어 있어야 한다.
입력 인자는 없으며, 반환 자료형은 fdw_handler
자료형이어야
한다.
이 핸들러 함수를 지정하지 않고 외부 자료 싸개를 만들 수는 있지만, 이 경우 외부 테이블 정의만 할 수 있지, 그 테이블을 사용할 수는 없다.
VALIDATOR 유효성검사함수
유효성검사함수
는
외부 자료 싸개에서 제공하는 일반 옵션의 유효성을 검사하는 함수 이름이다.
이 함수는 외부 자료 싸개를 만들기 전에 먼저 해당 데이터베이스에
등록되어 있어야 한다.
이 함수는 외부 자료 싸개를 이용하는
사용자 맵핑, 외부 서버의 옵션들, 외부 테이블의 유효성을 검사한다.
유효성 검사 함수를 지정하지 않거나, NO VALIDATOR
로 지정하면, 외부 자료 싸개를 이용하는 각 개체들을 만들 때,
유효성 검사를 하지 않는다. (각 외부 자료 싸개에 따라
각 개체들을 사용할 때 이 유효성 관련에 문제가 있는 경우
오류로 처리하거나 무시한다.)
유효성 검사 함수의 입력 인자는 두개를 사용하는데,
첫번째는 시스템 카탈로그 안에 저장되어 있는 옵션들의 배열인
text[]
자료형, 두번째는 그 자료가 있는 시스템 카탈로그의
OID를 지정하는 oid
자료형이다.
반환 자료형은 무시한다. 잘못된 옵션에 대한 오류 처리는
ereport(ERROR)
함수를 사용해야 한다.
OPTIONS ( 옵션
'값
' [, ... ] )
새 외부 자료 싸개에서 사용할 옵션을 지정한다. 여기서 사용할 수 있는 옵션과 그 값의 유효성은 외부 자료 싸개 유효성 검사 함수가 담당한다. 같은 옵션 이름은 한 명령에서 여러 번 사용할 수 없다.
PostgreSQL 외부 자료 처리 기능은 여전히 개발 중이다. 쿼리 최적화 부분은 대부분 싸개가 모두 미흡하다. 그래서, 앞으로 성능 관련 부분은 많이 개선될 가능성이 있다.
dummy
이름의 쓸모 없는 외부 자료 싸개 만들기:
CREATE FOREIGN DATA WRAPPER dummy;
file_fdw_handler
핸들러 함수를 이용하는
file
외부 자료 싸개 만들기:
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
옵션을 지정하는 외부 자료 싸개:
CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
CREATE FOREIGN DATA WRAPPER
구문은 ISO/IEC
9075-9 (SQL/MED) 구문은 준수한다. 단 HANDLER
VALIDATOR
옵션은 확장 기능이고,
LIBRARY
, LANGUAGE
옵션은
PostgreSQL에서 아직 지원하지 않는다.
하지만, 아직까지는 SQL/MED 모든 기능에 대해 호환하지는 않는다.