この機能、追加モジュール(手続き言語など)によって追加されるPostgreSQLが識別できないパラメータを使えるように設計されたものです。 これにより追加モジュールは標準の方法で構成されます。
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 # エラー発生:不明なクラス名