★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

18.14. 独自のオプション

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

custom_variable_classes (string)

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

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

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

custom_variable_classes = 'plpgsql,plperl'
plpgsql.variable_conflict = use_variable
plperl.use_strict = true
plruby.use_strict = true        # エラー生成: 不明なクラス名