系统信息函数
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)