PostgreSQL Source Code
git master
|
#include "access/htup.h"
#include "access/htup_details.h"
#include "access/sysattr.h"
#include "access/tupdesc.h"
#include "storage/buf.h"
Go to the source code of this file.
Data Structures | |
struct | TupleTableSlot |
struct | TupleTableSlotOps |
struct | VirtualTupleTableSlot |
struct | HeapTupleTableSlot |
struct | BufferHeapTupleTableSlot |
struct | MinimalTupleTableSlot |
Typedefs | |
typedef struct TupleTableSlotOps | TupleTableSlotOps |
typedef struct TupleTableSlot | TupleTableSlot |
typedef struct VirtualTupleTableSlot | VirtualTupleTableSlot |
typedef struct HeapTupleTableSlot | HeapTupleTableSlot |
typedef struct BufferHeapTupleTableSlot | BufferHeapTupleTableSlot |
typedef struct MinimalTupleTableSlot | MinimalTupleTableSlot |
Variables | |
PGDLLIMPORT const TupleTableSlotOps | TTSOpsVirtual |
PGDLLIMPORT const TupleTableSlotOps | TTSOpsHeapTuple |
PGDLLIMPORT const TupleTableSlotOps | TTSOpsMinimalTuple |
PGDLLIMPORT const TupleTableSlotOps | TTSOpsBufferHeapTuple |
#define FIELDNO_HEAPTUPLETABLESLOT_OFF 2 |
Definition at line 251 of file tuptable.h.
Referenced by slot_compile_deform().
#define FIELDNO_HEAPTUPLETABLESLOT_TUPLE 1 |
Definition at line 249 of file tuptable.h.
Referenced by slot_compile_deform().
#define FIELDNO_MINIMALTUPLETABLESLOT_OFF 4 |
Definition at line 285 of file tuptable.h.
Referenced by slot_compile_deform().
#define FIELDNO_MINIMALTUPLETABLESLOT_TUPLE 1 |
Definition at line 281 of file tuptable.h.
Referenced by slot_compile_deform().
#define FIELDNO_TUPLETABLESLOT_FLAGS 1 |
Definition at line 118 of file tuptable.h.
Referenced by slot_compile_deform().
#define FIELDNO_TUPLETABLESLOT_ISNULL 6 |
Definition at line 127 of file tuptable.h.
Referenced by llvm_compile_expr(), and slot_compile_deform().
#define FIELDNO_TUPLETABLESLOT_NVALID 2 |
Definition at line 120 of file tuptable.h.
Referenced by llvm_compile_expr(), and slot_compile_deform().
#define FIELDNO_TUPLETABLESLOT_TUPLEDESCRIPTOR 4 |
Definition at line 123 of file tuptable.h.
#define FIELDNO_TUPLETABLESLOT_VALUES 5 |
Definition at line 125 of file tuptable.h.
Referenced by llvm_compile_expr(), and slot_compile_deform().
#define TTS_EMPTY | ( | slot | ) | (((slot)->tts_flags & TTS_FLAG_EMPTY) != 0) |
Definition at line 97 of file tuptable.h.
Referenced by ExecCopySlot(), ExecCopySlotHeapTuple(), ExecDelete(), ExecFetchSlotHeapTuple(), ExecFetchSlotMinimalTuple(), ExecStoreVirtualTuple(), prepare_projection_slot(), tts_buffer_heap_copy_heap_tuple(), tts_buffer_heap_copy_minimal_tuple(), tts_buffer_heap_get_heap_tuple(), tts_buffer_heap_getsomeattrs(), tts_buffer_heap_getsysattr(), tts_buffer_heap_materialize(), tts_heap_copy_heap_tuple(), tts_heap_get_heap_tuple(), tts_heap_getsomeattrs(), tts_heap_getsysattr(), tts_heap_materialize(), tts_minimal_getsomeattrs(), tts_minimal_materialize(), tts_minimal_store_tuple(), tts_virtual_copy_heap_tuple(), and tts_virtual_copy_minimal_tuple().
#define TTS_FIXED | ( | slot | ) | (((slot)->tts_flags & TTS_FLAG_FIXED) != 0) |
Definition at line 109 of file tuptable.h.
Referenced by ExecDropSingleTupleTableSlot(), ExecGetResultSlotOps(), ExecJustAssignVarVirtImpl(), ExecJustVarVirtImpl(), ExecResetTupleTable(), and ExecSetSlotDescriptor().
#define TTS_FLAG_EMPTY (1 << 1) |
Definition at line 96 of file tuptable.h.
Referenced by ExecForceStoreHeapTuple(), ExecProject(), ExecStoreVirtualTuple(), MakeTupleTableSlot(), tts_buffer_heap_clear(), tts_buffer_heap_copyslot(), tts_buffer_heap_store_tuple(), tts_heap_clear(), tts_heap_store_tuple(), tts_minimal_clear(), tts_minimal_store_tuple(), tts_virtual_clear(), and tts_virtual_copyslot().
#define TTS_FLAG_FIXED (1 << 4) |
Definition at line 108 of file tuptable.h.
Referenced by MakeTupleTableSlot().
#define TTS_FLAG_SHOULDFREE (1 << 2) |
Definition at line 100 of file tuptable.h.
Referenced by ExecForceStoreHeapTuple(), tts_buffer_heap_clear(), tts_buffer_heap_copyslot(), tts_buffer_heap_materialize(), tts_buffer_heap_store_tuple(), tts_heap_clear(), tts_heap_materialize(), tts_heap_store_tuple(), tts_minimal_clear(), tts_minimal_materialize(), tts_minimal_store_tuple(), tts_virtual_clear(), and tts_virtual_materialize().
#define TTS_FLAG_SLOW (1 << 3) |
Definition at line 104 of file tuptable.h.
Referenced by slot_compile_deform(), and slot_deform_heap_tuple().
#define TTS_IS_BUFFERTUPLE | ( | slot | ) | ((slot)->tts_ops == &TTSOpsBufferHeapTuple) |
Definition at line 231 of file tuptable.h.
Referenced by ExecForceStoreHeapTuple(), ExecStoreBufferHeapTuple(), ExecStorePinnedBufferHeapTuple(), heapam_fetch_row_version(), heapam_index_fetch_tuple(), heapam_scan_analyze_next_tuple(), heapam_tuple_lock(), and heapam_tuple_satisfies_snapshot().
#define TTS_IS_HEAPTUPLE | ( | slot | ) | ((slot)->tts_ops == &TTSOpsHeapTuple) |
Definition at line 229 of file tuptable.h.
Referenced by ExecForceStoreHeapTuple(), and ExecStoreHeapTuple().
#define TTS_IS_MINIMALTUPLE | ( | slot | ) | ((slot)->tts_ops == &TTSOpsMinimalTuple) |
Definition at line 230 of file tuptable.h.
Referenced by ExecForceStoreMinimalTuple(), and ExecStoreMinimalTuple().
#define TTS_IS_VIRTUAL | ( | slot | ) | ((slot)->tts_ops == &TTSOpsVirtual) |
Definition at line 228 of file tuptable.h.
Referenced by ExecJustAssignVarVirtImpl(), and ExecJustVarVirtImpl().
#define TTS_SHOULDFREE | ( | slot | ) | (((slot)->tts_flags & TTS_FLAG_SHOULDFREE) != 0) |
Definition at line 101 of file tuptable.h.
Referenced by tts_buffer_heap_clear(), tts_buffer_heap_copyslot(), tts_buffer_heap_materialize(), tts_buffer_heap_store_tuple(), tts_heap_clear(), tts_heap_materialize(), tts_minimal_clear(), tts_minimal_materialize(), tts_minimal_store_tuple(), tts_virtual_clear(), and tts_virtual_materialize().
#define TTS_SLOW | ( | slot | ) | (((slot)->tts_flags & TTS_FLAG_SLOW) != 0) |
Definition at line 105 of file tuptable.h.
Referenced by slot_deform_heap_tuple().
#define TupIsNull | ( | slot | ) | ((slot) == NULL || TTS_EMPTY(slot)) |
Definition at line 292 of file tuptable.h.
Referenced by AfterTriggerSaveEvent(), agg_fill_hash_table(), agg_retrieve_direct(), begin_partition(), buildSubPlanHash(), check_constant_qual(), CteScanNext(), eval_windowaggregates(), EvalPlanQual(), EvalPlanQualFetchRowMark(), ExecAgg(), ExecAppend(), ExecCrossPartitionUpdate(), execCurrentOf(), ExecDelete(), ExecGather(), ExecGatherMerge(), ExecGroup(), ExecHashJoinImpl(), ExecHashJoinOuterGetTuple(), ExecIncrementalSort(), ExecLimit(), ExecLockRows(), ExecMaterial(), ExecMergeAppend(), ExecMergeJoin(), ExecModifyTable(), ExecNestLoop(), ExecParallelHashJoinOuterGetTuple(), ExecParallelHashJoinPartitionOuter(), ExecPostprocessPlan(), ExecProcNodeInstr(), ExecProjectSet(), ExecRecursiveUnion(), ExecResult(), ExecScan(), ExecScanFetch(), ExecScanSubPlan(), ExecSetParamPlan(), ExecSort(), ExecUnique(), ExecUpdate(), ExecutePlan(), fetch_input_tuple(), ForeignNext(), FunctionNext(), gather_getnext(), gather_merge_init(), gather_merge_readnext(), GetTupleForTrigger(), heap_compare_slots(), hypothetical_dense_rank_final(), MJEvalInnerValues(), MJEvalOuterValues(), MultiExecParallelHash(), MultiExecPrivateHash(), postgresRecheckForeignScan(), print_slot(), setop_fill_hash_table(), setop_retrieve_direct(), spool_tuples(), switchToPresortedPrefixMode(), update_frameheadpos(), and update_frametailpos().
typedef struct BufferHeapTupleTableSlot BufferHeapTupleTableSlot |
typedef struct HeapTupleTableSlot HeapTupleTableSlot |
typedef struct MinimalTupleTableSlot MinimalTupleTableSlot |
typedef struct TupleTableSlot TupleTableSlot |
typedef struct TupleTableSlotOps TupleTableSlotOps |
Definition at line 112 of file tuptable.h.
typedef struct VirtualTupleTableSlot VirtualTupleTableSlot |
TupleTableSlot* ExecAllocTableSlot | ( | List ** | tupleTable, |
TupleDesc | desc, | ||
const TupleTableSlotOps * | tts_ops | ||
) |
Definition at line 1141 of file execTuples.c.
References lappend(), and MakeTupleTableSlot().
Referenced by AfterTriggerSaveEvent(), ExecInitExtraTupleSlot(), ExecInitIndexOnlyScan(), ExecInitResultSlot(), ExecInitScanTupleSlot(), and find_hash_columns().
|
inlinestatic |
Definition at line 425 of file tuptable.h.
References TupleTableSlotOps::clear, and TupleTableSlot::tts_ops.
Referenced by AfterTriggerExecute(), agg_retrieve_hash_table_in_memory(), apply_handle_update_internal(), apply_returning_filter(), ATRewriteTable(), begin_partition(), BitmapHeapNext(), buildSubPlanHash(), CopyFrom(), CopyMultiInsertBufferFlush(), copyTemplateDependencies(), CteScanNext(), do_tup_output(), eval_windowaggregates(), EvalPlanQual(), ExecAppend(), ExecARUpdateTriggers(), ExecCheckTIDVisible(), ExecComputeStoredGenerated(), ExecDelete(), ExecDropSingleTupleTableSlot(), ExecEndAgg(), ExecEndBitmapHeapScan(), ExecEndCteScan(), ExecEndCustomScan(), ExecEndForeignScan(), ExecEndFunctionScan(), ExecEndGather(), ExecEndGatherMerge(), ExecEndGroup(), ExecEndHashJoin(), ExecEndIncrementalSort(), ExecEndIndexOnlyScan(), ExecEndIndexScan(), ExecEndMaterial(), ExecEndMergeJoin(), ExecEndModifyTable(), ExecEndNamedTuplestoreScan(), ExecEndNestLoop(), ExecEndProjectSet(), ExecEndResult(), ExecEndSampleScan(), ExecEndSeqScan(), ExecEndSetOp(), ExecEndSort(), ExecEndSubqueryScan(), ExecEndTableFuncScan(), ExecEndTidScan(), ExecEndUnique(), ExecEndValuesScan(), ExecEndWindowAgg(), ExecEndWorkTableScan(), ExecEvalAggOrderedTransTuple(), ExecFilterJunk(), ExecFindPartition(), ExecForceStoreHeapTuple(), ExecForceStoreMinimalTuple(), ExecHashJoinGetSavedTuple(), ExecHashSubPlan(), ExecIncrementalSort(), ExecLockRows(), ExecMaterial(), ExecMergeAppend(), ExecOnConflictUpdate(), ExecParallelHashJoinOuterGetTuple(), ExecProject(), ExecProjectSRF(), ExecReScanAgg(), ExecReScanCteScan(), ExecReScanFunctionScan(), ExecReScanGroup(), ExecReScanIncrementalSort(), ExecReScanMaterial(), ExecReScanMergeJoin(), ExecReScanNamedTuplestoreScan(), ExecReScanSetOp(), ExecReScanSort(), ExecReScanTableFuncScan(), ExecReScanUnique(), ExecReScanValuesScan(), ExecReScanWindowAgg(), ExecReScanWorkTableScan(), ExecResetTupleTable(), ExecScan(), ExecScanFetch(), ExecScanReScan(), ExecSetSlotDescriptor(), ExecStoreAllNullTuple(), ExecStoreHeapTupleDatum(), ExecUnique(), execute_attr_map_slot(), ExecWindowAgg(), fetch_remote_table_info(), fetch_table_list(), fileIterateForeignScan(), FunctionNext(), gather_getnext(), gather_merge_clear_tuples(), gather_merge_init(), get_actual_variable_endpoint(), get_returning_data(), hashagg_spill_tuple(), heap_getnextslot(), heapam_scan_analyze_next_tuple(), heapam_scan_sample_next_tuple(), hypothetical_dense_rank_final(), hypothetical_rank_common(), IndexNext(), IndexNextWithReorder(), IndexOnlyNext(), InsertPgAttributeTuples(), ordered_set_shutdown(), ordered_set_transition_multi(), postgresIterateDirectModify(), postgresIterateForeignScan(), prepare_hash_slot(), process_ordered_aggregate_multi(), recordMultipleDependencies(), RunFromStore(), setop_retrieve_direct(), setop_retrieve_hash_table(), ShutdownSetExpr(), slot_modify_data(), slot_store_data(), StoreIndexTuple(), switchToPresortedPrefixMode(), tablesample_getnext(), tfuncLoadRows(), TidNext(), tts_buffer_heap_copyslot(), tuplesort_gettupleslot(), tuplestore_gettupleslot(), update_frameheadpos(), update_frametailpos(), update_grouptailpos(), ValuesNext(), and WinRowsArePeers().
|
inlinestatic |
Definition at line 475 of file tuptable.h.
References Assert, AssertArg, TupleTableSlotOps::copyslot, TTS_EMPTY, and TupleTableSlot::tts_ops.
Referenced by apply_handle_tuple_routing(), begin_partition(), CopyFrom(), CteScanNext(), EvalPlanQual(), ExecBRUpdateTriggers(), ExecGroup(), ExecIncrementalSort(), ExecInsert(), ExecLimit(), ExecMaterial(), ExecModifyTable(), ExecUnique(), ExecWindowAgg(), postgresRecheckForeignScan(), RelationFindReplTupleSeq(), spool_tuples(), switchToPresortedPrefixMode(), update_frameheadpos(), and update_frametailpos().
|
inlinestatic |
Definition at line 452 of file tuptable.h.
References Assert, TupleTableSlotOps::copy_heap_tuple, TTS_EMPTY, and TupleTableSlot::tts_ops.
Referenced by acquire_sample_rows(), agg_retrieve_direct(), ExecScanSubPlan(), ExecSetParamPlan(), reorderqueue_push(), setop_retrieve_direct(), spi_printtup(), tts_buffer_heap_copyslot(), and tts_heap_copyslot().
|
inlinestatic |
Definition at line 463 of file tuptable.h.
References TupleTableSlotOps::copy_minimal_tuple, and TupleTableSlot::tts_ops.
Referenced by copytup_heap(), LookupTupleHashEntry_internal(), tts_minimal_copyslot(), and tuplestore_puttupleslot().
void ExecDropSingleTupleTableSlot | ( | TupleTableSlot * | slot | ) |
Definition at line 1224 of file execTuples.c.
References Assert, ExecClearTuple(), IsA, pfree(), TupleTableSlotOps::release, ReleaseTupleDesc, TTS_FIXED, TupleTableSlot::tts_isnull, TupleTableSlot::tts_ops, TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by acquire_sample_rows(), afterTriggerInvokeEvents(), AlterDomainNotNull(), ATRewriteTable(), CatalogIndexInsert(), check_default_partition_contents(), check_exclusion_or_unique_constraint(), compute_index_stats(), CopyMultiInsertBufferCleanup(), copyTemplateDependencies(), CopyTo(), DefineQueryRewrite(), end_tup_output(), ExecBatchInsert(), ExecCleanupTupleRouting(), ExecEndIncrementalSort(), ExecEndModifyTable(), fetch_remote_table_info(), fetch_table_list(), get_actual_variable_range(), heapam_index_build_range_scan(), heapam_index_validate_scan(), heapam_relation_copy_for_cluster(), hypothetical_dense_rank_final(), IndexCheckExclusion(), InsertPgAttributeTuples(), recordMultipleDependencies(), RelationFindReplTupleSeq(), RI_Initial_Check(), RunFromStore(), systable_endscan(), systable_endscan_ordered(), table_index_fetch_tuple_check(), tstoreShutdownReceiver(), tuplesort_free(), unique_key_recheck(), validateDomainConstraint(), and validateForeignKeyConstraint().
HeapTuple ExecFetchSlotHeapTuple | ( | TupleTableSlot * | slot, |
bool | materialize, | ||
bool * | shouldFree | ||
) |
Definition at line 1614 of file execTuples.c.
References Assert, TupleTableSlotOps::copy_heap_tuple, TupleTableSlotOps::get_heap_tuple, TupleTableSlotOps::materialize, TTS_EMPTY, and TupleTableSlot::tts_ops.
Referenced by AfterTriggerExecute(), apply_returning_filter(), CatalogTuplesMultiInsertWithInfo(), ExecBRDeleteTriggers(), ExecBRInsertTriggers(), ExecBRUpdateTriggers(), ExecFetchSlotHeapTupleDatum(), ExecIRInsertTriggers(), ExecIRUpdateTriggers(), heap_multi_insert(), heapam_relation_copy_for_cluster(), heapam_tuple_complete_speculative(), heapam_tuple_insert(), heapam_tuple_insert_speculative(), heapam_tuple_update(), systable_getnext(), systable_getnext_ordered(), systable_recheck_tuple(), and validateForeignKeyConstraint().
Datum ExecFetchSlotHeapTupleDatum | ( | TupleTableSlot * | slot | ) |
Definition at line 1693 of file execTuples.c.
References ExecFetchSlotHeapTuple(), heap_copy_tuple_as_datum(), pfree(), and TupleTableSlot::tts_tupleDescriptor.
Referenced by ExecMakeFunctionResultSet(), and postquel_get_single_result().
MinimalTuple ExecFetchSlotMinimalTuple | ( | TupleTableSlot * | slot, |
bool * | shouldFree | ||
) |
Definition at line 1662 of file execTuples.c.
References Assert, TupleTableSlotOps::copy_minimal_tuple, TupleTableSlotOps::get_minimal_tuple, TTS_EMPTY, and TupleTableSlot::tts_ops.
Referenced by ExecHashJoinImpl(), ExecHashSkewTableInsert(), ExecHashTableInsert(), ExecParallelHashJoinPartitionOuter(), ExecParallelHashTableInsert(), ExecParallelHashTableInsertCurrentBatch(), hashagg_spill_tuple(), and tqueueReceiveSlot().
void ExecForceStoreHeapTuple | ( | HeapTuple | tuple, |
TupleTableSlot * | slot, | ||
bool | shouldFree | ||
) |
Definition at line 1439 of file execTuples.c.
References BufferHeapTupleTableSlot::base, ExecClearTuple(), ExecMaterializeSlot(), ExecStoreHeapTuple(), ExecStoreVirtualTuple(), heap_copytuple(), heap_deform_tuple(), MemoryContextSwitchTo(), pfree(), TTS_FLAG_EMPTY, TTS_FLAG_SHOULDFREE, TupleTableSlot::tts_flags, TTS_IS_BUFFERTUPLE, TTS_IS_HEAPTUPLE, TupleTableSlot::tts_isnull, TupleTableSlot::tts_mcxt, TupleTableSlot::tts_tupleDescriptor, TupleTableSlot::tts_values, and HeapTupleTableSlot::tuple.
Referenced by agg_retrieve_direct(), ExecARDeleteTriggers(), ExecARUpdateTriggers(), ExecBRDeleteTriggers(), ExecBRInsertTriggers(), ExecBRUpdateTriggers(), ExecDelete(), ExecIRDeleteTriggers(), ExecIRInsertTriggers(), ExecIRUpdateTriggers(), IndexNextWithReorder(), IndexOnlyNext(), and store_returning_result().
void ExecForceStoreMinimalTuple | ( | MinimalTuple | mtup, |
TupleTableSlot * | slot, | ||
bool | shouldFree | ||
) |
Definition at line 1482 of file execTuples.c.
References ExecClearTuple(), ExecMaterializeSlot(), ExecStoreVirtualTuple(), heap_deform_tuple(), MINIMAL_TUPLE_OFFSET, pfree(), HeapTupleData::t_data, HeapTupleData::t_len, MinimalTupleData::t_len, TTS_IS_MINIMALTUPLE, TupleTableSlot::tts_isnull, tts_minimal_store_tuple(), TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by ExecHashJoinGetSavedTuple(), ExecParallelHashJoinNewBatch(), and ExecParallelHashJoinOuterGetTuple().
|
inlinestatic |
Definition at line 443 of file tuptable.h.
References TupleTableSlotOps::materialize, and TupleTableSlot::tts_ops.
Referenced by CopyFrom(), EvalPlanQual(), ExecBRUpdateTriggers(), ExecComputeStoredGenerated(), ExecDelete(), ExecForceStoreHeapTuple(), ExecForceStoreMinimalTuple(), ExecInsert(), ExecUpdate(), and RelationFindReplTupleByIndex().
Definition at line 1161 of file execTuples.c.
References ExecClearTuple(), lfirst_node, list_free(), pfree(), TupleTableSlotOps::release, ReleaseTupleDesc, TTS_FIXED, TupleTableSlot::tts_isnull, TupleTableSlot::tts_ops, TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by afterTriggerInvokeEvents(), apply_handle_delete(), apply_handle_insert(), apply_handle_update(), CopyFrom(), EvalPlanQualEnd(), and ExecEndPlan().
void ExecSetSlotDescriptor | ( | TupleTableSlot * | slot, |
TupleDesc | tupdesc | ||
) |
Definition at line 1259 of file execTuples.c.
References Assert, ExecClearTuple(), MemoryContextAlloc(), TupleDescData::natts, pfree(), PinTupleDesc, ReleaseTupleDesc, TTS_FIXED, TupleTableSlot::tts_isnull, TupleTableSlot::tts_mcxt, TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by ExecAssignScanType(), ExecInitJunkFilterConversion(), and ExecInitJunkFilterInsertion().
TupleTableSlot* ExecStoreAllNullTuple | ( | TupleTableSlot * | slot | ) |
Definition at line 1546 of file execTuples.c.
References Assert, ExecClearTuple(), ExecStoreVirtualTuple(), MemSet, TupleDescData::natts, TupleTableSlot::tts_isnull, TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by ATRewriteTable(), BitmapHeapNext(), ExecDelete(), ExecInitNullTupleSlot(), get_returning_data(), and prepare_projection_slot().
TupleTableSlot* ExecStoreBufferHeapTuple | ( | HeapTuple | tuple, |
TupleTableSlot * | slot, | ||
Buffer | buffer | ||
) |
Definition at line 1362 of file execTuples.c.
References Assert, BufferIsValid, elog, ERROR, HeapTupleData::t_tableOid, tts_buffer_heap_store_tuple(), TTS_IS_BUFFERTUPLE, TupleTableSlot::tts_tableOid, TupleTableSlot::tts_tupleDescriptor, and unlikely.
Referenced by heap_getnextslot(), heapam_index_build_range_scan(), heapam_index_fetch_tuple(), heapam_scan_analyze_next_tuple(), heapam_scan_bitmap_next_tuple(), and heapam_scan_sample_next_tuple().
TupleTableSlot* ExecStoreHeapTuple | ( | HeapTuple | tuple, |
TupleTableSlot * | slot, | ||
bool | shouldFree | ||
) |
Definition at line 1322 of file execTuples.c.
References Assert, elog, ERROR, HeapTupleData::t_tableOid, tts_heap_store_tuple(), TTS_IS_HEAPTUPLE, TupleTableSlot::tts_tableOid, TupleTableSlot::tts_tupleDescriptor, and unlikely.
Referenced by CatalogIndexInsert(), comparetup_cluster(), compute_index_stats(), ExecForceStoreHeapTuple(), ExecuteCallStmt(), get_returning_data(), heapam_index_validate_scan(), postgresIterateForeignScan(), setop_retrieve_direct(), and tts_heap_copyslot().
void ExecStoreHeapTupleDatum | ( | Datum | data, |
TupleTableSlot * | slot | ||
) |
Definition at line 1576 of file execTuples.c.
References DatumGetHeapTupleHeader, ExecClearTuple(), ExecStoreVirtualTuple(), heap_deform_tuple(), HeapTupleHeaderGetDatumLength, HeapTupleHeaderData::t_ctid, HeapTupleData::t_data, HeapTupleData::t_len, HeapTupleData::t_self, TupleTableSlot::tts_isnull, TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by EvalPlanQualFetchRowMark().
TupleTableSlot* ExecStoreMinimalTuple | ( | MinimalTuple | mtup, |
TupleTableSlot * | slot, | ||
bool | shouldFree | ||
) |
Definition at line 1416 of file execTuples.c.
References Assert, elog, ERROR, TTS_IS_MINIMALTUPLE, tts_minimal_store_tuple(), TupleTableSlot::tts_tupleDescriptor, and unlikely.
Referenced by agg_refill_hash_table(), agg_retrieve_hash_table_in_memory(), ExecParallelScanHashBucket(), ExecScanHashBucket(), ExecScanHashTableForUnmatched(), findPartialMatch(), gather_getnext(), gather_merge_readnext(), setop_retrieve_hash_table(), tts_minimal_copyslot(), TupleHashTableHash_internal(), TupleHashTableMatch(), tuplesort_gettupleslot(), and tuplestore_gettupleslot().
TupleTableSlot* ExecStorePinnedBufferHeapTuple | ( | HeapTuple | tuple, |
TupleTableSlot * | slot, | ||
Buffer | buffer | ||
) |
Definition at line 1388 of file execTuples.c.
References Assert, BufferIsValid, elog, ERROR, HeapTupleData::t_tableOid, tts_buffer_heap_store_tuple(), TTS_IS_BUFFERTUPLE, TupleTableSlot::tts_tableOid, TupleTableSlot::tts_tupleDescriptor, and unlikely.
Referenced by heapam_fetch_row_version(), and heapam_tuple_lock().
TupleTableSlot* ExecStoreVirtualTuple | ( | TupleTableSlot * | slot | ) |
Definition at line 1522 of file execTuples.c.
References Assert, TupleDescData::natts, TTS_EMPTY, TTS_FLAG_EMPTY, TupleTableSlot::tts_flags, TupleTableSlot::tts_nvalid, and TupleTableSlot::tts_tupleDescriptor.
Referenced by agg_retrieve_hash_table_in_memory(), apply_returning_filter(), ATRewriteTable(), CopyFrom(), copyTemplateDependencies(), do_tup_output(), ExecComputeStoredGenerated(), ExecEvalAggOrderedTransTuple(), ExecFilterJunk(), ExecForceStoreHeapTuple(), ExecForceStoreMinimalTuple(), ExecProjectSRF(), ExecStoreAllNullTuple(), ExecStoreHeapTupleDatum(), execute_attr_map_slot(), fileIterateForeignScan(), FunctionNext(), hashagg_spill_tuple(), hypothetical_dense_rank_final(), hypothetical_rank_common(), InsertPgAttributeTuples(), ordered_set_transition_multi(), prepare_hash_slot(), recordMultipleDependencies(), RI_Initial_Check(), RI_PartitionRemove_Check(), slot_modify_data(), slot_store_data(), StoreIndexTuple(), and ValuesNext().
TupleTableSlot* MakeSingleTupleTableSlot | ( | TupleDesc | tupdesc, |
const TupleTableSlotOps * | tts_ops | ||
) |
Definition at line 1208 of file execTuples.c.
References MakeTupleTableSlot().
Referenced by afterTriggerInvokeEvents(), ATRewriteTable(), begin_tup_output_tupdesc(), BuildTupleHashTableExt(), CatalogIndexInsert(), compute_index_stats(), copyTemplateDependencies(), ExecInitIncrementalSort(), ExecInitJunkFilterConversion(), ExecInitJunkFilterInsertion(), ExecInitPartitionDispatchInfo(), ExecInsert(), ExecPrepareTuplestoreResult(), fetch_remote_table_info(), fetch_table_list(), heapam_index_validate_scan(), hypothetical_dense_rank_final(), init_sql_fcache(), InsertPgAttributeTuples(), ordered_set_startup(), recordMultipleDependencies(), RI_Initial_Check(), RI_PartitionRemove_Check(), RunFromStore(), table_slot_create(), tstoreStartupReceiver(), and tuplesort_begin_cluster().
TupleTableSlot* MakeTupleTableSlot | ( | TupleDesc | tupleDesc, |
const TupleTableSlotOps * | tts_ops | ||
) |
Definition at line 1082 of file execTuples.c.
References TupleTableSlotOps::base_slot_size, CurrentMemoryContext, TupleTableSlotOps::init, MAXALIGN, TupleDescData::natts, palloc0(), PinTupleDesc, T_TupleTableSlot, TTS_FLAG_EMPTY, TTS_FLAG_FIXED, TupleTableSlot::tts_flags, TupleTableSlot::tts_isnull, TupleTableSlot::tts_mcxt, TupleTableSlot::tts_nvalid, TupleTableSlot::tts_ops, TupleTableSlot::tts_tupleDescriptor, TupleTableSlot::tts_values, and TupleTableSlot::type.
Referenced by ExecAllocTableSlot(), ExecConstraints(), ExecPartitionCheckEmitError(), ExecWithCheckOptions(), and MakeSingleTupleTableSlot().
|
inlinestatic |
Definition at line 367 of file tuptable.h.
References AssertArg, slot_getsomeattrs(), TupleTableSlot::tts_isnull, and TupleTableSlot::tts_nvalid.
Referenced by AlterDomainNotNull(), ATRewriteTable(), ExecConstraints(), ri_NullCheck(), slotAllNulls(), and slotNoNulls().
|
inlinestatic |
Definition at line 354 of file tuptable.h.
References TupleDescData::natts, slot_getsomeattrs(), and TupleTableSlot::tts_tupleDescriptor.
Referenced by agg_retrieve_hash_table_in_memory(), apply_handle_tuple_routing(), apply_returning_filter(), ATRewriteTable(), CopyOneRowTo(), CopyTo(), ExecBuildSlotValueDescription(), ExecComputeStoredGenerated(), ExecEvalWholeRowVar(), ExecFilterJunk(), execute_attr_map_slot(), FunctionNext(), printsimple(), printtup(), printtup_20(), printtup_internal_20(), slot_modify_data(), tstoreReceiveSlot_detoast(), tts_virtual_copyslot(), and tuples_equal().
|
inlinestatic |
Definition at line 381 of file tuptable.h.
References AssertArg, slot_getsomeattrs(), TupleTableSlot::tts_isnull, TupleTableSlot::tts_nvalid, and TupleTableSlot::tts_values.
Referenced by buildSubPlanHash(), convert_prep_stmt_params(), debugtup(), ExecGetJunkAttribute(), ExecJustAssignVarImpl(), ExecJustVarImpl(), ExecMakeFunctionResultSet(), ExecNestLoop(), ExecScanSubPlan(), ExecSetParamPlan(), execTuplesUnequal(), fetch_remote_table_info(), fetch_table_list(), fetch_tuple_flag(), FormIndexDatum(), FormPartitionKeyDatum(), heap_compare_slots(), hypothetical_dense_rank_final(), hypothetical_rank_common(), isCurrentGroup(), postquel_get_single_result(), ri_ExtractValues(), ri_KeysEqual(), ri_ReportViolation(), TupleHashTableHash_internal(), update_frameheadpos(), update_frametailpos(), and validateDomainConstraint().
void slot_getmissingattrs | ( | TupleTableSlot * | slot, |
int | startAttNum, | ||
int | lastAttNum | ||
) |
Definition at line 1838 of file execTuples.c.
References AttrMissing::am_present, AttrMissing::am_value, TupleDescData::constr, TupleConstr::missing, TupleTableSlot::tts_isnull, TupleTableSlot::tts_tupleDescriptor, and TupleTableSlot::tts_values.
Referenced by slot_getsomeattrs_int().
|
inlinestatic |
Definition at line 341 of file tuptable.h.
References slot_getsomeattrs_int(), and TupleTableSlot::tts_nvalid.
Referenced by ExecInterpExpr(), hashagg_spill_tuple(), prepare_hash_slot(), prepare_projection_slot(), process_ordered_aggregate_multi(), slot_attisnull(), slot_getallattrs(), and slot_getattr().
void slot_getsomeattrs_int | ( | TupleTableSlot * | slot, |
int | attnum | ||
) |
Definition at line 1872 of file execTuples.c.
References Assert, attnum, elog, ERROR, TupleTableSlotOps::getsomeattrs, TupleDescData::natts, slot_getmissingattrs(), TupleTableSlot::tts_nvalid, TupleTableSlot::tts_ops, TupleTableSlot::tts_tupleDescriptor, and unlikely.
Referenced by slot_getsomeattrs().
|
inlinestatic |
Definition at line 402 of file tuptable.h.
References AssertArg, TupleTableSlotOps::getsysattr, ObjectIdGetDatum, PointerGetDatum, SelfItemPointerAttributeNumber, TableOidAttributeNumber, TupleTableSlot::tts_ops, TupleTableSlot::tts_tableOid, and TupleTableSlot::tts_tid.
Referenced by ExecCheckTupleVisible(), execCurrentOf(), ExecEvalSysVar(), ExecOnConflictUpdate(), FormIndexDatum(), and RI_FKey_fk_upd_check_required().
PGDLLIMPORT const TupleTableSlotOps TTSOpsBufferHeapTuple |
Definition at line 86 of file execTuples.c.
Referenced by CheckOpSlotCompatibility(), heapam_slot_callbacks(), and slot_compile_deform().
PGDLLIMPORT const TupleTableSlotOps TTSOpsHeapTuple |
Definition at line 84 of file execTuples.c.
Referenced by CatalogIndexInsert(), CheckOpSlotCompatibility(), compute_index_stats(), copyTemplateDependencies(), ExecInitForeignScan(), ExecInitSetOp(), ExecuteCallStmt(), heapam_index_validate_scan(), InsertPgAttributeTuples(), recordMultipleDependencies(), slot_compile_deform(), table_slot_callbacks(), and tuplesort_begin_cluster().
PGDLLIMPORT const TupleTableSlotOps TTSOpsMinimalTuple |
Definition at line 85 of file execTuples.c.
Referenced by afterTriggerInvokeEvents(), build_pertrans_for_aggref(), BuildTupleHashTableExt(), ExecInitAgg(), ExecInitCteScan(), ExecInitFunctionScan(), ExecInitGather(), ExecInitHash(), ExecInitIncrementalSort(), ExecInitMaterial(), ExecInitNamedTuplestoreScan(), ExecInitSetOp(), ExecInitSort(), ExecInitSubPlan(), ExecInitTableFuncScan(), ExecInitUnique(), ExecInitWindowAgg(), ExecInitWorkTableScan(), ExecPrepareTuplestoreResult(), fetch_remote_table_info(), fetch_table_list(), find_hash_columns(), gather_merge_setup(), hashagg_recompile_expressions(), hypothetical_dense_rank_final(), init_sql_fcache(), ordered_set_startup(), RunFromStore(), and slot_compile_deform().
PGDLLIMPORT const TupleTableSlotOps TTSOpsVirtual |
Definition at line 83 of file execTuples.c.
Referenced by AfterTriggerSaveEvent(), apply_handle_delete(), apply_handle_insert(), apply_handle_update(), CheckOpSlotCompatibility(), CreateReplicationSlot(), ExecComputeSlotInfo(), ExecConditionalAssignProjectionInfo(), ExecConstraints(), ExecGetResultSlotOps(), ExecInitAgg(), ExecInitAppend(), ExecInitCustomScan(), ExecInitGroup(), ExecInitHashJoin(), ExecInitIndexOnlyScan(), ExecInitJunkFilterConversion(), ExecInitJunkFilterInsertion(), ExecInitMergeAppend(), ExecInitMergeJoin(), ExecInitModifyTable(), ExecInitNestLoop(), ExecInitPartitionDispatchInfo(), ExecInitPartitionInfo(), ExecInitProjectSet(), ExecInitResult(), ExecInitSort(), ExecInitSubPlan(), ExecInitValuesScan(), ExecInitWholeRowVar(), ExecInitWindowAgg(), ExecPartitionCheckEmitError(), ExecWithCheckOptions(), ExplainQuery(), IdentifySystem(), InitPlan(), llvm_compile_expr(), RI_Initial_Check(), RI_PartitionRemove_Check(), ShowAllGUCConfig(), ShowGUCConfigOption(), slot_compile_deform(), StartReplication(), table_slot_callbacks(), and tstoreStartupReceiver().