285 errmsg(
"out of overflow pages in hash index \"%s\"",
463 elog(
ERROR,
"firstfreebit found no free bit");
517 is_prim_bucket_same_wrt,
518 is_prev_bucket_same_wrt;
661 xlrec.nextblkno = nextblkno;
663 xlrec.is_prim_bucket_same_wrt = is_prim_bucket_same_wrt;
664 xlrec.is_prev_bucket_same_wrt = is_prev_bucket_same_wrt;
673 if (!is_prim_bucket_same_wrt)
688 else if (is_prim_bucket_same_wrt || is_prev_bucket_same_wrt)
701 if (!is_prev_bucket_same_wrt)
1005 if (!
xlrec.is_prim_bucket_same_wrt)
#define InvalidBlockNumber
static bool BlockNumberIsValid(BlockNumber blockNumber)
BlockNumber BufferGetBlockNumber(Buffer buffer)
void MarkBufferDirty(Buffer buffer)
static Page BufferGetPage(Buffer buffer)
static Size BufferGetPageSize(Buffer buffer)
static void LockBuffer(Buffer buffer, BufferLockMode mode)
static bool BufferIsValid(Buffer bufnum)
Size PageGetFreeSpaceForMultipleTuples(const PageData *page, int ntups)
void PageIndexMultiDelete(Page page, OffsetNumber *itemnos, int nitems)
static bool PageIsEmpty(const PageData *page)
PageHeaderData * PageHeader
static ItemId PageGetItemId(Page page, OffsetNumber offsetNumber)
static void * PageGetItem(PageData *page, const ItemIdData *itemId)
static void PageSetLSN(Page page, XLogRecPtr lsn)
static OffsetNumber PageGetMaxOffsetNumber(const PageData *page)
#define PG_USED_FOR_ASSERTS_ONLY
#define Assert(condition)
int errcode(int sqlerrcode)
#define ereport(elevel,...)
#define HashPageGetOpaque(page)
#define HashPageGetBitmap(page)
#define HashPageGetMeta(page)
#define BMPGSZ_BIT(metap)
#define BMPG_SHIFT(metap)
#define HASH_XLOG_FREE_OVFL_BUFS
#define XLOG_HASH_SQUEEZE_PAGE
#define SizeOfHashAddOvflPage
#define XLOG_HASH_ADD_OVFL_PAGE
#define SizeOfHashSqueezePage
#define SizeOfHashMovePageContents
#define XLOG_HASH_MOVE_PAGE_CONTENTS
void _hash_pgaddmultitup(Relation rel, Buffer buf, IndexTuple *itups, OffsetNumber *itup_offsets, uint16 nitups)
void _hash_squeezebucket(Relation rel, Bucket bucket, BlockNumber bucket_blkno, Buffer bucket_buf, BufferAccessStrategy bstrategy)
static uint32 _hash_firstfreebit(uint32 map)
uint32 _hash_ovflblkno_to_bitno(HashMetaPage metap, BlockNumber ovflblkno)
BlockNumber _hash_freeovflpage(Relation rel, Buffer bucketbuf, Buffer ovflbuf, Buffer wbuf, IndexTuple *itups, OffsetNumber *itup_offsets, Size *tups_size, uint16 nitups, BufferAccessStrategy bstrategy)
void _hash_initbitmapbuffer(Buffer buf, uint16 bmsize, bool initpage)
Buffer _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf, bool retain_pin)
static BlockNumber bitno_to_blkno(HashMetaPage metap, uint32 ovflbitnum)
Buffer _hash_getinitbuf(Relation rel, BlockNumber blkno)
void _hash_relbuf(Relation rel, Buffer buf)
void _hash_pageinit(Page page, Size size)
Buffer _hash_getbuf(Relation rel, BlockNumber blkno, int access, int flags)
Buffer _hash_getbuf_with_strategy(Relation rel, BlockNumber blkno, int access, int flags, BufferAccessStrategy bstrategy)
Buffer _hash_getnewbuf(Relation rel, BlockNumber blkno, ForkNumber forkNum)
uint32 _hash_get_totalbuckets(uint32 splitpoint_phase)
void _hash_checkpage(Relation rel, Buffer buf, int flags)
IndexTuple CopyIndexTuple(IndexTuple source)
#define ItemIdIsDead(itemId)
IndexTupleData * IndexTuple
static Size IndexTupleSize(const IndexTupleData *itup)
#define MaxIndexTuplesPerPage
void pfree(void *pointer)
#define START_CRIT_SECTION()
#define END_CRIT_SECTION()
#define OffsetNumberNext(offsetNumber)
#define FirstOffsetNumber
static char buf[DEFAULT_XLOG_SEG_SIZE]
#define RelationGetRelationName(relation)
#define RelationNeedsWAL(relation)
BlockNumber hashm_mapp[HASH_MAX_BITMAPS]
uint32 hashm_spares[HASH_MAX_SPLITPOINTS]
BlockNumber hasho_nextblkno
BlockNumber hasho_prevblkno
Datum bit(PG_FUNCTION_ARGS)
XLogRecPtr XLogInsert(RmgrId rmid, uint8 info)
void XLogRegisterBufData(uint8 block_id, const void *data, uint32 len)
void XLogRegisterData(const void *data, uint32 len)
void XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags)
void XLogBeginInsert(void)
XLogRecPtr XLogGetFakeLSN(Relation rel)
void XLogEnsureRecordSpace(int max_block_id, int ndatas)