PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "access/hash.h"
#include "access/reloptions.h"
#include "access/relscan.h"
#include "port/pg_bitutils.h"
#include "utils/lsyscache.h"
#include "utils/rel.h"
Go to the source code of this file.
Macros | |
#define | CALC_NEW_BUCKET(old_bucket, lowmask) old_bucket | (lowmask + 1) |
#define CALC_NEW_BUCKET | ( | old_bucket, | |
lowmask | |||
) | old_bucket | (lowmask + 1) |
Definition at line 24 of file hashutil.c.
OffsetNumber _hash_binsearch | ( | Page | page, |
uint32 | hash_value | ||
) |
Definition at line 350 of file hashutil.c.
References _hash_get_indextuple_hashkey(), Assert, FirstOffsetNumber, lower(), OffsetNumberIsValid, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), and upper().
Referenced by _hash_pgaddmultitup(), _hash_pgaddtup(), and _hash_readpage().
OffsetNumber _hash_binsearch_last | ( | Page | page, |
uint32 | hash_value | ||
) |
Definition at line 388 of file hashutil.c.
References _hash_get_indextuple_hashkey(), Assert, FirstOffsetNumber, lower(), OffsetNumberIsValid, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), and upper().
Referenced by _hash_readpage().
Definition at line 210 of file hashutil.c.
References buf, BufferGetBlockNumber(), BufferGetPage(), ereport, errcode(), errhint(), errmsg(), ERROR, HASH_MAGIC, HASH_VERSION, HashMetaPageData::hashm_magic, HashMetaPageData::hashm_version, HashPageOpaqueData::hasho_flag, HashPageGetMeta, HashPageGetOpaque, LH_META_PAGE, MAXALIGN, PageGetSpecialSize(), PageIsNew(), and RelationGetRelationName.
Referenced by _hash_addovflpage(), _hash_expandtable(), _hash_freeovflpage(), _hash_getbuf(), _hash_getbuf_with_condlock_cleanup(), _hash_getbuf_with_strategy(), _hash_pgaddmultitup(), _hash_pgaddtup(), _hash_readpage(), and hashbulkdelete().
bool _hash_checkqual | ( | IndexScanDesc | scan, |
IndexTuple | itup | ||
) |
Definition at line 31 of file hashutil.c.
References DatumGetBool(), FunctionCall2Coll(), index_getattr(), IndexScanDescData::indexRelation, sort-test::key, IndexScanDescData::keyData, IndexScanDescData::numberOfKeys, RelationGetDescr, SK_ISNULL, and test().
Referenced by _hash_load_qualified_items().
bool _hash_convert_tuple | ( | Relation | index, |
Datum * | user_values, | ||
bool * | user_isnull, | ||
Datum * | index_values, | ||
bool * | index_isnull | ||
) |
Definition at line 318 of file hashutil.c.
References _hash_datum2hashkey(), and UInt32GetDatum().
Referenced by hashbuildCallback(), and hashinsert().
Definition at line 82 of file hashutil.c.
References DatumGetUInt32(), FunctionCall1Coll(), HASHSTANDARD_PROC, index_getprocinfo(), sort-test::key, and RelationData::rd_indcollation.
Referenced by _hash_convert_tuple(), and _hash_first().
Definition at line 102 of file hashutil.c.
References DatumGetUInt32(), elog, ERROR, get_opfamily_proc(), HASHSTANDARD_PROC, sort-test::key, OidFunctionCall1Coll(), RelationData::rd_indcollation, RelationData::rd_opfamily, RegProcedureIsValid, and RelationGetRelationName.
Referenced by _hash_first().
uint32 _hash_get_indextuple_hashkey | ( | IndexTuple | itup | ) |
Definition at line 291 of file hashutil.c.
References IndexInfoFindDataOffset(), and IndexTupleData::t_info.
Referenced by _h_indexbuild(), _hash_binsearch(), _hash_binsearch_last(), _hash_doinsert(), _hash_load_qualified_items(), _hash_pgaddmultitup(), _hash_pgaddtup(), _hash_splitbucket(), hash_page_items(), and hashbucketcleanup().
BlockNumber _hash_get_newblock_from_oldbucket | ( | Relation | rel, |
Bucket | old_bucket | ||
) |
Definition at line 461 of file hashutil.c.
References _hash_get_newbucket_from_oldbucket(), _hash_getbuf(), _hash_relbuf(), BUCKET_TO_BLKNO, BufferGetPage(), HASH_METAPAGE, HASH_READ, HashMetaPageData::hashm_lowmask, HashMetaPageData::hashm_maxbucket, HashPageGetMeta, and LH_META_PAGE.
Referenced by _hash_finish_split().
Bucket _hash_get_newbucket_from_oldbucket | ( | Relation | rel, |
Bucket | old_bucket, | ||
uint32 | lowmask, | ||
uint32 | maxbucket | ||
) |
Definition at line 494 of file hashutil.c.
References CALC_NEW_BUCKET.
Referenced by _hash_get_newblock_from_oldbucket(), and hashbucketcleanup().
BlockNumber _hash_get_oldblock_from_newbucket | ( | Relation | rel, |
Bucket | new_bucket | ||
) |
Definition at line 422 of file hashutil.c.
References _hash_getbuf(), _hash_relbuf(), BUCKET_TO_BLKNO, BufferGetPage(), HASH_METAPAGE, HASH_READ, HashPageGetMeta, LH_META_PAGE, and pg_leftmost_one_pos32().
Referenced by _hash_first().
Definition at line 174 of file hashutil.c.
References HASH_SPLITPOINT_GROUPS_WITH_ONE_PHASE, HASH_SPLITPOINT_PHASE_BITS, and HASH_SPLITPOINT_PHASE_MASK.
Referenced by _hash_expandtable(), _hash_init_metabuffer(), _hash_ovflblkno_to_bitno(), and bitno_to_blkno().
Definition at line 125 of file hashutil.c.
Referenced by _h_indexbuild(), _hash_getbucketbuf_from_hashkey(), _hash_splitbucket(), comparetup_index_hash(), and hashbucketcleanup().
void _hash_kill_items | ( | IndexScanDesc | scan | ) |
Definition at line 536 of file hashutil.c.
References _hash_getbuf(), _hash_relbuf(), Assert, buf, HashScanPosData::buf, BUFFER_LOCK_SHARE, BUFFER_LOCK_UNLOCK, BufferGetPage(), HashScanPosData::currPage, HashScanOpaqueData::currPos, HashScanPosData::firstItem, HASH_READ, HashPageGetOpaque, HashScanPosIsPinned, HashScanPosIsValid, HashScanOpaqueData::hashso_bucket_buf, HashScanPosItem::heapTid, i, HashScanPosItem::indexOffset, IndexScanDescData::indexRelation, ItemIdMarkDead, ItemPointerEquals(), HashScanPosData::items, HashScanOpaqueData::killedItems, LH_OVERFLOW_PAGE, LH_PAGE_HAS_DEAD_TUPLES, LockBuffer(), MarkBufferDirtyHint(), HashScanOpaqueData::numKilled, OffsetNumberNext, IndexScanDescData::opaque, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), and IndexTupleData::t_tid.
Referenced by _hash_next(), _hash_readpage(), hashendscan(), and hashrescan().
Definition at line 142 of file hashutil.c.
References HASH_SPLITPOINT_GROUPS_WITH_ONE_PHASE, HASH_SPLITPOINT_PHASE_BITS, HASH_SPLITPOINT_PHASE_MASK, and pg_ceil_log2_32().
Referenced by _hash_expandtable(), and _hash_init_metabuffer().
Definition at line 275 of file hashutil.c.
References build_reloptions(), fillfactor, lengthof, RELOPT_KIND_HASH, and RELOPT_TYPE_INT.
Referenced by hashhandler().