postgres 配置参数中的点分隔符是什么意思?

what does the dot separator mean in postgres configuration parameters?

标题中总结了这个问题: 在 postgres 中命名配置参数时,点代表什么?

例如:

SET bar TO true;

结果为 ERROR: unrecognized configuration parameter "bar",但

SET foo.bar TO true;

结果 Query returned successfully ...

这是为什么?仅供参考,我正在使用 PostgreSQL 9.4

我没能在文档中找到明确的答案。 根据 http://www.postgresql.org/docs/9.4/static/sql-syntax-lexical.html :

The period (.) is used in numeric constants, and to separate schema, table, and column names.

但这里似乎肯定不是这种情况,因为没有模式、table 或名称为 foo 的列。 Search_path 设置为默认值 (public)。

找到答案: http://www.postgresql.org/docs/9.4/static/runtime-config-custom.html

Custom options have two-part names: an extension name, then a dot, then the parameter name proper, much like qualified names in SQL. An example is plpgsql.variable_conflict.

Because custom options may need to be set in processes that have not loaded the relevant extension module, PostgreSQL will accept a setting for any two-part parameter name.