vacuum (6)

VacPage

vacuumするページの情報を記録する。offsets_used以外の情報は、scan_heapで設定される。freeにはvacuumでdeadタプルを削除してページの断片化を解消した後の空き領域(pd_upperとpg_lowerの間のスペース)の大きさが設定される。offsets配列にはdeadタプルのOffsetNumberが登録される。offsets_freeにoffsets配列に登録されたdeadタプルの数が設定される。

typedef struct VacPageData
{
    BlockNumber blkno;          /* BlockNumber of this Page */
    Size        free;           /* FreeSpace on this Page */
    uint16      offsets_used;   /* Number of OffNums used by vacuum */
    uint16      offsets_free;   /* Number of OffNums free or to be free */
    OffsetNumber offsets[1];    /* Array of free OffNums */
} VacPageData;

typedef VacPageData *VacPage;