其他系统函数
openGauss的内建函数和操作符继承自开源PG,下述函数不作赘述,详情请参见PG官方文档。
下述列表为openGauss实现系统内部功能所使用的函数,不推荐使用,若需使用,请联系华为技术支持工程师。
pv_compute_pool_workload()
描述:提供云上加速数据库实例当前负载信息。
返回值类型:record
locktag_decode(locktag text)
描述:从locktag中解析锁的具体信息。
返回值类型:text
smgreq(a smgr, b smgr)
描述:比较两个smgr是否一样。
参数:smgr, smgr
返回值类型:boolean
smgrne(a smgr, b smgr)
描述:判断两个smgr是否不一样。
参数:smgr, smgr
返回值类型:boolean
xidin4
描述:输入4字节的xid。
参数:cstring
返回值类型:xid32
set_hashbucket_info
描述:设置哈希桶信息。
参数:text
返回值类型:boolean
hs_concat
描述:拼接两个hstore类型数据。
参数:hstore, hstore
返回值类型:hstore
hs_contained
描述:判断两个hstore类型数据是否包含,返回值布尔类型。
参数:hstore, hstore
返回值类型:boolean
hs_contains
描述:判断两个hstore类型数据是否包含,返回值布尔类型。
参数:hstore, hstore
返回值类型:boolean
hstore
描述:将参数转为hstore类型。
参数:text, text
返回值类型:hstore
hstore_in
描述:以string格式接收hstore数据。
参数:cstring
返回值类型:hstore
hstore_out
描述:以string格式发送hstore数据。
参数:hstore
返回值类型:cstring
hstore_send
描述:以bytea格式发送hstore数据。
参数:hstore
返回值类型:bytea
hstore_to_array
描述:以text数组格式发送hstore数据。
参数:hstore
返回值类型:text[]
hstore_to_matrix
描述:以text数组格式发送hstore数据。
参数:hstore
返回值类型:text[]
hstore_version_diag
描述:以integer数组格式发送hstore数据。
参数:hstore
返回值类型:integer
int1send
描述:将无符号一字节整数打包放入内部数据缓冲流。
参数:tinyint
返回值类型:bytea
isdefined
描述:判断指定key是否存在。
参数:hstore, text
返回值类型:boolean
listagg
描述:list类型agg聚集函数。
参数:smallint, text
返回值类型:text
log_fdw_validator
描述:验证函数。
参数:text[], oid
返回值类型:void
nvarchar2typmodin
描述:获取varchar的typmod信息。
参数:cstring[]
返回值类型:integer
nvarchar2typmodout
描述:获取varchar的typmod信息,并构造字符串返回。
参数:integer
返回值类型:cstring
read_disable_conn_file
描述:读取禁止的连接文件。
参数:nan
返回值类型:disconn_mode text, disconn_host text, disconn_port text, local_host text, local_port text, redo_finished text
regex_like_m
描述:正则匹配,判断字符串是否符合给定的正则表达式。
参数:text, text
返回值类型:boolean
update_pgjob
描述:更新job。
参数:bigint, “char”, bigint, timestamp without time zone, timestamp without time zone, timestamp without time zone, timestamp without time zone, timestamp without time zone, smallint, text
返回值类型:void
enum_cmp
描述:枚举类比较函数,用于判断两个枚举类是否相等,以及相对大小。
参数:anyenum, anyenum
返回值类型:integer
enum_eq
描述:枚举类比较函数,用于实现=符号。
参数:anyenum, anyenum
返回值类型:boolean
enum_first
描述:返回枚举类中的第一个元素。
参数:anyenum
返回值类型:anyenum
enum_ge
描述:枚举类比较函数,用于实现>=符号。
参数:anyenum, anyenum
返回值类型:boolean
enum_gt
描述:枚举类比较函数,用于实现>符号。
参数:anyenum, anyenum
返回值类型:boolean
enum_in
描述:枚举类比较函数,用于判断元素是否在枚举类中。
参数:cstring, oid
返回值类型:anyenum
enum_larger
描述:枚举类比较函数,用于实现>符号。
参数:anyenum, anyenum
返回值类型:anyenum
enum_last
描述:返回枚举类中的最后一个元素。
参数:anyenum
返回值类型:anyenum
enum_le
描述:枚举类比较函数,用于实现<=符号。
参数:anyenum, anyenum
返回值类型:boolean
enum_lt
描述:枚举类比较函数,用于实现<符号。
参数:anyenum, anyenum
返回值类型:boolean
enum_smaller
描述:枚举类比较函数,用于实现<符号。
参数:anyenum, anyenum
返回值类型:boolean
node_oid_name
描述:不支持。
参数:oid
返回值类型:cstring
pg_buffercache_pages
描述:读取共享缓冲区的状态数据。
参数:nan
返回值类型:setof record,返回字段说明如下。
表 1 返回字段说明
pg_check_xidlimit
描述:判断nextxid是否>= xidwarnlimit。
参数:nan
返回值类型:boolean
pg_comm_delay
描述:展示单个DN的通信库时延状态。
参数:nan
返回值类型:text, text, integer, integer, integer, integer
pg_comm_recv_stream
描述:展示单个DN上所有的通信库接收流状态。
参数:nan
返回值类型:text, bigint, text, bigint, integer, integer, integer, text, bigint, integer, integer, integer, bigint, bigint, bigint, bigint, bigint
pg_comm_send_stream
描述:展示单个DN上所有的通信库发送流状态。
参数:nan
返回值类型:text, bigint, text, bigint, integer, integer, integer, text, bigint, integer, integer, integer, bigint, bigint, bigint, bigint, bigint
pg_comm_status
描述:展示单个DN的通信状态。
参数:nan
返回值类型:text, integer, integer, bigint, bigint, bigint, bigint, bigint, integer, integer, integer, integer, integer
pg_log_comm_status
描述:在DN上打印一些log。
参数:nan
返回值类型:boolean
pg_parse_clog
描述:解析clog获取xid的status。
参数:nan
返回值类型:xid xid, status text
pg_pool_ping
描述:设置PoolerPing。
参数:boolean
返回值类型:SETOF boolean
pg_resume_bkp_flag
描述:用于备份恢复获取delay xlong标志。
参数:slot_name name
返回值类型:start_backup_flag boolean, to_delay boolean, ddl_delay_recycle_ptr text, rewind_time text
pgfadvise_DONTNEED
描述: 这个函数为当前关系设置DONTNEED标记。这意味着如果需要释放一些内存,操作系统会首先卸载该文件的页。主要思想是卸载不再使用的文件(而不是可能会被使用的页面)。
示例:
cedric=# select * from pgfadvise_dontneed('pgbench_accounts');
relpath | os_page_size | rel_os_pages | os_pages_free
--------------------+--------------+--------------+---------------
base/11874/16447 | 4096 | 262144 | 342071
base/11874/16447.1 | 4096 | 65726 | 408103
pgfadvise_WILLNEED
描述:这个函数为当前关系设置WILLNEED标记。这意味着操作系统将尝试加载该关系尽可能多的页面。主要思想是在服务器启动时预加载文件,预加载文件时可能使用缓存命中率/失误率以及最可能被使用的关系/索引等信息。
示例:
cedric=# select * from pgfadvise_willneed('pgbench_accounts');
relpath | os_page_size | rel_os_pages | os_pages_free
--------------------+--------------+--------------+---------------
base/11874/16447 | 4096 | 262144 | 80650
base/11874/16447.1 | 4096 | 65726 | 80650
pgfadvise_NORMAL
描述:这个函数为当前关系设置NORMAL标记。
pgfadvise_SEQUENTIAL
描述:这个函数为当前关系设置SEQUENTIAL标记。
pgfadvise_RANDOM
描述:这个函数为当前关系设置RANDOM标记。
pgfadvise_loader
描述:这个函数允许直接与页面缓存交互。它可以用于根据表示要加载/卸载的页面映射的varbit从内存加载和/或卸载页面。
示例:该示例使用的关系名称为pgbench_accounts, 段号为0以及任意的varbit映射。
-- 加载与卸载
cedric=# select * from pgfadvise_loader('pgbench_accounts', 0, true, true, B'111000');
relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded
------------------+--------------+---------------+--------------+----------------
base/11874/16447 | 4096 | 408376 | 3 | 3
-- 加载
cedric=# select * from pgfadvise_loader('pgbench_accounts', 0, true, false, B'111000');
relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded
------------------+--------------+---------------+--------------+----------------
base/11874/16447 | 4096 | 408370 | 3 | 0
-- 卸载
cedric=# select * from pgfadvise_loader('pgbench_accounts', 0, false, true, B'111000');
relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded
------------------+--------------+---------------+--------------+----------------
base/11874/16447 | 4096 | 408370 | 0 | 3
pgfincore
描述:这个函数提供关于文件系统缓存(页面缓存)的信息。
示例:
cedric=# select * from pgfincore('pgbench_accounts');
relpath | segment | os_page_size | rel_os_pages | pages_mem | group_mem | os_pages_free | databit | pages_dirty | group_dirty
--------------------+---------+--------------+--------------+-----------+-----------+---------------+---------+-------------+-------------
base/11874/16447 | 0 | 4096 | 262144 | 3 | 1 | 408444 | | 0 | 0
base/11874/16447.1 | 1 | 4096 | 65726 | 0 | 0 | 408444 | | 0 | 0
对于一个指定的关系,该函数返回包括以下字段:
- relpath : 该关系的路径。
- segment : 被分析的段号。
- os_page_size : 一个页面的大小。
- rel_os_pages : 该关系的总页面数。
- pages_mem : 关系在页面缓存中的页面总数。 (不是来自PostgreSQL的共享缓冲区,而是操作系统缓存) 。
- group_mem : 相邻pages_mem的组数。
- os_page_free : 操作系统页面缓存中空闲的页面数。
- databit : 该文件的varbit映射,因为该字段的大小关系,若需要输出该字段,需要使用pgfincore(‘pgbench_accounts’,true)来激活它。
- pages_dirty : 如果定义了HAVE_FINCORE常量,平台将提供相关的信息,和pages_mem类似,只不过是对于脏页面的。
- group_dirty : 如果定义了HAVE_FINCORE常量,平台将提供相关的信息,和group_mem类似,只不过是对于脏页面的。
pgsysconf
描述: 这个函数输出操作系统块的大小,操作系统页面缓冲区中空闲页面的数量。
示例:
cedric=# select * from pgsysconf();
os_page_size | os_pages_free | os_total_pages
--------------+---------------+----------------
4096 | 80431 | 4094174
pgsysconf_pretty
描述:该函数的功能同上,不同之处在于该函数进行了单位转换,便于阅读。
示例:
cedric=# select * from pgsysconf_pretty();
os_page_size | os_pages_free | os_total_pages
--------------+---------------+----------------
4096 bytes | 314 MB | 16 GB
pgfincore_drawer
描述:一个非常简单的渲染器。这个函数需要一个varbit类型的参数。通常,这个参数的值来源于pgfincore函数的databit返回字段。databit字段的值由0和1组成,如果是0,意味着该页不在操作系统页面缓存中,如果是1,则意味着该页在操作系统页面缓存中。
示例:
cedric=# select * from pgfincore_drawer(B'000111');
drawer
--------------
...
cedric=# select * from pgfincore_drawer(B'111000');
drawer
--------------
...
psortoptions
描述:返回psort属性。
参数:text[], boolean
返回值类型:bytea
xideq4
描述:对比两个xid类型的值是否相等。
参数:xid32, xid32
返回值类型:boolean
xideqint8
描述:对比xid类型和int8类型的值是否相等。
参数:xid, bigint
返回值类型:boolean
xidlt
描述:返回xid1 < xid2是否成立。
参数:xid, xid
返回值类型:boolean
xidlt4
描述:返回xid1 < xid2是否成立。
参数:xid32, xid32
返回值类型:boolean