PostgreSQL Source Code git master
|
#include "postgres.h"
#include "access/gin_private.h"
#include "access/nbtree.h"
#include "catalog/pg_am.h"
#include "utils/memutils.h"
#include "utils/rel.h"
#include "verify_common.h"
#include "string.h"
Go to the source code of this file.
Data Structures | |
struct | GinScanItem |
struct | GinPostingTreeScanItem |
Typedefs | |
typedef struct GinScanItem | GinScanItem |
typedef struct GinPostingTreeScanItem | GinPostingTreeScanItem |
Functions | |
PG_FUNCTION_INFO_V1 (gin_index_check) | |
static void | gin_check_parent_keys_consistency (Relation rel, Relation heaprel, void *callback_state, bool readonly) |
static void | check_index_page (Relation rel, Buffer buffer, BlockNumber blockNo) |
static IndexTuple | gin_refind_parent (Relation rel, BlockNumber parentblkno, BlockNumber childblkno, BufferAccessStrategy strategy) |
static ItemId | PageGetItemIdCareful (Relation rel, BlockNumber block, Page page, OffsetNumber offset) |
Datum | gin_index_check (PG_FUNCTION_ARGS) |
static ItemPointer | ginReadTupleWithoutState (IndexTuple itup, int *nitems) |
static void | gin_check_posting_tree_parent_keys_consistency (Relation rel, BlockNumber posting_tree_root) |
typedef struct GinPostingTreeScanItem GinPostingTreeScanItem |
typedef struct GinScanItem GinScanItem |
|
static |
Definition at line 669 of file verify_gin.c.
References BufferGetBlockNumber(), BufferGetPage(), ereport, errcode(), errhint(), errmsg(), ERROR, GinPageIsDeleted, GinPageIsLeaf, InvalidOffsetNumber, MAXALIGN, MaxIndexTuplesPerPage, PageGetMaxOffsetNumber(), PageGetSpecialSize(), PageIsNew(), and RelationGetRelationName.
Referenced by gin_check_parent_keys_consistency().
|
static |
Definition at line 395 of file verify_gin.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, attnum, BAS_BULKREAD, GinScanItem::blkno, BufferGetLSNAtomic(), BufferGetPage(), CHECK_FOR_INTERRUPTS, check_index_page(), CopyIndexTuple(), CurrentMemoryContext, DEBUG3, GinScanItem::depth, elog, ereport, errcode(), errmsg(), ERROR, FirstOffsetNumber, GetAccessStrategy(), gin_check_posting_tree_parent_keys_consistency(), gin_refind_parent(), GIN_ROOT_BLKNO, GIN_SHARE, GIN_UNLOCK, ginCompareEntries(), GinGetDownlink, GinGetPostingTree, GinIsPostingTree, GinPageGetOpaque, GinPageIsLeaf, ginReadTupleWithoutState(), gintuple_get_attrnum(), gintuple_get_key(), i, IndexTupleSize(), initGinState(), InvalidAttrNumber, InvalidBlockNumber, InvalidXLogRecPtr, ItemIdGetLength, ItemPointerGetOffsetNumber(), j, LockBuffer(), MAIN_FORKNUM, MAXALIGN, MemoryContextDelete(), MemoryContextSwitchTo(), GinScanItem::next, NOTICE, OffsetNumberIsValid, OffsetNumberNext, PageGetItem(), PageGetItemIdCareful(), PageGetMaxOffsetNumber(), palloc(), palloc0(), GinScanItem::parentblk, GinScanItem::parentlsn, GinScanItem::parenttup, pfree(), RBM_NORMAL, ReadBufferExtended(), RelationGetRelationName, and ReleaseBuffer().
Referenced by gin_index_check().
|
static |
Definition at line 135 of file verify_gin.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, Assert(), BAS_BULKREAD, GinPostingTreeScanItem::blkno, BlockIdGetBlockNumber(), BufferGetPage(), CHECK_FOR_INTERRUPTS, PostingItem::child_blkno, CurrentMemoryContext, DEBUG1, DEBUG3, GinPostingTreeScanItem::depth, elog, ereport, errcode(), errmsg(), ERROR, FirstOffsetNumber, GetAccessStrategy(), GIN_SHARE, GIN_UNLOCK, GinDataLeafPageGetItems(), GinDataPageGetPostingItem, GinDataPageGetRightBound, GinPageGetOpaque, GinPageIsData, GinPageIsLeaf, i, InvalidBlockNumber, InvalidOffsetNumber, ItemPointerCompare(), ItemPointerEquals(), ItemPointerGetBlockNumber(), ItemPointerGetBlockNumberNoCheck(), ItemPointerGetOffsetNumber(), ItemPointerGetOffsetNumberNoCheck(), ItemPointerIsValid(), ItemPointerSetInvalid(), ItemPointerSetMin, PostingItem::key, sort-test::list, LockBuffer(), MAIN_FORKNUM, MAXALIGN, MAXPGPATH, MemoryContextDelete(), MemoryContextSwitchTo(), GinPostingTreeScanItem::next, OffsetNumberNext, palloc(), palloc0(), GinPostingTreeScanItem::parentblk, GinPostingTreeScanItem::parentkey, pfree(), RBM_NORMAL, ReadBufferExtended(), RelationGetRelationName, ReleaseBuffer(), SizeOfPageHeaderData, and snprintf.
Referenced by gin_check_parent_keys_consistency().
Datum gin_index_check | ( | PG_FUNCTION_ARGS | ) |
Definition at line 80 of file verify_gin.c.
References AccessShareLock, amcheck_lock_relation_and_check(), gin_check_parent_keys_consistency(), PG_GETARG_OID, and PG_RETURN_VOID.
|
static |
Definition at line 725 of file verify_gin.c.
References BufferGetPage(), CopyIndexTuple(), FirstOffsetNumber, GIN_SHARE, GinPageIsLeaf, ItemPointerGetBlockNumber(), LockBuffer(), MAIN_FORKNUM, OffsetNumberNext, PageGetItem(), PageGetItemIdCareful(), PageGetMaxOffsetNumber(), RBM_NORMAL, ReadBufferExtended(), IndexTupleData::t_tid, and UnlockReleaseBuffer().
Referenced by gin_check_parent_keys_consistency().
|
static |
Definition at line 100 of file verify_gin.c.
References elog, ERROR, GinGetNPosting, GinGetPosting, GinItupIsCompressed, ginPostingListDecode(), nitems, and palloc().
Referenced by gin_check_parent_keys_consistency().
|
static |
Definition at line 766 of file verify_gin.c.
References ereport, errcode(), errdetail_internal(), errmsg(), ERROR, ItemIdGetFlags, ItemIdGetLength, ItemIdGetOffset, ItemIdIsDead, ItemIdIsRedirected, ItemIdIsUsed, MAXALIGN, PageGetItemId(), and RelationGetRelationName.
Referenced by gin_check_parent_keys_consistency(), and gin_refind_parent().
PG_FUNCTION_INFO_V1 | ( | gin_index_check | ) |