为PL / pgSQL

时间:2015-12-26 23:00:47

标签: postgresql plpgsql

我已经在PL / pgSQL中编写了几个函数,我想通过一些配置条目来控制它们的行为,在运行时也可以更改(每个会话)。是否可以在postgresql.conf中定义新的自定义配置条目?如果没有,那该解决的是什么?

根据我的搜索结果,我遇到了part of documentation,其中说:

  

18.16。自定义选项

     

此功能旨在允许通常不知道的参数   PostgreSQL由附加模块添加(例如程序   语言)。这允许在中配置扩展模块   标准方式。

如果这段经文以" No"回答我的问题,我的PL / pgSQL功能是否可以被视为扩展模块,以便他们可以在配置中拥有自己的配置条目文件?

1 个答案:

答案 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不会以任何方式检查它。您可以拥有许多自定义参数。