18.14. 自定义的选项

这个特性用来允许那些由附加模块添加(比如过程语言)的选项,通常 PostgreSQL并不知道它们。这样,附加的模块 就可以用标准的方式配置。

custom_variable_classes(string)

这个变量以逗号分隔的列表声明一个或多个用于自定义变量的类名称。自定义 变量通常是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        # generates error: unknown class name