我已经在PL / pgSQL中编写了几个函数,我想通过一些配置条目来控制它们的行为,在运行时也可以更改(每个会话)。是否可以在postgresql.conf
中定义新的自定义配置条目?如果没有,那该解决的是什么?
根据我的搜索结果,我遇到了part of documentation,其中说:
18.16。自定义选项
此功能旨在允许通常不知道的参数 PostgreSQL由附加模块添加(例如程序 语言)。这允许在中配置扩展模块 标准方式。
如果这段经文以" No"回答我的问题,我的PL / pgSQL功能是否可以被视为扩展模块,以便他们可以在配置中拥有自己的配置条目文件?
答案 0 :(得分:4)
您可以在postgresql.conf
中定义自定义参数。只需附加一行(例如):
my_param.new_param = 'something'
并重新加载配置(或重启服务器)。
在您的客户端中,您可以使用show
命令访问该参数:
SHOW my_param.new_param;
或current_setting()
函数:
SELECT current_setting('my_param.new_param');
您可以更改当前参数(在会话中本地):
SET my_param.new_param TO 'new value';
还可以为数据库定义自定义参数:
ALTER DATABASE test SET my_param.new_param TO 'new test value';
-- each new client to the database will see the parameter with new value
-- current setting of the parameter remains unchanged
-- or
SET my_param.new_param TO 'new test value';
ALTER DATABASE test SET my_param.new_param FROM CURRENT;
自定义参数必须包含句点。形式上,前缀应指明与之相关的扩展名,但Postgres不会以任何方式检查它。您可以拥有许多自定义参数。