|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/gin_private.h"#include "access/ginxlog.h"#include "access/xloginsert.h"#include "commands/vacuum.h"#include "miscadmin.h"#include "storage/indexfsm.h"#include "storage/lmgr.h"#include "storage/predicate.h"#include "utils/memutils.h"
Go to the source code of this file.
Data Structures | |
| struct | GinVacuumState |
| struct | DataPageDeleteStack |
Typedefs | |
| typedef struct DataPageDeleteStack | DataPageDeleteStack |
| IndexBulkDeleteResult * ginbulkdelete | ( | IndexVacuumInfo * | info, |
| IndexBulkDeleteResult * | stats, | ||
| IndexBulkDeleteCallback | callback, | ||
| void * | callback_state | ||
| ) |
Definition at line 564 of file ginvacuum.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, AmAutoVacuumWorkerProcess, Assert, DataPageDeleteStack::blkno, BufferGetPage(), callback(), CurrentMemoryContext, END_CRIT_SECTION, fb(), FirstOffsetNumber, GIN_EXCLUSIVE, GIN_ROOT_BLKNO, GIN_SHARE, GIN_UNLOCK, GinGetDownlink, ginInsertCleanup(), GinPageGetOpaque, GinPageIsData, GinPageIsLeaf, ginVacuumEntryPage(), ginVacuumPostingTree(), i, IndexVacuumInfo::index, initGinState(), InvalidBlockNumber, LockBuffer(), MAIN_FORKNUM, MarkBufferDirty(), MemoryContextDelete(), IndexBulkDeleteResult::num_index_tuples, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), PageRestoreTempPage(), palloc0_object, RBM_NORMAL, ReadBufferExtended(), START_CRIT_SECTION, IndexVacuumInfo::strategy, GinVacuumState::tmpCxt, UnlockReleaseBuffer(), vacuum_delay_point(), and xlogVacuumPage().
Referenced by ginhandler().
|
static |
Definition at line 129 of file ginvacuum.c.
References Assert, BufferGetPage(), data, END_CRIT_SECTION, fb(), GinDataPageGetPostingItem, GinPageDeletePostingItem(), GinPageGetDeleteXid, GinPageGetOpaque, GinPageSetDeleted, GinPageSetDeleteXid, MAIN_FORKNUM, MarkBufferDirty(), PageSetLSN(), PostingItemGetBlockNumber, PredicateLockPageCombine(), RBM_NORMAL, ReadBufferExtended(), ReadNextTransactionId(), REGBUF_STANDARD, RelationNeedsWAL, ReleaseBuffer(), START_CRIT_SECTION, XLOG_GIN_DELETE_PAGE, XLogBeginInsert(), XLogInsert(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by ginScanToDelete().
Definition at line 801 of file ginvacuum.c.
References fb(), GinPageGetDeleteXid, GinPageIsDeleted, GlobalVisCheckRemovableXid(), PageIsNew(), and TransactionIdIsValid.
Referenced by GinNewBuffer(), and ginvacuumcleanup().
|
static |
Definition at line 246 of file ginvacuum.c.
References Assert, DataPageDeleteStack::blkno, BufferGetBlockNumber(), BufferGetPage(), BufferIsValid(), DataPageDeleteStack::child, fb(), FirstOffsetNumber, GIN_EXCLUSIVE, GIN_UNLOCK, GinDataLeafPageIsEmpty, GinDataPageGetPostingItem, ginDeletePage(), GinPageGetOpaque, GinPageIsData, GinPageIsLeaf, GinPageRightMost, ginScanToDelete(), i, InvalidBuffer, DataPageDeleteStack::isRoot, DataPageDeleteStack::leftBuffer, LockBuffer(), MAIN_FORKNUM, palloc0_object, DataPageDeleteStack::parent, PostingItemGetBlockNumber, RBM_NORMAL, ReadBufferExtended(), ReleaseBuffer(), and UnlockReleaseBuffer().
Referenced by ginScanToDelete(), and ginVacuumPostingTree().
| IndexBulkDeleteResult * ginvacuumcleanup | ( | IndexVacuumInfo * | info, |
| IndexBulkDeleteResult * | stats | ||
| ) |
Definition at line 687 of file ginvacuum.c.
References AmAutoVacuumWorkerProcess, IndexVacuumInfo::analyze_only, Assert, DataPageDeleteStack::blkno, BufferGetPage(), IndexVacuumInfo::estimated_count, IndexBulkDeleteResult::estimated_count, ExclusiveLock, fb(), GIN_ROOT_BLKNO, GIN_SHARE, ginInsertCleanup(), GinPageIsData, GinPageIsLeaf, GinPageIsList, GinPageIsRecyclable(), ginUpdateStats(), IndexVacuumInfo::index, IndexFreeSpaceMapVacuum(), initGinState(), LockBuffer(), LockRelationForExtension(), MAIN_FORKNUM, Max, IndexVacuumInfo::num_heap_tuples, IndexBulkDeleteResult::num_index_tuples, IndexBulkDeleteResult::num_pages, PageGetMaxOffsetNumber(), IndexBulkDeleteResult::pages_free, palloc0_object, RBM_NORMAL, ReadBufferExtended(), RecordFreeIndexPage(), RELATION_IS_LOCAL, RelationGetNumberOfBlocks, IndexVacuumInfo::strategy, UnlockRelationForExtension(), UnlockReleaseBuffer(), and vacuum_delay_point().
Referenced by ginhandler().
|
static |
Definition at line 455 of file ginvacuum.c.
References attnum, BufferGetPage(), elog, ERROR, fb(), FirstOffsetNumber, ginCompressPostingList(), GinFormTuple(), GinGetDownlink, GinGetNPosting, GinGetPosting, GinIsPostingTree, GinItupIsCompressed, GinMaxItemSize, ginPostingListDecode(), gintuple_get_attrnum(), gintuple_get_key(), ginVacuumItemPointers(), i, IndexTupleSize(), items, nitems, PageAddItem, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), PageGetTempPageCopy(), PageIndexTupleDelete(), pfree(), RelationGetRelationName, and SizeOfGinPostingList.
Referenced by ginbulkdelete().
| ItemPointer ginVacuumItemPointers | ( | GinVacuumState * | gvs, |
| ItemPointerData * | items, | ||
| int | nitem, | ||
| int * | nremaining | ||
| ) |
Definition at line 47 of file ginvacuum.c.
References fb(), i, items, palloc_array, and remaining.
Referenced by ginVacuumEntryPage(), and ginVacuumPostingTreeLeaf().
|
static |
Definition at line 408 of file ginvacuum.c.
References DataPageDeleteStack::child, fb(), ginScanToDelete(), ginVacuumPostingTreeLeaves(), InvalidBuffer, InvalidOffsetNumber, LockBufferForCleanup(), MAIN_FORKNUM, pfree(), RBM_NORMAL, ReadBufferExtended(), root, and UnlockReleaseBuffer().
Referenced by ginbulkdelete().
|
static |
Definition at line 345 of file ginvacuum.c.
References Assert, DataPageDeleteStack::blkno, BufferGetPage(), fb(), FirstOffsetNumber, GIN_EXCLUSIVE, GIN_SHARE, GIN_UNLOCK, GinDataLeafPageIsEmpty, GinDataPageGetPostingItem, GinPageGetOpaque, GinPageIsData, GinPageIsLeaf, ginVacuumPostingTreeLeaf(), InvalidBlockNumber, LockBuffer(), MAIN_FORKNUM, MemoryContextReset(), MemoryContextSwitchTo(), PageGetMaxOffsetNumber(), PostingItemGetBlockNumber, RBM_NORMAL, ReadBufferExtended(), and UnlockReleaseBuffer().
Referenced by ginVacuumPostingTree().
Definition at line 89 of file ginvacuum.c.
References Assert, BufferGetPage(), fb(), GinPageIsData, GinPageIsLeaf, PageSetLSN(), REGBUF_FORCE_IMAGE, REGBUF_STANDARD, RelationNeedsWAL, XLOG_GIN_VACUUM_PAGE, XLogBeginInsert(), XLogInsert(), and XLogRegisterBuffer().
Referenced by ginbulkdelete().