PostgreSQL Source Code: src/backend/storage/freespace/indexfsm.c File Reference (original) (raw)

#include "[postgres.h](postgres%5F8h%5Fsource.html)"
#include "[storage/freespace.h](freespace%5F8h%5Fsource.html)"
#include "[storage/indexfsm.h](indexfsm%5F8h%5Fsource.html)"

Include dependency graph for indexfsm.c:

Go to the source code of this file.

Functions
BlockNumber GetFreeIndexPage (Relation rel)
void RecordFreeIndexPage (Relation rel, BlockNumber freeBlock)
void RecordUsedIndexPage (Relation rel, BlockNumber usedBlock)
void IndexFreeSpaceMapVacuum (Relation rel)

Function Documentation

GetFreeIndexPage()

BlockNumber GetFreeIndexPage ( Relation rel )

Definition at line 38 of file indexfsm.c.

39{

40 BlockNumber blkno = GetPageWithFreeSpace(rel, BLCKSZ / 2);

41

42 if (blkno != InvalidBlockNumber)

43 RecordUsedIndexPage(rel, blkno);

44

45 return blkno;

46}

BlockNumber

uint32 BlockNumber

Definition: block.h:31

InvalidBlockNumber

#define InvalidBlockNumber

Definition: block.h:33

GetPageWithFreeSpace

BlockNumber GetPageWithFreeSpace(Relation rel, Size spaceNeeded)

Definition: freespace.c:137

RecordUsedIndexPage

void RecordUsedIndexPage(Relation rel, BlockNumber usedBlock)

Definition: indexfsm.c:62

References GetPageWithFreeSpace(), InvalidBlockNumber, and RecordUsedIndexPage().

Referenced by _bt_allocbuf(), BloomNewBuffer(), GinNewBuffer(), gistNewBuffer(), and SpGistNewBuffer().

IndexFreeSpaceMapVacuum()

void IndexFreeSpaceMapVacuum ( Relation rel )

Definition at line 71 of file indexfsm.c.

72{

73 FreeSpaceMapVacuum(rel);

74}

FreeSpaceMapVacuum

void FreeSpaceMapVacuum(Relation rel)

Definition: freespace.c:358

References FreeSpaceMapVacuum().

Referenced by blvacuumcleanup(), btvacuumscan(), ginInsertCleanup(), ginvacuumcleanup(), gistvacuumscan(), and spgvacuumscan().

RecordFreeIndexPage()

void RecordFreeIndexPage ( Relation rel,
BlockNumber freeBlock
)

Definition at line 52 of file indexfsm.c.

53{

54 RecordPageWithFreeSpace(rel, freeBlock, BLCKSZ - 1);

55}

RecordPageWithFreeSpace

void RecordPageWithFreeSpace(Relation rel, BlockNumber heapBlk, Size spaceAvail)

Definition: freespace.c:194

References RecordPageWithFreeSpace().

Referenced by _bt_pendingfsm_finalize(), blvacuumcleanup(), btvacuumpage(), ginvacuumcleanup(), gistvacuumpage(), shiftList(), and spgvacuumpage().

RecordUsedIndexPage()

void RecordUsedIndexPage ( Relation rel,
BlockNumber usedBlock
)

Definition at line 62 of file indexfsm.c.

63{

64 RecordPageWithFreeSpace(rel, usedBlock, 0);

65}

References RecordPageWithFreeSpace().

Referenced by GetFreeIndexPage().