更新时间:2024-06-03 GMT+08:00

PG_PARTITION

PG_PARTITION系统表存储数据库内所有分区表(partitioned table)、分区(table partition)和分区索引(index partition)三类对象的信息。分区表索引(partitioned index)的信息不在PG_PARTITION系统表中保存。由于分区表(partitioned table)没有实际的物理文件,所以在pg_partition中不会记录其relfilenode、relpages、reltuples、reltoastrelid、reltoastidxid等信息。

表1 PG_PARTITION字段

名称

类型

描述

oid

oid

行标识符(隐含字段,必须明确选择)。

relname

name

分区表、分区、分区上toast表和分区索引的名称。

parttype

"char"

对象类型:
  • 'r':partitioned table
  • 'p':table partition
  • 'x':index partition

parentid

oid

  • 当对象为分区表或分区时,此字段表示分区表在PG_CLASS中的OID。
  • 当对象为index partition时,此字段表示所属分区表索引(partitioned index)的OID。

rangenum

integer

保留字段。

intervalnum

integer

保留字段。

partstrategy

"char"

分区表分区策略,现在仅支持:
  • 'r':范围分区。
  • 'l':list分区。
  • 'h':hash分区。
  • 'n':无分区策略,该对象不是表分区。

relfilenode

oid

table partition、index partition、分区上toast表的物理存储位置。

reltablespace

oid

table partition、index partition、分区上toast表所属表空间的OID。

relpages

double precision

统计信息:table partition、index partition的数据页数量。

reltuples

double precision

统计信息:table partition、index partition的元组数。

relallvisible

integer

统计信息:table partition、index partition的可见数据页数。

reltoastrelid

oid

table partition所对应toast表的OID。

reltoastidxid

oid

table partition所对应toast表的索引的OID。

indextblid

oid

index partition对应table partition的OID。

indisusable

boolean

分区索引是否可用。

  • t(true):表示可用。
  • f(false):表示不可用。

relfrozenxid

xid32

冻结事务ID号。

为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。

intspnum

integer

间隔分区所属表空间的个数。

partkey

int2vector

分区键的列号。

intervaltablespace

oidvector

间隔分区所属的表空间,间隔分区以round-robin方式落在这些表空间内。

interval

text[]

间隔分区的间隔值。

boundaries

text[]

范围分区和间隔分区的上边界。

transit

text[]

间隔分区的跳转点。

reloptions

text[]

设置partition的存储属性,与pg_class.reloptions的形态一样,用"keyword=value"格式的字符串来表示,目前用于在线扩容的信息搜集。

relfrozenxid64

xid

冻结事务ID号。

relminmxid

xid

冻结多事务ID号。

partitionno

integer

用于维护分区表中的分区Map结构。
  • 当对象为分区时,此字段表示分区ID,从1开始自增。
  • 当对象为分区表时,此字段表示分区ID的最大值,并使用负值来特殊标记,该值会随着部分分区DDL语法不断递增。
  • 当对象为其他类型时,此字段为空值,没有任何含义。

partitionno是一个永久自增列,可以通过语法ALTER TABLE t_name RESET PARTITION命令重置/回收。

subpartitionno

integer

保留字段。