选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

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

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。