17.14. 独自のオプション

この機能、追加モジュール(手続き言語など)によって追加されるPostgreSQLが識別できないパラメータを使えるように設計されたものです。 これにより追加モジュールは標準の方法で構成されます。

custom_variable_classesstring

この変数は独自変数に使用される1つ以上のクラス名をカンマで区切って指定します。 独自変数は通常のPostgreSQLで適切に認識できない変数であり、いくつかの追加モジュールで使用されるものです。 こうした変数はクラス名、ドット、変数名から構成された名前を持たなければなりません。 custom_variable_classesは、特定のインストレーションで使用される全てのクラス名を指定します。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定可能です。

postgresql.confで独自変数を設定する際に難しい点は、このファイルが追加モジュールがロードされる前に読み取られなければならず、そのため独自変数は普通未知のものとして拒絶されてしまう点です。 custom_variable_classesが設定されている場合、サーバは指定されたクラス内の任意の変数定義を受け付けるようになります。 これらの変数はプレースホルダとして扱われ、変数を定義したモジュールがロードされるまで何も機能を持ちません。 指定クラス用のモジュールがロードされると、そのクラス名に対する適切な変数定義を追加し、プレースホルダの値をその定義に従って変換します。 また、そのクラス用のプレースホルダが(おそらくは設定変数の書き間違いのために)残っていた場合に警告を発します。

以下に独自変数を含むpostgresql.confの例を示します。

custom_variable_classes = 'plr,plperl'
plr.path = '/usr/lib/R'
plperl.use_strict = true
plruby.use_strict = true        # エラー発生:不明なクラス名