• GBase 8c V3.0.0数据类型——系统表信息函数


    1. format_type(type_oid, typemod)

    描述:获取数据类型的SQL名称。

    返回类型:text

    备注:format_type通过某个数据类型的类型OID以及可能的类型修饰词,返回其SQL名称。如果不知道具体的修饰词,则在类型修饰词的位置传入NULL。类型修饰词一般只对有长度限制的数据类型有意义。format_type所返回的SQL名称中包含数据类型的长度值,其大小是:实际存储长度len - sizeof(int32),单位字节。原因是数据存储时需要32位的空间来存储用户对数据类型的自定义长度信息,即实际存储长度要比用户定义长度多4个字节。在下例中,format_type返回的SQL名称为“character varying(6)”,6表示varchar类型的长度值是6字节,因此该类型的实际存储长度为10字节。

     gbase=# SELECT format_type((SELECT oid FROM pg_type WHERE typname='varchar'), 10);

         format_type      

    ----------------------

     character varying(6)

    (1 row)

    1. getdistributekey(table_name)

    描述:获取一个hash表的分布列。单机环境下不支持分布,该函数返回为空。

    1. pg_check_authid(role_oid)

    描述:检查是否存在给定oid的角色名。

    返回类型:bool

    示例:

     gbase=# select pg_check_authid(1);

    pg_check_authid

    -----------------

    f

    (1 row)

    1. pg_describe_object(catalog_id, object_id, object_sub_id)

    描述:获取数据库对象的描述。

    返回类型:text

    备注:pg_describe_object返回由目录OID,对象OID和一个(或许0个)子对象ID指定的数据库对象的描述。这有助于确认存储在pg_depend系统表中对象的身份。

    1. pg_get_constraintdef(constraint_oid)

    描述:获取约束的定义。

    返回类型:text

    1. pg_get_constraintdef(constraint_oid, pretty_bool)

    描述:获取约束的定义。

    返回类型:text

    备注:pg_get_constraintdef和pg_get_indexdef分别从约束或索引上使用创建命令进行重构。

    1. pg_get_expr(pg_node_tree, relation_oid)

    描述:反编译表达式的内部形式,假设其中的任何Vars都引用第二个参数指定的关系。

    返回类型:text

    1. pg_get_expr(pg_node_tree, relation_oid, pretty_bool)

    描述:反编译表达式的内部形式,假设其中的任何Vars都引用第二个参数指定的关系。

    返回类型:text

    备注:pg_get_expr反编译一个独立表达式的内部形式,比如一个字段的缺省值。在检查系统表的内容的时候很有用。如果表达式可能包含关键字,则指定他们引用相关的OID作为第二个参数;如果没有关键字,零就足够了。

    1. pg_get_functiondef(func_oid)

    描述:获取函数的定义。

    返回类型:text

    示例:

     gbase=# select * from pg_get_functiondef(598);

    headerlines |                     definition

    -------------+----------------------------------------------------

               4 | CREATE OR REPLACE FUNCTION pg_catalog.abbrev(inet)+

                 |  RETURNS text                                     +

                 |  LANGUAGE internal                                +

                 |  IMMUTABLE STRICT NOT FENCED NOT SHIPPABLE        +

                 | AS $function$inet_abbrev$function$;               +

                 |

    (1 row)

    1. pg_get_function_arguments(func_oid)

    描述:获取函数定义的参数列表(带默认值)。

    返回类型:text

    备注:pg_get_function_arguments返回一个函数的参数列表,需要在CREATE FUNCTION中使用这种格式。

    1. pg_get_function_identity_arguments(func_oid)

    描述:获取参数列表来确定一个函数(不带默认值)。

    返回类型:text

    备注:pg_get_function_identity_arguments返回需要的参数列表用来标识函数,这种形式需要在ALTER FUNCTION中使用,并且这种形式省略了默认值。

    1. pg_get_function_result(func_oid)

    描述:获取函数的RETURNS子句。

    返回类型:text

    备注:pg_get_function_result为函数返回适当的RETURNS子句。

    1. pg_get_indexdef(index_oid)

    描述:获取索引的CREATE INDEX命令。

    返回类型:text

    示例:

     gbase=# select * from pg_get_indexdef(16416);

                                 pg_get_indexdef                             

    -------------------------------------------------------------------------

     CREATE INDEX test3_b_idx ON test3 USING btree (b) TABLESPACE pg_default

    (1 row)

    1. pg_get_indexdef(index_oid, dump_schema_only)

    描述:获取索引的CREATE INDEX命令,仅用于dump场景。对于包含local索引的间隔分区表,当dump_schema_only为true时,返回的创建索引语句中不包含自动创建的分区的local索引信息;当dump_schema_only为false时,返回的创建索引语句中包含自动创建的分区的local索引信息。对于非间隔分区表或者不包含local索引的间隔分区分区表,dump_schema_only参数取值不影响函数返回结果。

    返回类型:text

    示例:

    gbase=# CREATE TABLE sales

    gbase-# (prod_id NUMBER(6),

    gbase(#  cust_id NUMBER,

    gbase(#  time_id DATE,

    gbase (#  channel_id CHAR(1),

    gbase (#  promo_id NUMBER(6),

    gbase (#  quantity_sold NUMBER(3),

    gbase (#  amount_sold NUMBER(10,2)

    gbase (# )

    gbase-# PARTITION BY RANGE( time_id) INTERVAL('1 day')

    gbase -# (

    gbase (# partition p1 VALUES LESS THAN ('2019-02-01 00:00:00'),

    gbase (# partition p2 VALUES LESS THAN ('2019-02-02 00:00:00')

    gbase (# );

    CREATE TABLE

    gbase=# create index index_sales on sales(prod_id) local (PARTITION idx_p1 ,PARTITION idx_p2);

    CREATE INDEX

    -- 插入数据没有匹配的分区,新创建一个分区,并将数据插入该分区

    gbase=# INSERT INTO sales VALUES(1, 12, '2019-02-05 00:00:00', 'a', 1, 1, 1);

    INSERT 0 1

    gbase=# select oid from pg_class where relname = 'index_sales';

      oid

    -------

     16636

    (1 row)

    gbase=# select * from pg_get_indexdef(16636, true);                                                                pg_get_indexdef

    ------------------------------------------------------------------------------------------------------------------------------------------------------

     CREATE INDEX index_sales ON sales USING ubtree (prod_id) LOCAL(PARTITION idx_p1, PARTITION idx_p2)  WITH (storage_type=USTORE) TABLESPACE pg_default

    (1 row)

    gbase=# select * from pg_get_indexdef(16636, false);

                    pg_get_indexdef

    ------------------------------------------------------------------

    ------------------------------------------------------------------

    ------------------------------------------------

     CREATE INDEX index_sales ON sales USING ubtree (prod_id) LOCAL(PA

    RTITION idx_p1, PARTITION idx_p2, PARTITION sys_p1_prod_id_idx)  W

    ITH (storage_type=USTORE) TABLESPACE pg_default

    (1 row)

    1. pg_get_indexdef(index_oid, column_no, pretty_bool)

    描述:获取索引的CREATE INDEX命令,或者如果column_no不为零,则只获取一个索引字段的定义。

    示例:

     gbase=# select * from pg_get_indexdef(16416, 0, false);

                                 pg_get_indexdef                             

    -------------------------------------------------------------------------

     CREATE INDEX test3_b_idx ON test3 USING btree (b) TABLESPACE pg_default

    (1 row)

    gbase=# select * from pg_get_indexdef(16416, 1, false);

     pg_get_indexdef

    -----------------

     b

    (1 row)

    返回类型:text

    备注:pg_get_functiondef为函数返回一个完整的CREATE OR REPLACE FUNCTION语句。

    1. pg_get_keywords()

    描述:获取SQL关键字和类别列表。

    返回类型:setof record

    备注:pg_get_keywords返回一组关于描述服务器识别SQL关键字的记录。word列包含关键字。catcode列包含一个分类代码:U表示通用的,C表示列名,T表示类型或函数名,或R表示保留。catdesc列包含了一个可能本地化描述分类的字符串。

    1. pg_get_userbyid(role_oid)

    描述:获取给定OID的角色名。

    返回类型:name

    备注:pg_get_userbyid通过角色的OID抽取对应的用户名。

    1. pg_check_authid(role_id)

    描述:通过role_id检查用户是否存在。

    返回类型:text

    示例:

     gbase=# select pg_check_authid(20);

    pg_check_authid

    -----------------

    f

    (1 row)

    1. pg_get_viewdef(view_name)

    描述:为视图获取底层的SELECT命令。

    返回类型:text

    1. pg_get_viewdef(view_name, pretty_bool)

    描述:为视图获取底层的SELECT命令,如果pretty_bool为true,行字段可以包含80列。

    返回类型:text

    备注:pg_get_viewdef重构出定义视图的SELECT查询。这些函数大多数都有两种形式,其中带有pretty_bool参数,且参数为true时,是”适合打印”的结果,这种格式更容易读。另一种是缺省的格式,更有可能被将来的不同版本用同样的方法解释。如果是用于转储,那么尽可能避免使用适合打印的格式。给pretty-print参数传递false生成的结果和没有这个参数的变种生成的结果是完全一样。

    1. pg_get_viewdef(view_oid)

    描述:为视图获取底层的SELECT命令。

    返回类型:text

    1. pg_get_viewdef(view_oid, pretty_bool)

    描述:为视图获取底层的SELECT命令,如果pretty_bool为true,行字段可以包含80列。

    返回类型:text

    1. pg_get_viewdef(view_oid, wrap_column_int)

    描述:为视图获取底层的SELECT命令;行字段被换到指定的列数,打印是隐含的。

    返回类型:text

    1. pg_get_tabledef(table_oid)

    描述:根据table_oid获取表定义

    示例:

    gbase=# select * from pg_get_tabledef(16384);

                        pg_get_tabledef                    

    -------------------------------------------------------

     SET search_path = public;                            +

     CREATE  TABLE t1 (                                   +

             c1 bigint DEFAULT nextval('serial'::regclass)+

     )                                                    +

     WITH (orientation=row, compression=no)               +

     TO GROUP group1;

    (1 row)

    返回类型:text

    1. pg_get_tabledef(table_name)

    描述:根据table_name获取表定义。

    示例:

    gbase=# select * from pg_get_tabledef('classes');

                           pg_get_tabledef

    --------------------------------------------------------------

     SET search_path = public;                                   +

     CREATE TABLE classes (                                      +

         name character varying,                                 +

         score bigint                                            +

     )                                                           +

     WITH (orientation=row, compression=no, storage_type=USTORE);

    (1 row)

    返回类型:text

    备注:pg_get_tabledef重构出表定义的CREATE语句,包含了表定义本身、索引信息、comments信息。对于表对象依赖的group、schema、tablespace、server等信息,需要用户自己去创建,表定义里不会有这些对象的创建语句。

    1. pg_options_to_table(reloptions)

    描述:获取存储选项名称/值对的集合。

    返回类型:setof record

    备注:pg_options_to_table当通过pg_class.reloptions或pg_attribute.attoptions时返回存储选项名称/值对(option_name/option_value)的集合。

    1. pg_tablespace_databases(tablespace_oid)

    描述:获取在指定的表空间中有对象的数据库OID集合。

    返回类型:setof oid

    备注:pg_tablespace_databases允许检查表空间的状况,返回在该表空间中保存了对象的数据库OID集合。如果这个函数返回数据行,则该表空间就是非空的,因此不能删除。要显示该表空间中的特定对象,用户需要连接pg_tablespace_databases标识的数据库与查询pg_class系统表。

    1. pg_tablespace_location(tablespace_oid)

    描述:获取表空间所在的文件系统的路径。

    返回类型:text

    1. pg_typeof(any)

    描述:获取任何值的数据类型。

    返回类型:regtype

    备注:pg_typeof返回传递给他的值的数据类型OID。这可能有助于故障排除或动态构造SQL查询。声明此函数返回regtype,这是一个OID别名类型(请参考对象标识符类型);这意味着它是一个为了比较而显示类型名称的OID。

    示例:

     gbase=# SELECT pg_typeof(33);

     pg_typeof

    -----------

     integer

    (1 row)

        

    gbase=# SELECT typlen FROM pg_type WHERE oid = pg_typeof(33);

     typlen

    --------

          4

    (1 row)

    1. collation for (any)

    描述:获取参数的排序。

    返回类型:text

    备注:表达式collation for返回传递给他的值的排序。

    示例:

     gbase=# SELECT collation for (description) FROM pg_description LIMIT 1;

     pg_collation_for

    ------------------

     "default"

    (1 row)

    值可能是引号括起来的并且模式限制的。如果没有为参数表达式排序,则返回一个null值。如果参数不是排序的类型,则抛出一个错误。

    1. pg_extension_update_paths(name)

    描述:返回指定扩展的版本更新路径。

    返回类型:text(source text), text(path text), text(target text)

    1. pg_get_serial_sequence(tablename, colname)

    描述:获取对应表名和列名上的序列。

    返回类型:text

    示例:

     gbase=# select * from pg_get_serial_sequence('t1', 'c1');

     pg_get_serial_sequence

    ------------------------

     public.serial

    (1 row)

    1. pg_sequence_parameters(sequence_oid)

    描述:获取指定sequence的参数,包含起始值,最小值和最大值,递增值等。

    返回类型:int16, int16,int16, bigint, Boolean

    示例:

     gbase=# select * from pg_sequence_parameters(16420);

     start_value | minimum_value |    maximum_value    | increment | cycle_option

    -------------+---------------+---------------------+-----------+-------------

             101 |             1 | 9223372036854775807 |         1 | f

    (1 row)

  • 相关阅读:
    k8s /apis/batch/v1beta1 /apis/policy/v1beta1 接口作用
    售后服务管理升级要怎么做?如何用好售后工单管理系统?
    虚析构+纯虚函数+抽象类+友元
    RIP1 激酶抑制剂可应用于自身免疫性脑脊髓炎的治疗
    JavaWeb----Ajax技术
    CentOS安装OpenNebula(二)
    flash+asp.net美食网站设计
    软件工程从理论到实践客观题汇总(头歌第一章至第八章)
    深入理解MyBatis一级缓存和二级缓存【超详细源码解析】
    淘宝营业执照升级流程是什么?营业执照怎么获取?
  • 原文地址:https://blog.csdn.net/futianxia061112/article/details/125496409