Other System Functions
The built-in functions and operators of openGauss are inherited from the open-source PG. For details about the following functions, see the official PG documents.
The following table lists the functions used by openGaussGaussDB Kernel to implement internal system functions. You are not advised to use these functions. If you need to use them, contact Huawei technical support.
-
pv_compute_pool_workload()
Description: Provides the current load information of the cloud acceleration database instance.
Return type: record
-
locktag_decode(locktag text)
Description: Parses lock details from locktag.
Return type: text
-
smgreq(a smgr, b smgr)
Description: Compares two smgrs to check whether they are the same.
Parameter: smgr, smgr
Return type: Boolean
-
smgrne(a smgr, b smgr)
Description: Checks whether the two smgrs are different.
Parameter: smgr, smgr
Return type: Boolean
-
xidin4
Description: Inputs a 4-byte xid.
Parameter: cstring
Return type: xid32
-
set_hashbucket_info
Description: Sets hash bucket information.
Parameter: text
Return type: Boolean
-
hs_concat
Description: Concatenates two pieces of hstore data.
Parameter: hstore, hstore
Return type: hstore
-
hs_contained
Description: Determines whether two hstore data records are included. The return value is of the Boolean type.
Parameter: hstore, hstore
Return type: Boolean
-
hs_contains
Description: Determines whether two hstore data records are included. The return value is of the Boolean type.
Parameter: hstore, hstore
Return type: Boolean
-
hstore
Description: Converts parameters to the hstore type.
Parameter: text, text
Return type: hstore
-
hstore_in
Description: Receives hstore data in string format.
Parameter: cstring
Return type: hstore
-
hstore_out
Description: Sends hstore data in string format.
Parameter: hstore
Return type: cstring
-
hstore_send
Description: Sends hstore data in bytea format.
Parameter: hstore
Return type: bytea
-
hstore_to_array
Description: Sends hstore data in text array format.
Parameter: hstore
Return type: text[]
-
hstore_to_matrix
Description: Sends hstore data in text array format.
Parameter: hstore
Return type: text[]
-
hstore_version_diag
Description: Sends hstore data in integer array format.
Parameter: hstore
Return type: integer
-
int1send
Description: Packs unsigned 1-byte integers into the internal data buffer stream.
Parameter: tinyint
Return type: bytea
-
isdefined
Description: Checks whether a specified key exists.
Parameter: hstore, text
Return type: Boolean
-
listagg
Description: Specifies aggregate functions of the list type.
Parameter: smallint, text
Return type: text
-
log_fdw_validator
Description: Specifies validation functions.
Parameter: text[], oid
Return type: void
-
nvarchar2typmodin
Description: Obtains the typmod information of the varchar type.
Parameter: cstring[]
Return type: integer
-
nvarchar2typmodout
Description: Obtains the typmod information of the varchar type, constructs a character string, and returns the character string.
Parameter: integer
Return type: cstring
-
read_disable_conn_file
Description: Reads forbidden connection files.
Parameter: nan
Return type: disconn_mode text, disconn_host text, disconn_port text, local_host text, local_port text, redo_finished text
-
regex_like_m
Description: Specifies the regular expression match, which is used to determine whether a character string complies with a specified regular expression.
Parameter: text, text
Return type: Boolean
-
update_pgjob
Description: Updates a job.
Parameter: 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
Return type: void
-
enum_cmp
Description: Specifies the enumeration comparison function, which is used to determine whether two enumeration classes are equal and determine their relative sizes.
Parameter: anyenum, anyenum
Return type: integer
-
enum_eq
Description: Specifies the enumeration comparison function, which is used to implement the equal sign (=).
Parameter: anyenum, anyenum
Return type: Boolean
-
enum_first
Description: Returns the first element in the enumeration class.
Parameter: anyenum
Return type: anyenum
-
enum_ge
Description: Specifies the enumeration comparison function, which is used to implement the greater-than sign (>) and equal sign (=).
Parameter: anyenum, anyenum
Return type: Boolean
-
enum_gt
Description: Specifies the enumeration comparison function, which is used to implement the greater-than sign (>).
Parameter: anyenum, anyenum
Return type: Boolean
-
enum_in
Description: Specifies the enumeration comparison function, which is used to determine whether an element is in an enumeration class.
Parameter: cstring, oid
Return type: anyenum
-
enum_larger
Description: Specifies the enumeration comparison function, which is used to implement the greater-than sign (>).
Parameter: anyenum, anyenum
Return type: anyenum
-
enum_last
Description: Returns the last element in the enumeration class.
Parameter: anyenum
Return type: anyenum
-
enum_le
Description: Specifies the enumeration comparison function, which is used to implement the less-than sign (<) and equal sign (=).
Parameter: anyenum, anyenum
Return type: Boolean
-
enum_lt
Description: Specifies the enumeration comparison function, which is used to implement the less-than sign (<).
Parameter: anyenum, anyenum
Return type: Boolean
-
enum_smaller
Description: Specifies the enumeration comparison function, which is used to implement the less-than sign (<).
Parameter: anyenum, anyenum
Return type: Boolean
-
node_oid_name
Description: Not supported.
Parameter: oid
Return type: cstring
-
pg_buffercache_pages
Description: Reads status data from a shared buffer.
Parameter: nan
Return type: setof record. The following table describes the return columns.
Table 1 Return column description
-
pg_check_xidlimit
Description: Checks whether nextxid is greater than or equal to xidwarnlimit.
Parameter: nan
Return type: Boolean
-
pg_comm_delay
Description: Displays the delay status of the communication library of a single DN.
Parameter: nan
Return type: text, text, integer, integer, integer, integer
-
pg_comm_recv_stream
Description: Displays the receiving stream status of all communication libraries on a single DN.
Parameter: nan
Return type: text, bigint, text, bigint, integer, integer, integer, text, bigint, integer, integer, integer, bigint, bigint, bigint, bigint, bigint
-
pg_comm_send_stream
Description: Displays the sending stream status of all communication libraries on a single DN.
Parameter: nan
Return type: text, bigint, text, bigint, integer, integer, integer, text, bigint, integer, integer, integer, bigint, bigint, bigint, bigint, bigint
-
pg_comm_status
Description: Displays the communication status of a single DN.
Parameter: nan
Return type: text, integer, integer, bigint, bigint, bigint, bigint, bigint, integer, integer, integer, integer, integer
-
pg_log_comm_status
Description: Prints some logs on the DN.
Parameter: nan
Return type: Boolean
-
pg_parse_clog
Description: Parses clog to obtain the status of xid.
Parameter: nan
Return type: xid xid, status text
-
pg_pool_ping
Description: Sets PoolerPing.
Parameter: Boolean
Return type: SETOF boolean
-
pg_resume_bkp_flag
Description: Obtains the delay xlong flag for backup and restoration.
Parameter: slot_name name
Return type: start_backup_flag boolean, to_delay boolean, ddl_delay_recycle_ptr text, rewind_time text
-
pgfadvise_DONTNEED
Description: This function set DONTNEED flag on the current relation. It means that the Operating System will first unload pages of the file if it need to free some memory. Main idea is to unload files when they are not usefull anymore (instead of perhaps more interesting pages)
Parameter: a table name or an index name, the table can be partition table or subpartition table. Column-store tables and segment-page tables are not supported.
Example:
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
Description: This function set WILLNEED flag on the current relation. It means that the Operating Sytem will try to load as much pages as possible of the relation. Main idea is to preload files on server startup, perhaps using cache hit/miss ratio or most required relations/indexes.
Parameter: a table name or an index name, the table can be partition table or subpartition table. Column-store tables and segment-page tables are not supported.
Example:
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
Description: Sets the NORMAL flag for the current relationship.
-
pgfadvise_SEQUENTIAL
Description: Sets the SEQUENTIAL flag for the current relationship.
-
pgfadvise_RANDOM
Description: Sets the RANDOM flag for the current relationship.
-
pgfadvise_loader
Description: Allows direct interaction with the page cache. It may be used to load and/or unload a page from memory according to varbit representing a mapping of the page to be loaded/unloaded.
Parameters:
- The first parameter specifies the table name or index name. Partitioned tables and level-2 partitioned tables are supported. Column-store tables and segment-page tables are not supported.
- The second parameter is forkname. The data of each relationship is stored in a so-called fork. Generally, the default value of forkname is main. This parameter can be omitted.
- The third parameter specifies a relationship type. A character needs to be transferred. For a common relationship, the value of this parameter is 'r'. For a partitioned table, the value of this parameter is 'p'. For a level-2 partitioned table, the value of this parameter is 's'.
- The fourth parameter: For a partition table, this parameter indicates the name of the partition. For a level-2 partitioned table, this parameter indicates the name of the level-2 partition. For an ordinary table, set this parameter to NULL. If other values are transferred, the query of the ordinary table is not affected.
- The fifth parameter specifies the segment number.
- The sixth parameter returns a Boolean value, indicating whether to perform the load operation.
- The seventh parameter returns a Boolean value, indicating whether to perform the unload operation.
- The eighth parameter is databit. This parameter is generally obtained by using pgfincore().
Example: The relationship name is pgbench_accounts, the segment number is 0, and any varbit mapping is used.
-- Loading and unloading cedric=# select * from pgfadvise_loader('pgbench_accounts', 'r', NULL, 0, true, true, B'111000'); relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded ------------------+--------------+---------------+--------------+---------------- base/11874/16447 | 4096 | 408376 | 3 | 3 -- Loading cedric=# select * from pgfadvise_loader('pgbench_accounts', 'r', NULL, 0, true, false, B'111000'); relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded ------------------+--------------+---------------+--------------+---------------- base/11874/16447 | 4096 | 408370 | 3 | 0 -- Unloading cedric=# select * from pgfadvise_loader('pgbench_accounts', 'r', NULL, 0, false, true, B'111000'); relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded ------------------+--------------+---------------+--------------+---------------- base/11874/16447 | 4096 | 408370 | 0 | 3 -- This function can be used to restore the status of a table in the operating system cache. -- Snapshot cedric=# create table pgfincore_snapshot as cedric-# select 'pgbench_accounts'::text as relname,*,now() as date_snapshot cedric-# from pgfincore('pgbench_accounts',true); -- Restore cedric=# select * from pgfadvise_loader('pgbench_accounts', 'r', NULL, 0, true, true, (select databit from pgfincore_snapshot where relname='pgbench_accounts' and segment = 0)); relpath | os_page_size | os_pages_free | pages_loaded | pages_unloaded ------------------+--------------+---------------+--------------+---------------- base/11874/16447 | 4096 | 80867 | 262144 | 0 -
pgfincore
Description: Provides information about the file system cache (page cache).
Parameter: table name or index name. Partitioned tables and level-2 partitioned tables are supported. Column-store tables and segment-page tables are not supported.
Example:
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 | 0For a specified relationship, the function returns the following column:
- relpath: path of the relationship.
- segment: number of the segment to be analyzed.
- os_page_size: size of a page.
- rel_os_pages: total number of pages of the relationship.
- pages_mem: total number of pages of the relationship in the page cache. (not from the PostgreSQL shared buffer, but from the operating system cache).
- group_mem: number of groups of adjacent pages_mem.
- os_page_free: number of idle pages in the OS page cache.
- databit: varbit mapping of the file. To output this column, use pgfincore('pgbench_accounts', true) to activate it. If no data is inserted into a table and true is used to activate the table, no value is displayed for this column.
- pages_dirty: If the HAVE_FINCORE constant is defined, the platform provides related information, which is similar to pages_mem except for dirty pages.
- group_dirty: If the HAVE_FINCORE constant is defined, the platform provides related information, which is similar to group_mem except for dirty pages.
-
pgsysconf
Description: Outputs the size of the operating system block and the number of free pages in the operating system page buffer.
Example:
cedric=# select * from pgsysconf(); os_page_size | os_pages_free | os_total_pages --------------+---------------+---------------- 4096 | 80431 | 4094174 -
pgsysconf_pretty
Description: The function is similar to the preceding function. The difference is that the function converts the unit for easy reading.
Example:
cedric=# select * from pgsysconf_pretty(); os_page_size | os_pages_free | os_total_pages --------------+---------------+---------------- 4096 bytes | 314 MB | 16 GB -
pgfincore_drawer
Description: A very simple renderer. This function requires a varbit parameter. Generally, the value of this parameter comes from the databit return column of the pgfincore function. The value of the databit column consists of 0 and 1. If the value is 0, it indicates that the page is not in the page cache of the operating system. If the value is 1, it indicates that the page is in the page cache of the operating system.
Example:
cedric=# select * from pgfincore_drawer(B'000111'); drawer -------------- ... cedric=# select * from pgfincore_drawer(B'111000'); drawer -------------- ... -
psortoptions
Description: Returns the psort attribute.
Parameter: text[], boolean
Return type: bytea
-
xideq4
Description: Compares two values of the xid type to check whether they are the same.
Parameter: xid32, xid32
Return type: Boolean
-
xideqint8
Description: Compares values of the xid type and int8 type to check whether they are the same.
Parameter: xid, bigint
Return type: Boolean
-
xidlt
Description: Returns whether xid1 < xid2 is true.
Parameter: xid, xid
Return type: Boolean
-
xidlt4
Description: Returns whether xid1 < xid2 is true.
Parameter: xid32, xid32
Return type: Boolean