这个特性被设计用来由附加模块向PostgreSQL添加通常不为系统知道的参数(例如过程语言)。这允许使用标准方法配制扩展模块。
自定义选项有两部分名称:一个扩展名,然后是一个句点,再然后是正确的参数名,就像 SQL 中的合格名称。一个例子是plpgsql.variable_conflict
。
因为自定义选项可能需要在没有载入相关扩展模块的进程中设置,PostgreSQL将接收任意两部分参数名的设置。这种变量被认为是占位符并且在定义它们的模块被载入之前不会有实际功能。当一个扩展模块被载入,它将加入它的变量定义、根据那些定义转换任何占位符值并且对以其扩展名开始的任意未识别占位符发出警告。