This topic describes the heap table structure of PolarDB for PostgreSQL(Compatible with Oracle).

Heap table structure
ItemDescription
table filesA table file that consists of one or more data files. The number of data files depends on the data file size. If the data file size exceeds 1 GB, a new data file is generated.
fileA data file that consists of multiple data blocks.
pageA data block that consists of multiple rows.
page headerThe data block header. For more information, see Information about the data block header.
tupleA row.
tuple headerThe row header. For more information, see Information about the row header.
Table 1. Information about the data block header
FieldDescription
pd_lsnThe position where the write-ahead logging (WAL) file of the data block is modified for the last time.
pd_checksumThe page checksum.
pd_flagsThe flag bits.
pd_lowerThe offset to the start of free space.
pd_upperThe offset to the end of free space.
pd_specialThe offset to the start of special space.
pd_pagesize_versionThe page size and the layout version number.
pd_prune_xidThe earliest XMAX that is not deleted from the page. If none exists, the value is 0.
Table 2. Information about the row header
FieldDescription
t_xminThe insert transaction identifier (XID).
t_xmaxThe delete XID.
t_cidThe command identifier (CID) of the command that you run to insert or delete data.
t_ctidThe tuple identifier (TID) of the current row version or later.
t_infomaskThe flag bits.
t_infomask2The extra flag bits.
t_hoffThe offset to user data.
tuple dataThe actual data.