81 #define NUM_TUPLESORTMETHODS 4
90 #define TUPLESORT_NONE 0
93 #define TUPLESORT_RANDOMACCESS (1 << 0)
96 #define TUPLESORT_ALLOWBOUNDED (1 << 1)
210 Oid *sortOperators,
Oid *sortCollations,
211 bool *nullsFirstFlags,
221 bool uniqueNullsNotDistinct,
236 Oid sortOperator,
Oid sortCollation,
static Datum values[MAXATTR]
TuplesortMethod sortMethod
TuplesortSpaceType spaceType
IndexTuple tuplesort_getindextuple(Tuplesortstate *state, bool forward)
void tuplesort_rescan(Tuplesortstate *state)
void tuplesort_performsort(Tuplesortstate *state)
struct SortCoordinateData SortCoordinateData
int tuplesort_merge_order(int64 allowedMem)
Size tuplesort_estimate_shared(int nworkers)
void tuplesort_initialize_shared(Sharedsort *shared, int nWorkers, dsm_segment *seg)
HeapTuple tuplesort_getheaptuple(Tuplesortstate *state, bool forward)
void tuplesort_putdatum(Tuplesortstate *state, Datum val, bool isNull)
Tuplesortstate * tuplesort_begin_index_hash(Relation heapRel, Relation indexRel, uint32 high_mask, uint32 low_mask, uint32 max_buckets, int workMem, SortCoordinate coordinate, int sortopt)
void tuplesort_reset(Tuplesortstate *state)
bool tuplesort_skiptuples(Tuplesortstate *state, int64 ntuples, bool forward)
void tuplesort_puttupleslot(Tuplesortstate *state, TupleTableSlot *slot)
Tuplesortstate * tuplesort_begin_index_gist(Relation heapRel, Relation indexRel, int workMem, SortCoordinate coordinate, int sortopt)
bool tuplesort_used_bound(Tuplesortstate *state)
Tuplesortstate * tuplesort_begin_index_btree(Relation heapRel, Relation indexRel, bool enforceUnique, bool uniqueNullsNotDistinct, int workMem, SortCoordinate coordinate, int sortopt)
const char * tuplesort_space_type_name(TuplesortSpaceType t)
Tuplesortstate * tuplesort_begin_datum(Oid datumType, Oid sortOperator, Oid sortCollation, bool nullsFirstFlag, int workMem, SortCoordinate coordinate, int sortopt)
struct SortCoordinateData * SortCoordinate
void tuplesort_get_stats(Tuplesortstate *state, TuplesortInstrumentation *stats)
bool tuplesort_gettupleslot(Tuplesortstate *state, bool forward, bool copy, TupleTableSlot *slot, Datum *abbrev)
void tuplesort_end(Tuplesortstate *state)
void tuplesort_markpos(Tuplesortstate *state)
Tuplesortstate * tuplesort_begin_cluster(TupleDesc tupDesc, Relation indexRel, int workMem, SortCoordinate coordinate, int sortopt)
void tuplesort_attach_shared(Sharedsort *shared, dsm_segment *seg)
bool tuplesort_getdatum(Tuplesortstate *state, bool forward, Datum *val, bool *isNull, Datum *abbrev)
struct TuplesortInstrumentation TuplesortInstrumentation
void tuplesort_restorepos(Tuplesortstate *state)
@ SORT_TYPE_EXTERNAL_SORT
@ SORT_TYPE_TOP_N_HEAPSORT
@ SORT_TYPE_STILL_IN_PROGRESS
@ SORT_TYPE_EXTERNAL_MERGE
void tuplesort_putheaptuple(Tuplesortstate *state, HeapTuple tup)
void tuplesort_set_bound(Tuplesortstate *state, int64 bound)
void tuplesort_putindextuplevalues(Tuplesortstate *state, Relation rel, ItemPointer self, Datum *values, bool *isnull)
const char * tuplesort_method_name(TuplesortMethod m)
Tuplesortstate * tuplesort_begin_heap(TupleDesc tupDesc, int nkeys, AttrNumber *attNums, Oid *sortOperators, Oid *sortCollations, bool *nullsFirstFlags, int workMem, SortCoordinate coordinate, int sortopt)