文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

其他系统函数(二)

下述列表为MogDB实现系统内部功能所使用的函数,不推荐使用,若需使用,请联系云和恩墨技术支持工程师。

  • 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

    返回值类型: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

    返回字段说明如下:

    名称 类型 描述
    bufferid integer 缓冲区的内部ID。
    relfilenode oid 缓冲区中页面所属关系的OID。
    bucketid integer 缓冲区所处的哈希桶号。
    storage_type bigint 缓冲区中数据的存储类型。
    reltablespace oid 缓冲区中数据所处的表空间的OID。
    reldatabase oid 缓冲区中数据所处的数据库的OID。
    relforknumber integer 缓冲区中数据所在的关系文件分支类型。
    relblocknumber integer 缓冲区中数据在其所属关系文件中的文件块号。
    isdirty boolean 缓冲区是否为脏。
    isvalid boolean 缓冲区是否有效。
    usage_count smallint 缓冲区的使用计数。
    pinning_backends integer 正在使用缓冲区的后端数。
  • 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标记。这意味着如果需要释放一些内存,操作系统会首先卸载该文件的页。主要思想是卸载不再使用的文件(而不是可能会被使用的页面)。

    参数:表名称或者索引名称,支持分区表和二级分区表,不支持列存表和段页式表

    示例:

    MogDB=# 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标记。这意味着操作系统将尝试加载该关系尽可能多的页面。主要思想是在服务器启动时预加载文件,预加载文件时可能使用缓存命中率/失误率以及最可能被使用的关系/索引等信息。

    参数:表名称或者索引名称,支持分区表和二级分区表,不支持列存表和段页式表

    示例:

    MogDB=# 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从内存加载和/或卸载页面。

    参数:

    • 第一个参数:表名称或者索引名称,支持分区表、二级分区表,不支持列存表和段页式表。

    • 第二个参数:forkname,每个关系的数据都存储在一个所谓的fork中: 通常情况下,forkname的默认值是main,该参数可以省略。

    • 第三个参数:关系的类型,需要传入一个char字符,如果是普通的关系,该参数为'r'; 如果是分区表,该参数是'p'; 如果是二级分区表,该参数是's'。

    • 第四个参数:如果是分区表,该参数为分区的名称;如果是二级分区表,该参数是二级分区的名称;如果是普通表,填写NULL,如果传入其他值,对于普通表的查询没有影响。

    • 第五个参数:段号。

    • 第六个参数:布尔值,是否进行load操作。

    • 第七个参数:布尔值,是否进行unload操作。

    • 第八个参数:databit,该参数一般通过pgfincore()获得。

    示例:该示例使用的关系名称为pgbench_accounts, 段号为0以及任意的varbit映射

    -- 加载与卸载
    MogDB=# 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
      
    -- 加载
    MogDB=# 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
      
    -- 卸载
    MogDB=# 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
     
    -- 该函数可以用于恢复一个表在操作系统缓存的状态
    -- Snapshot
     MogDB=# create table pgfincore_snapshot as
     MogDB-#   select 'pgbench_accounts'::text as relname,*,now() as date_snapshot
     MogDB-#   from pgfincore('pgbench_accounts',true);
    
    -- Restore
    MogDB=# 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

    描述:这个函数提供关于文件系统缓存(页面缓存)的信息。

    参数:

    • 第一个参数:表名称或者索引名称,支持分区表和二级分区表,不支持列存表和段页式表。

    • 第二个参数:forkname,每个关系的数据都存储在一个所谓的fork中: 通常情况下,forkname的默认值是main,该参数可以省略。

    • 第三个参数:布尔值,true即需要返回databit, false不需要返回databit;该参数可以省略,省略不返回databit;对于整形或者浮点数,零相当于false, 非零相当于true. (布尔值不建议传入整形或者浮点型)。

    示例:

    MogDB=# 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)来激活它。如果对于一个没有插入数据的表,使用true激活后,该字段不回显数值。
    • pages_dirty : 如果定义了HAVE_FINCORE常量,平台将提供相关的信息,和pages_mem类似,只不过是对于脏页面的。
    • group_dirty : 如果定义了HAVE_FINCORE常量,平台将提供相关的信息,和group_mem类似,只不过是对于脏页面的。
  • pgsysconf

    描述:这个函数输出操作系统块的大小,操作系统页面缓冲区中空闲页面的数量。

    示例:

    MogDB=# select * from pgsysconf();
     os_page_size | os_pages_free | os_total_pages 
    --------------+---------------+----------------
             4096 |         80431 |        4094174
  • pgsysconf_pretty

    描述:该函数的功能同上,不同之处在于该函数进行了单位转换,便于阅读。

    示例:

    MogDB=# 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,则意味着该页在操作系统页面缓存中。

    示例:

    MogDB=# select * from pgfincore_drawer(B'000111');
     drawer       
    --------------
        ...     
      
    MogDB=# 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

Copyright © 2011-2024 www.enmotech.com All rights reserved.