108 self, values, isnull);
119 #ifdef USE_ASSERT_CHECKING 134 #ifdef USE_ASSERT_CHECKING 135 uint32 lasthashkey = hashkey;
140 Assert(hashkey >= lasthashkey);
IndexTuple tuplesort_getindextuple(Tuplesortstate *state, bool forward)
void _hash_doinsert(Relation rel, IndexTuple itup, Relation heapRel)
void tuplesort_performsort(Tuplesortstate *state)
Bucket _hash_hashkey2bucket(uint32 hashkey, uint32 maxbucket, uint32 highmask, uint32 lowmask)
Tuplesortstate * tuplesort_begin_index_hash(Relation heapRel, Relation indexRel, uint32 high_mask, uint32 low_mask, uint32 max_buckets, int workMem, SortCoordinate coordinate, bool randomAccess)
Tuplesortstate * sortstate
void pfree(void *pointer)
uint32 _hash_get_indextuple_hashkey(IndexTuple itup)
void _h_spool(HSpool *hspool, ItemPointer self, Datum *values, bool *isnull)
void _h_indexbuild(HSpool *hspool, Relation heapRel)
void * palloc0(Size size)
void tuplesort_putindextuplevalues(Tuplesortstate *state, Relation rel, ItemPointer self, Datum *values, bool *isnull)
#define Assert(condition)
static Datum values[MAXATTR]
void _h_spooldestroy(HSpool *hspool)
uint32 _hash_log2(uint32 num)
HSpool * _h_spoolinit(Relation heap, Relation index, uint32 num_buckets)
void tuplesort_end(Tuplesortstate *state)