Skip to main content

系统信息函数

RisingWave 提供了帮助您获取系统信息的函数,包括数据库、schema、用户、角色、会话等。

current_database()

可返回当前数据库的名称。可以在 SQL 命令、函数和运算符中使用此函数。

句法
current_database()*current_database_name*
示例
SELECT current_database();`db_name`
SELECT count(current_database());1

current_role

如果当前用户是一个或多个角色的成员,则返回当前用户所扮演角色的名称。

句法
current_role*current_role_name* 
current_role()*current_role_name*
示例
SELECT current_role();'root'

current_schema

可返回当前 schema。此为创建表或其他已命名对象时使用的 schema,无需指定目标 schema。

句法
current_schema*current_schema_name* 
current_schema()*current_schema_name*
示例
SELECT current_schema();'public'

current_user

可返回当前有效用户的名称。

句法
current_user*user_name*
current_user()*user_name*
示例
SELECT current_user();`root`

pg_typeof()

可返回所提供值的数据类型的标准名称。更具体地说,它返回所提供值的数据类型的 OID。它返回一个 regtype,即 OID 别名类型。因此,其与 OID 相同(为了比较),但显示为类型名。

句法
pg_typeof()regtype

示例
SELECT pg_typeof(round(null));`double precision`
SELECT pg_typeof(row(true, 1, 'hello'));`record`
SELECT pg_typeof(array[1, 2]);`integer[]`

pg_relation_size

可计算指定关系的一个“分叉(fork)”所使用的磁盘空间。

句法
pg_relation_size ( relation regclass [, 'main' ] )bigint

可返回关系的主数据分叉的大小。此函数可用于确定关系的主数据分叉是否存在。如果其大小不为 0,则表示关系的主数据分叉存在。

示例
SELECT pg_relation_size('t') != 0;t
SELECT pg_relation_size('t', 'main') != 0;t

session_user

可返回当前会话用户的名称。

句法
session_user*session_user_name*
session_user()*session_user_name*
示例
SELECT session_user();`root`

user

可返回当前数据库用户的名称。

句法
user*user_name*
user()*user_name*
示例
SELECT user();`root`

version()

可显示当前 RisingWave 实例的 PostgreSQL 版本和 RisingWave 版本。

示例
SELECT version ();
---------返回结果
version
-----------------
PostgreSQL 8.3-RisingWave-1.0.0-alpha (76672d87cf5c20aa8fbb6f11996ef15255443b51)
(1 row)