この付録にはPostgreSQL配布物のcontribディレクトリにあるモジュールに関する情報を記載します。 ここには、移植用のツール、解析ユーティリティ、限定した利用者を対象にしていること、または、主ソースツリーに含めるには実験的すぎることが主な理由でPostgreSQLのコアシステムにはないプラグイン機能が含まれます。 これはその有用性を妨げるものではありません。
ソース配布から構築する場合、"world"を対象に構築しない限り、これらのモジュールは自動的に構築されません(ステップ2参照)。 以下をconfigureを実行した後のソースツリー内のcontribディレクトリで実行することで、これらすべてを構築しインストールすることができます。
gmake gmake install
選択した1つのモジュールのみを構築しインストールするには、そのモジュールのディレクトリで同じコマンドを行ってください。 多くのモジュールには、PostgreSQLサーバを実行している場合に以下のように実行することができるリグレッション試験があります。
gmake installcheck
(gmake checkはサポートされていないことに注意してください。 試験を行うためには運用状態のデータベースサーバが必要です。 また、試験対象のモジュールを構築しインストールしなければなりません。)
PostgreSQLのパッケージ化されたバージョンを使用している場合は通常、例えばpostgresql-contribのような別途副パッケージとしてこれらのモジュールが利用可能です。
多くのモジュールは新しいユーザ定義関数、演算子、型を提供します。 こうしたモジュールの1つを使用できるようにするためには、コードをインストールした後に、新しいオブジェクトをデータベースサーバに登録する必要があります。 PostgreSQL 9.1以降では、これはCREATE EXTENSIONコマンドを実行することで行われます。 新しいデータベースでは、以下のように簡単に行うことができます。 以下に例を示します。
CREATE EXTENSION module_name;
このコマンドはデータベーススーパーユーザにより実行されなければなりません。 これは現在のデータベースの中にのみ新しいオブジェクトを登録します。 このため、そのモジュールの機能を利用可能にさせたいデータベース毎にこのコマンドを実行しなければなりません。 その拡張が今後作成されるデータベースにデフォルトでコピーされるようにtemplate1データベースに対して実行する方法もあります。
多くのモジュールはユーザが選択したスキーマ内にそのオブジェクトをインストールすることができます。 これを行うためにはCREATE EXTENSIONコマンドにSCHEMA schema_nameを追加してください。 デフォルトでは、現在の作成対象スキーマ、通常はpublic内に格納されます。
9.1より前のバージョンのPostgreSQLからダンプしてリストアすることでデータベースができあがった場合、もし9.1より前のバージョンのモジュールを使用していたのであれば、代わりに以下を行わなければなりません。
CREATE EXTENSION module_name FROM unpackaged;
これは9.1より前のモジュール内のオブジェクトを適切な拡張オブジェクトに更新します。 今後のモジュールの更新はALTER EXTENSIONにより管理されます。 拡張の更新に関する詳細については項35.15を参照してください。