이 부록과 다음 부록에는 PostgreSQL 배포판의 contrib 디렉토리에 포함 되어 있는 확장 모듈과 확장 응용 프로그램들에 대한 정보를 다룬다. 여기서는 소개하고 있는 포팅 도구들, 분석 도구들, 기본 PostgreSQL 시스템에 포함되어 있지 않은 부가 모듈들은 실험적이거나, 범용적이지 않은 것들이지만, 유용하게 쓰일 수 있으며, 충분히 안정적이다.
여기서는 contrib 안에 있는 서버 확장 모듈들에 대해서 소개한다. 부가 확장 응용 프로그램에 대해서는 부록 G에서 소개한다.
소스 배포판에서 이 확장 모듈들은 자동으로 만들어지지 않는다. 만들려면, "world" 타켓을 지정해야한다 (단계 2 참조). contrib 디렉토리에서 직접 만들고 설치하려면:
make make install
이 작업은 먼저 configure 명령으로 빌드 환경이 구축되어야 한다. 각 개별 모듈을 각각 설치하려면, 그 해당 디렉토리로 이동해서 같은 작업을 하면 된다. 또한 많은 모듈들이 단위 테스트를 지원함으로 이 작업을 하려면 다음 명령어로 진행할 수 있다:
make check
설치 전 테스트는 다음과 같이 한다:
make installcheck
이 작업은 PostgreSQL 서버가 실행 중이어야 한다.
미리 컴파일 된 패키지들로 이 모듈을 설치하려면, PostgreSQL 패키지들 가운데, postgresql-contrib 이름으로 패키지 이름으로 대부분 배포된다. 이것을 설치하면 된다.
많은 모듈들이 새로운 사용자 정의 함수, 연산자, 자료형을 제공한다. 이 모듈에서 제공하는 이것들을 사용하려면, 코드에서 설치를 끝내고 나서 데이터베이스 시스템에 새로운 SQL 객체들을 등록해 주어야 사용할 수 있다. PostgreSQL 9.1 이후 버전부터는 이런 일련의 작업을 CREATE EXTENSION 명령어로 손쉽게 할 수 있다. 새로운 확장 모듈을 해당 데이터베이스 설치하려면, 데이터베이스 접속 후 다음과 같은 명령을 실행하면 된다:
CREATE EXTENSION 확장모듈이름;
이 명령은 데이터베이스 관리자 권한으로만 실행 할 수 있다. 이 작업은 현재 접속해 있는 데이터베이스에 한정 되어 작동한다. 필요하다면, 서버에 있는 여러 데이터베이스에 해당 모듈을 사용하고싶다면, 각각 이 명령을 실행해 주거나, template1 데이터베이스에 설치해서 새로 만들어지는 데이터베이스에 대해서는 자동으로 설치되도록 할 수도 있을 것이다.
많은 모듈들은 설치될 스키마를 직접 지정할 수 있도록 한다. 이렇게 하려면, CREATE EXTENSION 명령 구문에, SCHEMA 스키마이름 형태로 추가해 주면 된다. 이 값을 지정하지 않으면, public 스키마에 필요한 객체들이 만들어진다.
9.1 버전 이전 서버에 덤프한 데이터베이스를 현재 버전으로 가져와서 사용하고 있다면, 9.1 이후 버전부터 사용한 extension 객체와의 의존성이 없어 ALTER EXTENSION나 DROP EXTENSION 명령으로 관리할 수 없다. 이런 경우, 다음 명령으로 이미 설치 되어 있는 확장 모듈용 객체들을 해당 확장 모듈로 묶어 줄 수 있다.
CREATE EXTENSION 모듈이름 FROM unpackaged;
이 작업을 하게 되면, 9.1 이후 버전에서 새로 확장 모듈을 설치한 것 처럼 확장 모듈과 그에 속한 객체들의 의존성을 맞춰준다. 그 뒤, ALTER EXTENSION 명령을 사용할 수 있게 된다. 확장 기능을 생성, 관리 하는 것에 대한 자세한 사항은 36.15절을 참조 하라.
하나 주의할 사항은 몇 확장 모듈은 shared_preload_libraries 환경 설정 값으로 해당 라이브러리가 서버 실행 시 먼저 로딩 되어야하는 경우도 있다. 이런 모듈들은 개별 모듈 설명서에서 소개하고 있으니, 그 부분을 참고 해야한다.