更新时间:2024-09-02 GMT+08:00

配置设置函数

配置设置函数是用于查询及修改运行时配置参数的函数。

current_setting(setting_name)

描述:当前的设置值。

返回值类型:text

备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如:

1
2
3
4
5
6
SELECT current_setting('datestyle');

 current_setting
-----------------
 ISO, MDY
(1 row)

read_global_var(global_setting_name)

描述:用于读取全局变量当前的设置值。

返回值类型:text

备注:read_global_var用于以查询形式获取global_setting_name的当前值。和SQL语句SHOW是等效的。

示例:

1
2
3
4
5
6
SET my.var = 1000;
SELECT read_global_var('my.var');
 read_global_var
-----------------
 1000
(1 row)

global_setting_name表示类似于my.var类型的变量,其特征为名称中存在小数点且小数点左右均不为空。这种类型的变量叫做全局变量。

全局变量只能通过SET命令设置,不支持gs_guc、ALTER DATABASE dbname SET paraname TO value、ALTER USER username SET paraname TO value等设置方法,对所有用户可见。

set_config(setting_name, new_value, is_local)

描述:设置参数并返回新值。

返回值类型:text

备注:set_config将参数setting_name设置为new_value,如果is_local为true,则新值将只应用于当前事务。如果希望新值应用于当前会话,可以使用false,和SQL语句SET是等效的。比如:

1
2
3
4
5
6
SELECT set_config('log_statement_stats', 'off', false);

 set_config
------------
 off
(1 row)

如果GUC参数behavior_compat_options设置配置项为DISABLE_SET_GLOBAL_VAR_ON_DATANODE,则不可以通过该函数直接在DN上设置全局变量。