历史版本。 PostgreSQL 9.1 已结束支持。 2016-10-27. 请参阅 当前版本手册.
18.16. 自定义选项 #
这个特性被设计用来允许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