|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/brin_tuple.h"#include "access/gin.h"#include "access/gin_tuple.h"#include "access/hash.h"#include "access/htup_details.h"#include "access/nbtree.h"#include "catalog/index.h"#include "catalog/pg_collation.h"#include "executor/executor.h"#include "pg_trace.h"#include "utils/builtins.h"#include "utils/datum.h"#include "utils/guc.h"#include "utils/lsyscache.h"#include "utils/rel.h"#include "utils/tuplesort.h"
Go to the source code of this file.
Data Structures | |
| struct | TuplesortClusterArg |
| struct | TuplesortIndexArg |
| struct | TuplesortIndexBTreeArg |
| struct | TuplesortIndexHashArg |
| struct | TuplesortDatumArg |
| struct | BrinSortTuple |
Macros | |
| #define | HEAP_SORT 0 |
| #define | INDEX_SORT 1 |
| #define | DATUM_SORT 2 |
| #define | CLUSTER_SORT 3 |
| #define | BRINSORTTUPLE_SIZE(len) (offsetof(BrinSortTuple, tuple) + (len)) |
Typedefs | |
| typedef struct BrinSortTuple | BrinSortTuple |
| #define BRINSORTTUPLE_SIZE | ( | len | ) | (offsetof(BrinSortTuple, tuple) + (len)) |
Definition at line 177 of file tuplesortvariants.c.
| #define CLUSTER_SORT 3 |
Definition at line 44 of file tuplesortvariants.c.
| #define DATUM_SORT 2 |
Definition at line 43 of file tuplesortvariants.c.
| #define HEAP_SORT 0 |
Definition at line 41 of file tuplesortvariants.c.
| #define INDEX_SORT 1 |
Definition at line 42 of file tuplesortvariants.c.
|
static |
Definition at line 1363 of file tuplesortvariants.c.
References a, ApplySortComparator(), b, compare(), comparetup_cluster_tiebreak(), fb(), TuplesortPublic::haveDatum1, TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_cluster().
|
static |
Definition at line 1384 of file tuplesortvariants.c.
References a, ApplySortAbbrevFullComparator(), ApplySortComparator(), arg, TuplesortPublic::arg, b, compare(), ExecStoreHeapTuple(), fb(), FormIndexDatum(), GetPerTupleExprContext, TuplesortPublic::haveDatum1, heap_getattr(), INDEX_MAX_KEYS, TuplesortPublic::nKeys, ResetPerTupleExprContext, TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by comparetup_cluster(), and tuplesort_begin_cluster().
|
static |
Definition at line 1993 of file tuplesortvariants.c.
References a, ApplySortComparator(), b, compare(), comparetup_datum_tiebreak(), TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_datum().
|
static |
Definition at line 2008 of file tuplesortvariants.c.
References a, SortSupportData::abbrev_converter, ApplySortAbbrevFullComparator(), b, compare(), PointerGetDatum(), TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by comparetup_datum(), and tuplesort_begin_datum().
|
static |
Definition at line 1221 of file tuplesortvariants.c.
References a, ApplySortComparator(), b, compare(), comparetup_heap_tiebreak(), fb(), TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_heap().
|
static |
Definition at line 1240 of file tuplesortvariants.c.
References a, ApplySortAbbrevFullComparator(), ApplySortComparator(), TuplesortPublic::arg, b, compare(), fb(), heap_getattr(), MINIMAL_TUPLE_OFFSET, TuplesortPublic::nKeys, TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by comparetup_heap(), and tuplesort_begin_heap().
|
static |
Definition at line 1861 of file tuplesortvariants.c.
References a, Assert, b, DatumGetUInt32(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_brin().
|
static |
Definition at line 1578 of file tuplesortvariants.c.
References a, ApplySortComparator(), b, compare(), comparetup_index_btree_tiebreak(), fb(), TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_btree(), and tuplesort_begin_index_gist().
|
static |
Definition at line 1602 of file tuplesortvariants.c.
References a, ApplySortAbbrevFullComparator(), ApplySortComparator(), arg, TuplesortPublic::arg, Assert, b, BuildIndexValueDescription(), compare(), ereport, errcode(), errdetail(), errmsg(), ERROR, errtableconstraint(), fb(), index_deform_tuple(), index_getattr(), INDEX_MAX_KEYS, ItemPointerGetBlockNumber(), ItemPointerGetOffsetNumber(), TuplesortPublic::nKeys, RelationGetDescr, RelationGetRelationName, TuplesortPublic::sortKeys, TuplesortstateGetPublic, and values.
Referenced by comparetup_index_btree(), tuplesort_begin_index_btree(), and tuplesort_begin_index_gist().
|
static |
Definition at line 1928 of file tuplesortvariants.c.
References _gin_compare_tuples(), a, Assert, b, TuplesortPublic::sortKeys, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_gin().
|
static |
Definition at line 1724 of file tuplesortvariants.c.
References _hash_hashkey2bucket(), a, arg, TuplesortPublic::arg, Assert, b, DatumGetUInt32(), fb(), ItemPointerGetBlockNumber(), ItemPointerGetOffsetNumber(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_hash().
|
static |
Definition at line 1800 of file tuplesortvariants.c.
References Assert.
Referenced by tuplesort_begin_index_hash().
|
static |
Definition at line 1535 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, ExprContext::ecxt_scantuple, ExecDropSingleTupleTableSlot(), fb(), FreeExecutorState(), GetPerTupleExprContext, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_cluster().
|
static |
Definition at line 1506 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, fb(), TuplesortPublic::haveDatum1, heap_getattr(), HEAPTUPLESIZE, InvalidOid, LogicalTapeReadExact, TuplesortPublic::sortopt, HeapTupleData::t_data, HeapTupleData::t_len, HeapTupleData::t_self, HeapTupleData::t_tableOid, TUPLESORT_RANDOMACCESS, tuplesort_readtup_alloc(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_cluster().
|
static |
Definition at line 2057 of file tuplesortvariants.c.
References Assert, fb(), len, LogicalTapeReadExact, PointerGetDatum(), TuplesortPublic::sortopt, TuplesortPublic::tuples, TUPLESORT_RANDOMACCESS, tuplesort_readtup_alloc(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_datum().
|
static |
Definition at line 1313 of file tuplesortvariants.c.
References TuplesortPublic::arg, fb(), heap_getattr(), len, LogicalTapeReadExact, MINIMAL_TUPLE_DATA_OFFSET, MINIMAL_TUPLE_OFFSET, TuplesortPublic::sortKeys, TuplesortPublic::sortopt, SortSupportData::ssup_attno, HeapTupleData::t_data, HeapTupleData::t_len, MinimalTupleData::t_len, TUPLESORT_RANDOMACCESS, tuplesort_readtup_alloc(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_heap().
|
static |
Definition at line 1823 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, fb(), index_getattr(), len, LogicalTapeReadExact, RelationGetDescr, TuplesortPublic::sortopt, TUPLESORT_RANDOMACCESS, tuplesort_readtup_alloc(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_btree(), tuplesort_begin_index_gist(), and tuplesort_begin_index_hash().
|
static |
Definition at line 1891 of file tuplesortvariants.c.
References BRINSORTTUPLE_SIZE, BrinTuple::bt_blkno, fb(), len, LogicalTapeReadExact, TuplesortPublic::sortopt, BrinSortTuple::tuple, BrinSortTuple::tuplen, TUPLESORT_RANDOMACCESS, tuplesort_readtup_alloc(), TuplesortstateGetPublic, and UInt32GetDatum().
Referenced by tuplesort_begin_index_brin().
|
static |
Definition at line 1955 of file tuplesortvariants.c.
References fb(), len, LogicalTapeReadExact, TuplesortPublic::sortopt, GinTuple::tuplen, TUPLESORT_RANDOMACCESS, tuplesort_readtup_alloc(), and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_gin().
|
static |
Definition at line 1344 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, fb(), heap_getattr(), i, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_cluster().
|
static |
Definition at line 1984 of file tuplesortvariants.c.
References fb(), i, and PointerGetDatum().
Referenced by tuplesort_begin_datum().
|
static |
Definition at line 1200 of file tuplesortvariants.c.
References TuplesortPublic::arg, fb(), heap_getattr(), i, MINIMAL_TUPLE_OFFSET, TuplesortPublic::sortKeys, SortSupportData::ssup_attno, HeapTupleData::t_data, HeapTupleData::t_len, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_heap().
|
static |
Definition at line 1559 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, fb(), i, index_getattr(), RelationGetDescr, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_btree(), tuplesort_begin_index_gist(), and tuplesort_begin_index_hash().
|
static |
Definition at line 1847 of file tuplesortvariants.c.
References BrinTuple::bt_blkno, fb(), i, BrinSortTuple::tuple, and UInt32GetDatum().
Referenced by tuplesort_begin_index_brin().
|
static |
Definition at line 1921 of file tuplesortvariants.c.
References Assert, elog, and ERROR.
Referenced by tuplesort_begin_index_gin().
| Tuplesortstate * tuplesort_begin_cluster | ( | TupleDesc | tupDesc, |
| Relation | indexRel, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 254 of file tuplesortvariants.c.
References _bt_mkscankey(), arg, TuplesortPublic::arg, Assert, BuildIndexInfo(), CLUSTER_SORT, TuplesortPublic::comparetup, comparetup_cluster(), comparetup_cluster_tiebreak(), TuplesortPublic::comparetup_tiebreak, CreateExecutorState(), CurrentMemoryContext, ExprContext::ecxt_scantuple, elog, fb(), TuplesortPublic::freestate, freestate_cluster(), GetPerTupleExprContext, TuplesortPublic::haveDatum1, i, IndexRelationGetNumberOfKeyAttributes, LOG, TuplesortPublic::maincontext, MakeSingleTupleTableSlot(), MemoryContextSwitchTo(), TuplesortPublic::nKeys, palloc0(), palloc0_object, PARALLEL_SORT, pfree(), PrepareSortSupportFromIndexRel(), RelationData::rd_rel, TuplesortPublic::readtup, readtup_cluster(), RelationGetNumberOfAttributes, TuplesortPublic::removeabbrev, removeabbrev_cluster(), SK_BT_DESC, SK_BT_NULLS_FIRST, TuplesortPublic::sortKeys, trace_sort, TTSOpsHeapTuple, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_cluster().
Referenced by heapam_relation_copy_for_cluster().
| Tuplesortstate * tuplesort_begin_datum | ( | Oid | datumType, |
| Oid | sortOperator, | ||
| Oid | sortCollation, | ||
| bool | nullsFirstFlag, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 669 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, SortSupportData::abbreviate, arg, TuplesortPublic::arg, TuplesortPublic::comparetup, comparetup_datum(), comparetup_datum_tiebreak(), TuplesortPublic::comparetup_tiebreak, CurrentMemoryContext, DATUM_SORT, elog, fb(), get_typlenbyval(), TuplesortPublic::haveDatum1, LOG, TuplesortPublic::maincontext, MemoryContextSwitchTo(), TuplesortPublic::nKeys, TuplesortPublic::onlyKey, palloc0_object, palloc_object, PARALLEL_SORT, PrepareSortSupportFromOrderingOp(), TuplesortPublic::readtup, readtup_datum(), TuplesortPublic::removeabbrev, removeabbrev_datum(), TuplesortPublic::sortKeys, SortSupportData::ssup_collation, SortSupportData::ssup_cxt, SortSupportData::ssup_nulls_first, trace_sort, TuplesortPublic::tuples, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_datum().
Referenced by array_sort_internal(), ExecSort(), initialize_aggregate(), ordered_set_startup(), and validate_index().
| Tuplesortstate * tuplesort_begin_heap | ( | TupleDesc | tupDesc, |
| int | nkeys, | ||
| AttrNumber * | attNums, | ||
| Oid * | sortOperators, | ||
| Oid * | sortCollations, | ||
| bool * | nullsFirstFlags, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 181 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, TuplesortPublic::arg, Assert, TuplesortPublic::comparetup, comparetup_heap(), comparetup_heap_tiebreak(), TuplesortPublic::comparetup_tiebreak, CurrentMemoryContext, elog, fb(), TuplesortPublic::haveDatum1, HEAP_SORT, i, LOG, TuplesortPublic::maincontext, MemoryContextSwitchTo(), TuplesortPublic::nKeys, TuplesortPublic::onlyKey, palloc0(), PARALLEL_SORT, PrepareSortSupportFromOrderingOp(), TuplesortPublic::readtup, readtup_heap(), TuplesortPublic::removeabbrev, removeabbrev_heap(), TuplesortPublic::sortKeys, trace_sort, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_heap().
Referenced by ExecIncrementalSort(), ExecSort(), initialize_aggregate(), initialize_phase(), ordered_set_startup(), and switchToPresortedPrefixMode().
| Tuplesortstate * tuplesort_begin_index_brin | ( | int | workMem, |
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 556 of file tuplesortvariants.c.
References TuplesortPublic::arg, TuplesortPublic::comparetup, comparetup_index_brin(), elog, fb(), TuplesortPublic::haveDatum1, LOG, TuplesortPublic::nKeys, TuplesortPublic::readtup, readtup_index_brin(), TuplesortPublic::removeabbrev, removeabbrev_index_brin(), trace_sort, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_index_brin().
Referenced by _brin_parallel_scan_and_build(), and brinbuild().
| Tuplesortstate * tuplesort_begin_index_btree | ( | Relation | heapRel, |
| Relation | indexRel, | ||
| bool | enforceUnique, | ||
| bool | uniqueNullsNotDistinct, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 360 of file tuplesortvariants.c.
References _bt_mkscankey(), arg, TuplesortPublic::arg, Assert, TuplesortPublic::comparetup, comparetup_index_btree(), comparetup_index_btree_tiebreak(), TuplesortPublic::comparetup_tiebreak, CurrentMemoryContext, elog, fb(), TuplesortPublic::haveDatum1, i, INDEX_SORT, IndexRelationGetNumberOfKeyAttributes, LOG, TuplesortPublic::maincontext, MemoryContextSwitchTo(), TuplesortPublic::nKeys, palloc0(), palloc_object, PARALLEL_SORT, pfree(), PrepareSortSupportFromIndexRel(), TuplesortPublic::readtup, readtup_index(), TuplesortPublic::removeabbrev, removeabbrev_index(), SK_BT_DESC, SK_BT_NULLS_FIRST, TuplesortPublic::sortKeys, trace_sort, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_index().
Referenced by _bt_parallel_scan_and_sort(), and _bt_spools_heapscan().
| Tuplesortstate * tuplesort_begin_index_gin | ( | Relation | heapRel, |
| Relation | indexRel, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 583 of file tuplesortvariants.c.
References TuplesortPublic::arg, Assert, TypeCacheEntry::cmp_proc_finfo, TuplesortPublic::comparetup, comparetup_index_gin(), CurrentMemoryContext, elog, ereport, errcode(), errmsg(), ERROR, fb(), FmgrInfo::fn_oid, format_type_be(), GIN_COMPARE_PROC, TuplesortPublic::haveDatum1, i, index_getprocid(), IndexRelationGetNumberOfKeyAttributes, InvalidOid, LOG, lookup_type_cache(), TuplesortPublic::maincontext, MemoryContextSwitchTo(), TuplesortPublic::nKeys, OidIsValid, palloc0(), PrepareSortSupportComparisonShim(), RelationData::rd_indcollation, TuplesortPublic::readtup, readtup_index_gin(), RelationGetDescr, TuplesortPublic::removeabbrev, removeabbrev_index_gin(), TuplesortPublic::sortKeys, trace_sort, TupleDescAttr(), tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TYPECACHE_CMP_PROC_FINFO, TuplesortPublic::writetup, and writetup_index_gin().
Referenced by _gin_parallel_scan_and_build(), and ginbuild().
| Tuplesortstate * tuplesort_begin_index_gist | ( | Relation | heapRel, |
| Relation | indexRel, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 493 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, Assert, TuplesortPublic::comparetup, comparetup_index_btree(), comparetup_index_btree_tiebreak(), TuplesortPublic::comparetup_tiebreak, CurrentMemoryContext, elog, fb(), TuplesortPublic::haveDatum1, i, IndexRelationGetNumberOfKeyAttributes, LOG, TuplesortPublic::maincontext, MemoryContextSwitchTo(), TuplesortPublic::nKeys, palloc0(), palloc_object, PrepareSortSupportFromGistIndexRel(), RelationData::rd_indcollation, TuplesortPublic::readtup, readtup_index(), TuplesortPublic::removeabbrev, removeabbrev_index(), TuplesortPublic::sortKeys, SortSupportData::ssup_cxt, trace_sort, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_index().
Referenced by gistbuild().
| Tuplesortstate * tuplesort_begin_index_hash | ( | Relation | heapRel, |
| Relation | indexRel, | ||
| uint32 | high_mask, | ||
| uint32 | low_mask, | ||
| uint32 | max_buckets, | ||
| int | workMem, | ||
| SortCoordinate | coordinate, | ||
| int | sortopt | ||
| ) |
Definition at line 442 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, TuplesortPublic::comparetup, comparetup_index_hash(), comparetup_index_hash_tiebreak(), TuplesortPublic::comparetup_tiebreak, elog, fb(), TuplesortPublic::haveDatum1, LOG, TuplesortPublic::maincontext, MemoryContextSwitchTo(), TuplesortPublic::nKeys, palloc_object, TuplesortPublic::readtup, readtup_index(), TuplesortPublic::removeabbrev, removeabbrev_index(), trace_sort, tuplesort_begin_common(), TUPLESORT_RANDOMACCESS, TuplesortstateGetPublic, TuplesortPublic::writetup, and writetup_index().
Referenced by _h_spoolinit().
| BrinTuple * tuplesort_getbrintuple | ( | Tuplesortstate * | state, |
| Size * | len, | ||
| bool | forward | ||
| ) |
Definition at line 1084 of file tuplesortvariants.c.
References fb(), len, MemoryContextSwitchTo(), TuplesortPublic::sortcontext, BrinSortTuple::tuple, tuplesort_gettuple_common(), and TuplesortstateGetPublic.
Referenced by _brin_parallel_merge().
| bool tuplesort_getdatum | ( | Tuplesortstate * | state, |
| bool | forward, | ||
| bool | copy, | ||
| Datum * | val, | ||
| bool * | isNull, | ||
| Datum * | abbrev | ||
| ) |
Definition at line 1154 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, arg, TuplesortPublic::arg, datumCopy(), fb(), MemoryContextSwitchTo(), PointerGetDatum(), TuplesortPublic::sortcontext, TuplesortPublic::sortKeys, TuplesortPublic::tuples, tuplesort_gettuple_common(), TuplesortstateGetPublic, and val.
Referenced by array_sort_internal(), ExecSort(), heapam_index_validate_scan(), mode_final(), percentile_cont_final_common(), percentile_cont_multi_final_common(), percentile_disc_final(), percentile_disc_multi_final(), and process_ordered_aggregate_single().
| GinTuple * tuplesort_getgintuple | ( | Tuplesortstate * | state, |
| Size * | len, | ||
| bool | forward | ||
| ) |
Definition at line 1107 of file tuplesortvariants.c.
References fb(), len, MemoryContextSwitchTo(), TuplesortPublic::sortcontext, tuplesort_gettuple_common(), and TuplesortstateGetPublic.
Referenced by _gin_parallel_merge(), and _gin_process_worker_data().
| HeapTuple tuplesort_getheaptuple | ( | Tuplesortstate * | state, |
| bool | forward | ||
| ) |
Definition at line 1042 of file tuplesortvariants.c.
References fb(), MemoryContextSwitchTo(), TuplesortPublic::sortcontext, SortTuple::tuple, tuplesort_gettuple_common(), and TuplesortstateGetPublic.
Referenced by heapam_relation_copy_for_cluster().
| IndexTuple tuplesort_getindextuple | ( | Tuplesortstate * | state, |
| bool | forward | ||
| ) |
Definition at line 1063 of file tuplesortvariants.c.
References fb(), MemoryContextSwitchTo(), TuplesortPublic::sortcontext, SortTuple::tuple, tuplesort_gettuple_common(), and TuplesortstateGetPublic.
Referenced by _bt_load(), _h_indexbuild(), and gist_indexsortbuild().
| bool tuplesort_gettupleslot | ( | Tuplesortstate * | state, |
| bool | forward, | ||
| bool | copy, | ||
| TupleTableSlot * | slot, | ||
| Datum * | abbrev | ||
| ) |
Definition at line 1004 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, ExecClearTuple(), ExecStoreMinimalTuple(), fb(), heap_copy_minimal_tuple(), MemoryContextSwitchTo(), TuplesortPublic::sortcontext, TuplesortPublic::sortKeys, SortTuple::tuple, tuplesort_gettuple_common(), and TuplesortstateGetPublic.
Referenced by ExecIncrementalSort(), ExecSort(), fetch_input_tuple(), hypothetical_dense_rank_final(), hypothetical_rank_common(), process_ordered_aggregate_multi(), and switchToPresortedPrefixMode().
| void tuplesort_putbrintuple | ( | Tuplesortstate * | state, |
| BrinTuple * | tuple, | ||
| Size | size | ||
| ) |
Definition at line 871 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, BRINSORTTUPLE_SIZE, BrinTuple::bt_blkno, fb(), GetMemoryChunkSpace(), MAXALIGN, MemoryContextSwitchTo(), palloc(), TuplesortPublic::sortKeys, TuplesortPublic::sortopt, TuplesortPublic::tuplecontext, tuplesort_puttuple_common(), TuplesortstateGetPublic, TupleSortUseBumpTupleCxt, and UInt32GetDatum().
Referenced by form_and_spill_tuple().
| void tuplesort_putdatum | ( | Tuplesortstate * | state, |
| Datum | val, | ||
| bool | isNull | ||
| ) |
Definition at line 940 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, arg, TuplesortPublic::arg, SortTuple::datum1, datumCopy(), DatumGetPointer(), fb(), MemoryContextSwitchTo(), TuplesortPublic::sortKeys, TuplesortPublic::tuplecontext, TuplesortPublic::tuples, tuplesort_puttuple_common(), TuplesortstateGetPublic, and val.
Referenced by array_sort_internal(), ExecEvalAggOrderedTransDatum(), ExecSort(), ordered_set_transition(), and validate_index_callback().
| void tuplesort_putgintuple | ( | Tuplesortstate * | state, |
| GinTuple * | tuple, | ||
| Size | size | ||
| ) |
Definition at line 904 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, fb(), GetMemoryChunkSpace(), MAXALIGN, MemoryContextSwitchTo(), palloc(), TuplesortPublic::sortKeys, TuplesortPublic::sortopt, TuplesortPublic::tuplecontext, tuplesort_puttuple_common(), TuplesortstateGetPublic, and TupleSortUseBumpTupleCxt.
Referenced by _gin_process_worker_data(), and ginFlushBuildState().
| void tuplesort_putheaptuple | ( | Tuplesortstate * | state, |
| HeapTuple | tup | ||
| ) |
Definition at line 792 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, arg, TuplesortPublic::arg, fb(), GetMemoryChunkSpace(), TuplesortPublic::haveDatum1, heap_copytuple(), heap_getattr(), HEAPTUPLESIZE, MAXALIGN, MemoryContextSwitchTo(), TuplesortPublic::sortKeys, TuplesortPublic::sortopt, TuplesortPublic::tuplecontext, tuplesort_puttuple_common(), TuplesortstateGetPublic, and TupleSortUseBumpTupleCxt.
Referenced by heapam_relation_copy_for_cluster().
| void tuplesort_putindextuplevalues | ( | Tuplesortstate * | state, |
| Relation | rel, | ||
| const ItemPointerData * | self, | ||
| const Datum * | values, | ||
| const bool * | isnull | ||
| ) |
Definition at line 835 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, arg, TuplesortPublic::arg, fb(), GetMemoryChunkSpace(), index_form_tuple_context(), index_getattr(), INDEX_SIZE_MASK, MAXALIGN, RelationGetDescr, TuplesortPublic::sortKeys, TuplesortPublic::sortopt, IndexTupleData::t_info, IndexTupleData::t_tid, TuplesortPublic::tuplecontext, tuplesort_puttuple_common(), TuplesortstateGetPublic, TupleSortUseBumpTupleCxt, and values.
Referenced by _bt_spool(), _h_spool(), and gistSortedBuildCallback().
| void tuplesort_puttupleslot | ( | Tuplesortstate * | state, |
| TupleTableSlot * | slot | ||
| ) |
Definition at line 752 of file tuplesortvariants.c.
References SortSupportData::abbrev_converter, TuplesortPublic::arg, ExecCopySlotMinimalTuple(), fb(), GetMemoryChunkSpace(), heap_getattr(), MAXALIGN, MemoryContextSwitchTo(), MINIMAL_TUPLE_OFFSET, TuplesortPublic::sortKeys, TuplesortPublic::sortopt, SortSupportData::ssup_attno, HeapTupleData::t_data, HeapTupleData::t_len, MinimalTupleData::t_len, TuplesortPublic::tuplecontext, tuplesort_puttuple_common(), TuplesortstateGetPublic, and TupleSortUseBumpTupleCxt.
Referenced by ExecEvalAggOrderedTransTuple(), ExecIncrementalSort(), ExecSort(), fetch_input_tuple(), hypothetical_dense_rank_final(), hypothetical_rank_common(), ordered_set_transition_multi(), and switchToPresortedPrefixMode().
|
static |
Definition at line 1491 of file tuplesortvariants.c.
References fb(), LogicalTapeWrite(), TuplesortPublic::sortopt, HeapTupleData::t_data, HeapTupleData::t_len, HeapTupleData::t_self, TUPLESORT_RANDOMACCESS, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_cluster().
|
static |
Definition at line 2023 of file tuplesortvariants.c.
References arg, TuplesortPublic::arg, Assert, datumGetSize(), fb(), LogicalTapeWrite(), PointerGetDatum(), TuplesortPublic::sortopt, TuplesortPublic::tuples, TUPLESORT_RANDOMACCESS, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_datum().
|
static |
Definition at line 1294 of file tuplesortvariants.c.
References fb(), LogicalTapeWrite(), MINIMAL_TUPLE_DATA_OFFSET, TuplesortPublic::sortopt, MinimalTupleData::t_len, TUPLESORT_RANDOMACCESS, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_heap().
|
static |
Definition at line 1809 of file tuplesortvariants.c.
References fb(), IndexTupleSize(), LogicalTapeWrite(), TuplesortPublic::sortopt, TUPLESORT_RANDOMACCESS, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_btree(), tuplesort_begin_index_gist(), and tuplesort_begin_index_hash().
|
static |
Definition at line 1877 of file tuplesortvariants.c.
References fb(), LogicalTapeWrite(), TuplesortPublic::sortopt, BrinSortTuple::tuple, BrinSortTuple::tuplen, TUPLESORT_RANDOMACCESS, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_brin().
|
static |
Definition at line 1941 of file tuplesortvariants.c.
References fb(), LogicalTapeWrite(), TuplesortPublic::sortopt, GinTuple::tuplen, TUPLESORT_RANDOMACCESS, and TuplesortstateGetPublic.
Referenced by tuplesort_begin_index_gin().