暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss 系统表信息函数(3)

MTL 2022-11-04
231
  • pg_get_function_identity_arguments(func_oid)

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

    返回类型:text

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

  • pg_get_function_result(func_oid)

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

    返回类型:text

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

  • pg_get_indexdef(index_oid)

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

    返回类型:text

    示例:

    ""openGauss=# select * from pg_get_indexdef(16416);
                                 pg_get_indexdef                             
    -------------------------------------------------------------------------
     CREATE INDEX test3_b_idx ON test3 USING btree (b) TABLESPACE pg_default
    (1 row)
    
  • 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

    示例:

    openGauss=# CREATE TABLE sales
    openGauss-# (prod_id NUMBER(6),
    openGauss(#  cust_id NUMBER,
    openGauss(#  time_id DATE,
    openGauss(#  channel_id CHAR(1),
    openGauss(#  promo_id NUMBER(6),
    openGauss(#  quantity_sold NUMBER(3),
    openGauss(#  amount_sold NUMBER(10,2)
    openGauss(# )
    PARTITION BY RANGE( time_id) INTERVAL('1 day')
    openGauss-# openGauss-# (
    openGauss(#  partition p1 VALUES LESS THAN ('2019-02-01 00:00:00'),
    openGauss(#  partition p2 VALUES LESS THAN ('2019-02-02 00:00:00')
    openGauss(# );
    CREATE TABLE
    openGauss=# create index index_sales on sales(prod_id) local (PARTITION idx_p1 ,PARTITION idx_p2);
    CREATE INDEX
    openGauss=# -- 插入数据没有匹配的分区,新创建一个分区,并将数据插入该分区
    openGauss=# INSERT INTO sales VALUES(1, 12, '2019-02-05 00:00:00', 'a', 1, 1, 1);
    INSERT 0 1
    openGauss=# select oid from pg_class where relname = 'index_sales';
      oid
    -------
     24632
    (1 row)
    openGauss=# select * from pg_get_indexdef(24632, true);
                                                         pg_get_indexdef
    --------------------------------------------------------------------------------------------------------------------------
     CREATE INDEX index_sales ON sales USING btree (prod_id) LOCAL(PARTITION idx_p1, PARTITION idx_p2)  TABLESPACE pg_default
    (1 row)
    openGauss=# select * from pg_get_indexdef(24632, false);
                                                                        pg_get_indexdef
    
    ------------------------------------------------------------------------------------------------------------------------------------
    --------------------
     CREATE INDEX index_sales ON sales USING btree (prod_id) LOCAL(PARTITION idx_p1, PARTITION idx_p2, PARTITION sys_p1_prod_id_idx)  TA
    BLESPACE pg_default
    (1 row
最后修改时间:2022-11-05 10:34:42
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论