|
PostgreSQL Source Code git master
|


Go to the source code of this file.
Data Structures | |
| struct | FSMPageData |
Macros | |
| #define | NodesPerPage |
| #define | NonLeafNodesPerPage (BLCKSZ / 2 - 1) |
| #define | LeafNodesPerPage (NodesPerPage - NonLeafNodesPerPage) |
| #define | SlotsPerFSMPage LeafNodesPerPage |
Typedefs | |
| typedef FSMPageData * | FSMPage |
Functions | |
| int | fsm_search_avail (Buffer buf, uint8 minvalue, bool advancenext, bool exclusive_lock_held) |
| uint8 | fsm_get_avail (Page page, int slot) |
| uint8 | fsm_get_max_avail (Page page) |
| bool | fsm_set_avail (Page page, int slot, uint8 value) |
| bool | fsm_truncate_avail (Page page, int nslots) |
| bool | fsm_rebuild_page (Page page) |
| #define LeafNodesPerPage (NodesPerPage - NonLeafNodesPerPage) |
Definition at line 55 of file fsm_internals.h.
| #define NodesPerPage |
Definition at line 51 of file fsm_internals.h.
| #define NonLeafNodesPerPage (BLCKSZ / 2 - 1) |
Definition at line 54 of file fsm_internals.h.
| #define SlotsPerFSMPage LeafNodesPerPage |
Definition at line 61 of file fsm_internals.h.
| typedef FSMPageData* FSMPage |
Definition at line 45 of file fsm_internals.h.
Definition at line 122 of file fsmpage.c.
References Assert(), FSMPageData::fp_nodes, LeafNodesPerPage, NonLeafNodesPerPage, and PageGetContents().
Referenced by fsm_vacuum_page(), and GetRecordedFreeSpace().
Definition at line 138 of file fsmpage.c.
References FSMPageData::fp_nodes, and PageGetContents().
Referenced by fsm_search(), and fsm_vacuum_page().
| bool fsm_rebuild_page | ( | Page | page | ) |
Definition at line 342 of file fsmpage.c.
References FSMPageData::fp_nodes, leftchild, Max, NodesPerPage, NonLeafNodesPerPage, and PageGetContents().
Referenced by fsm_search_avail(), fsm_set_avail(), and fsm_truncate_avail().
Definition at line 158 of file fsmpage.c.
References buf, BUFFER_LOCK_EXCLUSIVE, BUFFER_LOCK_UNLOCK, BufferGetPage(), BufferGetTag(), RelFileLocator::dbOid, DEBUG1, elog, FSMPageData::fp_next_slot, FSMPageData::fp_nodes, fsm_rebuild_page(), LeafNodesPerPage, leftchild, LockBuffer(), MarkBufferDirtyHint(), NodesPerPage, NonLeafNodesPerPage, PageGetContents(), parentof, RelFileLocator::relNumber, rightneighbor(), and RelFileLocator::spcOid.
Referenced by fsm_search(), and fsm_set_and_search().
Definition at line 63 of file fsmpage.c.
References Assert(), FSMPageData::fp_nodes, fsm_rebuild_page(), LeafNodesPerPage, leftchild, Max, NodesPerPage, NonLeafNodesPerPage, PageGetContents(), parentof, and value.
Referenced by fsm_search(), fsm_set_and_search(), fsm_vacuum_page(), and XLogRecordPageWithFreeSpace().
| bool fsm_truncate_avail | ( | Page | page, |
| int | nslots | ||
| ) |
Definition at line 313 of file fsmpage.c.
References Assert(), FSMPageData::fp_nodes, fsm_rebuild_page(), LeafNodesPerPage, NodesPerPage, NonLeafNodesPerPage, and PageGetContents().
Referenced by FreeSpaceMapPrepareTruncateRel().