此功能经过设计,允许添加附加模块(如过程语言)以添加PostgreSQL通常不知道的参数。这允许以标准方式配置扩展模块。
自定义选项具有两部分名称:一个扩展名,后跟一个点,然后是参数名称本身,很像 SQL 中的限定名。例如 plpgsql.variable_conflict
。
由于自定义选项可能需要在没有加载相关扩展模块的进程中设置,PostgreSQL 将接受对任何两部分参数名称的设置。此类变量被视为占位符,在定义它们的模块加载之前没有任何功能。当加载扩展模块时,它会添加其变量定义,并根据这些定义转换任何占位符值。如果存在以其扩展名开头的任何无法识别的占位符,则会发出警告,并删除这些占位符。