云数据库 GAUSSDB-系统信息函数:会话信息函数
会话信息函数
- SYS_CONTEXT()
描述:返回当前时刻与上下文命名空间'namespace'关联的参数'parameter'的值。
返回值类型:text
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
select SYS_CONTEXT('userenv','NLS_CURRENCY'); sys_context ------------- $ (1 row) select SYS_CONTEXT('userenv','NLS_DATE_FORMAT'); sys_context --------------- ISO, MDY (1 row) select SYS_CONTEXT('userenv','NLS_DATE_LANGUAGE'); sys_context ------------- en_US.UTF-8 (1 row)
- current_catalog
描述:当前数据库的名称(在标准SQL中称"catalog")。
返回值类型:name
示例:
1 2 3 4 5
testdb=# SELECT current_catalog; current_database ------------------ testdb (1 row)
- current_database()
返回值类型:name
示例:
1 2 3 4 5
testdb=# SELECT current_database(); current_database ------------------ testdb (1 row)
- current_query()
返回值类型:text
示例:
1 2 3 4 5
gaussdb=# SELECT current_query(); current_query ------------------------- SELECT current_query(); (1 row)
- current_schema[()]
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# SELECT current_schema(); current_schema ---------------- public (1 row)
备注:current_schema返回在搜索路径中第一个顺位有效的模式名。(如果搜索路径为空则返回NULL,没有有效的模式名也返回NULL)。如果创建表或者其他命名对象时没有声明目标模式,则将使用这些对象的模式。
- current_schemas(Boolean)
描述:搜索路径中的模式名称。
返回值类型:name[]
示例:
1 2 3 4 5
gaussdb=# SELECT current_schemas(true); current_schemas --------------------- {pg_catalog,public} (1 row)
备注:
current_schemas(Boolean)返回搜索路径中所有模式名称的数组。布尔选项决定像pg_catalog这样隐含包含的系统模式是否包含在返回的搜索路径中。
搜索路径可以通过运行时设置更改。命令是:
1
SET search_path TO schema [, schema, ...]
- current_user
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# SELECT current_user; current_user -------------- omm (1 row)
备注:current_user是用于权限检查的用户标识。通常,他表示会话用户,但是可以通过SET ROLE改变他。在函数执行的过程中随着属性SECURITY DEFINER的改变,其值也会改变。
- definer_current_user
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# SELECT definer_current_user(); definer_current_user ---------------------- omm (1 row)
- pg_current_sessionid()
返回值类型:text
示例:
1 2 3 4 5
gaussdb=# SELECT pg_current_sessionid(); pg_current_sessionid ---------------------------- 1579228402.140190434944768 (1 row)
备注:pg_current_sessionid()是用于获取当前执行环境下的会话ID。其组成结构为:时间戳.会话ID,当线程池模式开启(enable_thread_pool=on)时,会话ID为SessionID;而线程池模式关闭时,会话ID为ThreadID。
- pg_current_sessid
返回值类型:text
示例:
gaussdb=# select pg_current_sessid(); pg_current_sessid ------------------- 140308875015936 (1 row)
备注:在线程池模式下获得当前会话的会话ID,非线程池模式下获得当前会话对应的后台线程ID。
- pg_current_userid
返回值类型:text
gaussdb=# SELECT pg_current_userid(); pg_current_userid ------------------- 10 (1 row)
- working_version_num()
返回值类型:int
示例:
1 2 3 4 5
gaussdb=# SELECT working_version_num(); working_version_num --------------------- 92231 (1 row)
- tablespace_oid_name()
返回值类型:text
示例:
1 2 3 4 5
gaussdb=# select tablespace_oid_name(1663); tablespace_oid_name --------------------- pg_default (1 row)
- inet_client_addr()
描述:连接的远端地址。inet_client_addr返回当前客户端的IP地址。
此函数只有在远程连接模式下有效。
返回值类型:inet
示例:
1 2 3 4 5
gaussdb=# SELECT inet_client_addr(); inet_client_addr ------------------ 10.10.0.50 (1 row)
- inet_client_port()
描述:连接的远端端口。inet_client_port返回当前客户端的端口号。
此函数只有在远程连接模式下有效。
返回值类型:int
示例:
1 2 3 4 5
gaussdb=# SELECT inet_client_port(); inet_client_port ------------------ 33143 (1 row)
- inet_server_addr()
描述:连接的本地地址。inet_server_addr返回服务器接收当前连接用的IP地址。
此函数只有在远程连接模式下有效。
返回值类型:inet
示例:
1 2 3 4 5
gaussdb=# SELECT inet_server_addr(); inet_server_addr ------------------ 10.10.0.13 (1 row)
- inet_server_port()
描述:连接的本地端口。inet_server_port返回接收当前连接的端口号。如果是通过Unix-domain socket连接的,则所有这些函数都返回NULL。
此函数只有在远程连接模式下有效。
返回值类型:int
示例:
1 2 3 4 5
gaussdb=# SELECT inet_server_port(); inet_server_port ------------------ 8000 (1 row)
- pg_backend_pid()
返回值类型:int
示例:
1 2 3 4 5
gaussdb=# SELECT pg_backend_pid(); pg_backend_pid ----------------- 140229352617744 (1 row)
- pg_conf_load_time()
描述:配置加载时间。pg_conf_load_time返回最后加载服务器配置文件的时间戳。
返回值类型:timestamp with time zone
示例:
1 2 3 4 5
gaussdb=# SELECT pg_conf_load_time(); pg_conf_load_time ------------------------------ 2017-09-01 16:05:23.89868+08 (1 row)
- pg_my_temp_schema()
返回值类型:oid
示例:
1 2 3 4 5
gaussdb=# SELECT pg_my_temp_schema(); pg_my_temp_schema ------------------- 0 (1 row)
备注:pg_my_temp_schema返回当前会话中临时模式的OID,如果不存在(没有创建临时表)的话则返回0。如果给定的OID是其它会话中临时模式的OID,pg_is_other_temp_schema则返回true。
- pg_is_other_temp_schema(oid)
返回值类型:Boolean
示例:
1 2 3 4 5
gaussdb=# SELECT pg_is_other_temp_schema(25356); pg_is_other_temp_schema ------------------------- f (1 row)
- pg_listening_channels()
返回值类型:setof text
示例:
1 2 3 4
gaussdb=# SELECT pg_listening_channels(); pg_listening_channels ----------------------- (0 rows)
备注:pg_listening_channels返回当前会话正在侦听的一组信道名称。
- pg_postmaster_start_time()
描述:服务器启动时间。pg_postmaster_start_time返回服务器启动时的timestamp with time zone。
返回值类型:timestamp with time zone
示例:
1 2 3 4 5
gaussdb=# SELECT pg_postmaster_start_time(); pg_postmaster_start_time ------------------------------ 2017-08-30 16:02:54.99854+08 (1 row)
- pg_get_ruledef(rule_oid)
返回值类型:text
示例:
gaussdb=# select * from pg_get_ruledef(24828); pg_get_ruledef ------------------------------------------------------------------- CREATE RULE t1_ins AS ON INSERT TO t1 DO INSTEAD INSERT INTO t2 (id) VALUES (new.id); (1 row)
- sessionid2pid()
描述: 从sessionid中得到pid信息(例如,gs_session_stat中sessid列)。
返回值类型: int8
示例:
1 2 3 4 5 6
gaussdb=# select sessionid2pid(sessid::cstring) from gs_session_stat limit 2; sessionid2pid ----------------- 139973107902208 139973107902208 (2 rows)
- session_context( 'namespace' , 'parameter')
描述:获取并返回指定namespace下参数parameter的值。
返回值类型:VARCHAR
示例:
1 2 3 4 5
gaussdb=# SELECT session_context('USERENV', 'CURRENT_SCHEMA'); session_context ------------------ public (1 row)
备注:当前支持的parameter:current_user, current_schema, client_info, ip_address, sessionid, sid.
- pg_trigger_depth()
返回值类型:int
示例:
1 2 3 4 5
gaussdb=# SELECT pg_trigger_depth(); pg_trigger_depth ------------------ 0 (1 row)
- session_user
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# SELECT session_user; session_user -------------- omm (1 row)
备注:session_user通常是连接当前数据库的初始用户,不过系统管理员可以用SET SESSION AUTHORIZATION修改这个设置。
- user
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# SELECT user; current_user -------------- omm (1 row)
- getpgusername()
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# select getpgusername(); getpgusername --------------- GaussDB _userna (1 row)
- getdatabaseencoding()
返回值类型:name
示例:
1 2 3 4 5
gaussdb=# select getdatabaseencoding(); getdatabaseencoding --------------------- SQL_ASCII (1 row)
- version()
描述:版本信息。version返回一个描述服务器版本信息的字符串。
返回值类型:text
示例:
gaussdb=# select version(); version ------------------------------------------------------------------------------------------------------------------------------------------------------------- gaussdb (GaussDB Kernel 503.1.XXX build fab4f5ea) compiled at 2021-10-24 11:58:22 commit 3086 last mr 6592 release (1 row)
- opengauss_version()
返回值类型:text
使用示例如下,查询结果中的x.x.x请已实际输出为准:
1 2 3 4 5
gaussdb=# select opengauss_version(); opengauss_version ------------------- x.x.x (1 row)
- gs_deployment()
返回值类型:text
示例:
1 2 3 4 5
gaussdb=# select gs_deployment(); gs_deployment --------------------- BusinessCentralized (1 row)
- get_hostname()
返回值类型:text
示例:
1 2 3 4 5
gaussdb=# SELECT get_hostname(); get_hostname -------------- linux-user (1 row)
- get_nodename()
返回值类型:text
示例:
1 2 3 4 5
gaussdb=# SELECT get_nodename(); get_nodename -------------- datanode1 (1 row)
- GaussDB函数_GaussDB数据库函数_高斯数据库函数_华为云
- GaussDB数据库函数_GaussDB函数和操作符_高斯数据库函数-华为云
- GaussDB支持的函数_GaussDB函数类型解析_高斯数据库支持的函数-华为云
- 调用函数_函数调用方式_函数工作流 FunctionGraph-华为云
- GaussDB数据库函数_GaussDB介绍_高斯数据库函数
- GaussDB内存_云数据库GaussDB内存_高斯数据库内存-华为云
- 什么是函数工作流_函数托管计算服务_函数工作流 FunctionGraph-华为云
- 使用容器镜像部署函数_函数部署_函数工作流 FunctionGraph-华为云
- 如何使用模板创建函数_模板创建函数_函数工作流 FunctionGraph-华为云
- 使用SpringBoot构建HTTP函数_functiongraph_函数工作流