配置设置函数
配置设置函数是用于查询及修改运行时配置参数的函数。
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上设置全局变量。