# 会话信息函数
#### current_catalog
描述：当前数据库的名字（在标准SQL中称"catalog"），与current_database()同义。
返回值类型：name
示例：
```
SELECT current_catalog;
 current_database
------------------
 gaussdb
(1 row)
```
#### current_database()
描述：当前数据库的名字。
返回值类型：name
示例：
```
SELECT current_database();
 current_database
------------------
 gaussdb
(1 row)
```
#### pg_client_encoding()
描述：用于获取当前客户端的字符编码方式。当遇到字符显示问题时，通过检查客户端编码可快速定位问题。
返回值类型：name
示例：
```
SELECT pg_client_encoding();
 pg_client_encoding
--------------------
 UTF8
(1 row)
```
#### current_query()
描述：由客户端提交的当前执行语句（可能包含多个声明）。
返回值类型：text
示例：
```
SELECT current_query();
      current_query
-------------------------
 SELECT current_query();
(1 row)
```
#### current_schema\[()\]
描述：current_schema返回在搜索路径中第一个顺位有效的模式名。（如果搜索路径为空则返回NULL，没有有效的模式名也返回NULL）。如果创建表或者其他命名对象时没有声明目标模式，则将使用这些对象的模式。
返回值类型：name
示例：
```
SELECT current_schema();
 current_schema
----------------
 public
(1 row)
```
#### current_schemas(boolean)
描述：current_schemas(boolean)返回搜索路径中所有模式名字的数组。布尔选项决定像pg_catalog这样隐含包含的系统模式是否包含在返回的搜索路径中。
返回值类型：name\[\]
示例：
```
SELECT current_schemas(true);
   current_schemas
---------------------
 {pg_catalog,public}
(1 row)
```
![](https://support.huaweicloud.com/sqlreference-911-dws/public_sys-resources/note_3.0-zh-cn.png)
搜索路径可以通过运行时设置更改。命令是：
```
SET search_path TO schema [, schema, ...]
```
#### current_user
描述：当前执行环境下的用户名。current_user是用于权限检查的用户标识。通常用来表示会话用户，但是可以通过[SET ROLE](https://support.huaweicloud.com/sqlreference-911-dws/dws_06_0222.html)改变这个设置。在函数执行的过程中随着属性SECURITY DEFINER的改变，其值也会改变。
返回值类型：name
示例：
```
SELECT current_user;
 current_user
--------------
 dbadmin
(1 row)
```
#### inet_client_addr()
描述：显示当前连接的客户端IP信息。
![](https://support.huaweicloud.com/sqlreference-911-dws/public_sys-resources/note_3.0-zh-cn.png)
- 此函数只有在远程连接模式下有效。
- 如果是通过本地连接，使用此接口显示为空。
 
返回值类型：inet
示例：
```
SELECT inet_client_addr();
 inet_client_addr
------------------
 10.10.0.50
(1 row)
```
#### inet_client_port()
描述：显示当前连接的客户端的端口号。
![](https://support.huaweicloud.com/sqlreference-911-dws/public_sys-resources/note_3.0-zh-cn.png)
此函数只有在远程连接模式下有效。
返回值类型：integer
示例：
```
SELECT inet_client_port();
 inet_client_port
------------------
            33143
(1 row)
```
#### inet_server_addr()
描述：显示当前服务器的IP信息。
![](https://support.huaweicloud.com/sqlreference-911-dws/public_sys-resources/note_3.0-zh-cn.png)
- 此函数只有在远程连接模式下有效。
- 如果是通过本地连接，使用此接口显示为空。
 
返回值类型：inet
示例：
```
SELECT inet_server_addr();
 inet_server_addr
------------------
 10.10.0.13
(1 row)
```
#### inet_server_port()
描述：显示当前服务器的端口。如果是通过Unix-domain socket连接的，则所有这些函数都返回NULL。
![](https://support.huaweicloud.com/sqlreference-911-dws/public_sys-resources/note_3.0-zh-cn.png)
此函数只有在远程连接模式下有效。
返回值类型：integer
示例：
```
SELECT inet_server_port();
 inet_server_port
------------------
 8000
(1 row)
```
#### pg_backend_pid()
描述：当前会话连接的服务进程的进程ID。
返回值类型：integer
示例：
```
SELECT pg_backend_pid();
 pg_backend_pid
-----------------
 140229352617744
(1 row)
```
#### pg_conf_load_time()
描述：配置加载时间。pg_conf_load_time返回最后加载服务器配置文件的时间戳。
返回值类型：timestamp with time zone
示例：
```
SELECT pg_conf_load_time();
      pg_conf_load_time       
------------------------------
 2017-09-01 16:05:23.89868+08
(1 row)
```
#### pg_my_temp_schema()
描述：pg_my_temp_schema返回当前会话中临时模式的OID，如果不存在（没有创建临时表）的话则返回0。如果给定的OID是其它会话中临时模式的OID，pg_is_other_temp_schema则返回true。
返回值类型：oid
示例：
```
SELECT pg_my_temp_schema();
 pg_my_temp_schema 
-------------------
                 0
(1 row)
```
#### pg_is_other_temp_schema(oid)
描述：是否为另一个会话的临时模式。
返回值类型：boolean
示例：
```
SELECT pg_is_other_temp_schema(25356);
 pg_is_other_temp_schema
-------------------------
 f
(1 row)
```
#### pg_postmaster_start_time()
描述：数据库实例启动时间。pg_postmaster_start_time返回数据库实例启动时的timestamp with time zone。
返回值类型：timestamp with time zone
示例：
```
SELECT pg_postmaster_start_time();
   pg_postmaster_start_time   
------------------------------
 2017-08-30 16:02:54.99854+08
(1 row)
```
#### pg_trigger_depth()
描述：触发器的嵌套层次。
返回值类型：integer
示例：
```
SELECT pg_trigger_depth();
 pg_trigger_depth 
------------------
                0
(1 row)
```
#### pgxc_version()
描述：Postgres-XC版本信息。
返回值类型：text
示例：
```
SELECT pgxc_version();
                                                pgxc_version                                                 
-------------------------------------------------------------------------------------------------------------
 Postgres-XC 1.1 on x86_64-unknown-linux-gnu, based on PostgreSQL 9.2.4, compiled by g++ (GCC) 5.4.0, 64-bit
(1 row)
```
#### session_user
描述：会话用户名。session_user通常是连接当前数据库的初始用户，不过系统管理员可以用[SET SESSION AUTHORIZATION](https://support.huaweicloud.com/sqlreference-911-dws/dws_06_0223.html)修改这个设置。
返回值类型：name
示例：
```
SELECT session_user;
 session_user
--------------
 dbadmin
(1 row)
```
#### user
描述：等价于current_user。
返回值类型：name
示例：
```
SELECT user;
 current_user
--------------
 dbadmin
(1 row)
```
#### version()
描述：版本信息。version返回一个描述服务器版本信息的字符串。
返回值类型：text
示例：
```
SELECT version();
                                                                version                                                                
---------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.4 gsql ((GaussDB 8.2.1 build 39137c2d) compiled at 2022-09-23 15:43:11 commit 3629 last mr 5138 release) on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 5.4.0, 64-bit
(1 row)
```
#### get_kae_accelerate()
描述：查询当前集群使用KAE加速能力的状态。该函数仅9.1.1.210及以上集群版本支持。
返回值类型：text
示例：
```
SELECT get_kae_accelerate();
 get_kae_accelerate
-------------------------------------------------------------
 encryption: on
(1 row)
```
