更新时间:2025-05-29 GMT+08:00

数据库对象位置函数

pg_relation_filenode(relation regclass)

描述:指定关系的文件节点数。

返回值类型:oid

备注:pg_relation_filenode接受一个表、索引、序列或压缩表的OID或者名称,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名称的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说, relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。

pg_relation_filepath(relation regclass)

描述:指定关系的文件路径名。只能用于非段页式关系。

返回值类型:text

备注:pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于数据库集群的数据目录PGDATA)。

段页式关系建议使用段页式相关函数或视图,例如:

SELECT e.*, f.file_name
FROM gs_seg_extents e, gs_seg_datafiles f
WHERE e.tablespace_name = f.tablespace_name AND e.bucketnode = f.bucketnode ADN e.file_id = f.file_id ADN e.forknum = f.forknum;

get_large_table_name(relfile_node text, threshold_size_gb int8)

描述:根据表的文件编码(relfile_node)查询对应的表大小(单位为GB)是否超过阈值(threshold_size_gb),如果超过则返回模式名和表名(形式为schemaname.tablename), 否则返回字符串'null'。

返回值类型:text

pg_filenode_relation(tablespacename, relname)

描述:获取对应的tablespace和relfilenode所对应的表名。

返回类型:regclass

pg_partition_filenode(partition_oid)

描述:获取到指定分区表的oid锁对应的filenode。

返回类型:oid

pg_partition_filepath(partition_oid)

描述:指定分区的文件路径名。只能用于非段页式关系。

返回值类型:text

备注:段页式关系建议使用段页式相关函数或视图,例如:

SELECT e.*, f.file_name
FROM gs_seg_extents e, gs_seg_datafiles f
WHERE e.tablespace_name = f.tablespace_name ADN e.bucketnode = f.bucketnode ADN e.file_id = f.file_id ADN e.forknum = f.forknum;