PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
execnodes.h File Reference
#include "access/genam.h"
#include "access/heapam.h"
#include "access/tupconvert.h"
#include "executor/instrument.h"
#include "lib/pairingheap.h"
#include "nodes/params.h"
#include "nodes/plannodes.h"
#include "utils/hsearch.h"
#include "utils/reltrigger.h"
#include "utils/sortsupport.h"
#include "utils/tuplestore.h"
#include "utils/tuplesort.h"
#include "lib/simplehash.h"
Include dependency graph for execnodes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  IndexInfo
 
struct  ExprContext_CB
 
struct  ExprContext
 
struct  ReturnSetInfo
 
struct  ProjectionInfo
 
struct  JunkFilter
 
struct  ResultRelInfo
 
struct  EState
 
struct  ExecRowMark
 
struct  ExecAuxRowMark
 
struct  TupleHashEntryData
 
struct  TupleHashTableData
 
struct  ExprState
 
struct  GenericExprState
 
struct  WholeRowVarExprState
 
struct  AggrefExprState
 
struct  GroupingFuncExprState
 
struct  WindowFuncExprState
 
struct  ArrayRefExprState
 
struct  FuncExprState
 
struct  ScalarArrayOpExprState
 
struct  BoolExprState
 
struct  SubPlanState
 
struct  AlternativeSubPlanState
 
struct  FieldSelectState
 
struct  FieldStoreState
 
struct  CoerceViaIOState
 
struct  ArrayCoerceExprState
 
struct  ConvertRowtypeExprState
 
struct  CaseExprState
 
struct  CaseWhenState
 
struct  ArrayExprState
 
struct  RowExprState
 
struct  RowCompareExprState
 
struct  CoalesceExprState
 
struct  MinMaxExprState
 
struct  XmlExprState
 
struct  NullTestState
 
struct  CoerceToDomainState
 
struct  DomainConstraintState
 
struct  PlanState
 
struct  EPQState
 
struct  ResultState
 
struct  ProjectSetState
 
struct  ModifyTableState
 
struct  AppendState
 
struct  MergeAppendState
 
struct  RecursiveUnionState
 
struct  BitmapAndState
 
struct  BitmapOrState
 
struct  ScanState
 
struct  SeqScanState
 
struct  SampleScanState
 
struct  IndexRuntimeKeyInfo
 
struct  IndexArrayKeyInfo
 
struct  IndexScanState
 
struct  IndexOnlyScanState
 
struct  BitmapIndexScanState
 
struct  BitmapHeapScanState
 
struct  TidScanState
 
struct  SubqueryScanState
 
struct  FunctionScanState
 
struct  ValuesScanState
 
struct  CteScanState
 
struct  WorkTableScanState
 
struct  ForeignScanState
 
struct  CustomScanState
 
struct  JoinState
 
struct  NestLoopState
 
struct  MergeJoinState
 
struct  HashJoinState
 
struct  MaterialState
 
struct  SortState
 
struct  GroupState
 
struct  AggState
 
struct  WindowAggState
 
struct  UniqueState
 
struct  GatherState
 
struct  HashState
 
struct  SetOpState
 
struct  LockRowsState
 
struct  LimitState
 

Macros

#define SH_PREFIX   tuplehash
 
#define SH_ELEMENT_TYPE   TupleHashEntryData
 
#define SH_KEY_TYPE   MinimalTuple
 
#define SH_SCOPE   extern
 
#define SH_DECLARE
 
#define InitTupleHashIterator(htable, iter)   tuplehash_start_iterate(htable->hashtab, iter)
 
#define TermTupleHashIterator(iter)   ((void) 0)
 
#define ResetTupleHashIterator(htable, iter)   InitTupleHashIterator(htable, iter)
 
#define ScanTupleHashTable(htable, iter)   tuplehash_iterate(htable->hashtab, iter)
 
#define innerPlanState(node)   (((PlanState *)(node))->righttree)
 
#define outerPlanState(node)   (((PlanState *)(node))->lefttree)
 
#define InstrCountFiltered1(node, delta)
 
#define InstrCountFiltered2(node, delta)
 

Typedefs

typedef struct IndexInfo IndexInfo
 
typedef void(* ExprContextCallbackFunction )(Datum arg)
 
typedef struct ExprContext_CB ExprContext_CB
 
typedef struct ExprContext ExprContext
 
typedef struct ReturnSetInfo ReturnSetInfo
 
typedef struct ProjectionInfo ProjectionInfo
 
typedef struct JunkFilter JunkFilter
 
typedef struct ResultRelInfo ResultRelInfo
 
typedef struct EState EState
 
typedef struct ExecRowMark ExecRowMark
 
typedef struct ExecAuxRowMark ExecAuxRowMark
 
typedef struct TupleHashEntryDataTupleHashEntry
 
typedef struct TupleHashTableDataTupleHashTable
 
typedef struct TupleHashEntryData TupleHashEntryData
 
typedef struct TupleHashTableData TupleHashTableData
 
typedef tuplehash_iterator TupleHashIterator
 
typedef struct ExprState ExprState
 
typedef Datum(* ExprStateEvalFunc )(ExprState *expression, ExprContext *econtext, bool *isNull)
 
typedef struct GenericExprState GenericExprState
 
typedef struct WholeRowVarExprState WholeRowVarExprState
 
typedef struct AggrefExprState AggrefExprState
 
typedef struct
GroupingFuncExprState 
GroupingFuncExprState
 
typedef struct WindowFuncExprState WindowFuncExprState
 
typedef struct ArrayRefExprState ArrayRefExprState
 
typedef struct FuncExprState FuncExprState
 
typedef struct
ScalarArrayOpExprState 
ScalarArrayOpExprState
 
typedef struct BoolExprState BoolExprState
 
typedef struct SubPlanState SubPlanState
 
typedef struct
AlternativeSubPlanState 
AlternativeSubPlanState
 
typedef struct FieldSelectState FieldSelectState
 
typedef struct FieldStoreState FieldStoreState
 
typedef struct CoerceViaIOState CoerceViaIOState
 
typedef struct ArrayCoerceExprState ArrayCoerceExprState
 
typedef struct
ConvertRowtypeExprState 
ConvertRowtypeExprState
 
typedef struct CaseExprState CaseExprState
 
typedef struct CaseWhenState CaseWhenState
 
typedef struct ArrayExprState ArrayExprState
 
typedef struct RowExprState RowExprState
 
typedef struct RowCompareExprState RowCompareExprState
 
typedef struct CoalesceExprState CoalesceExprState
 
typedef struct MinMaxExprState MinMaxExprState
 
typedef struct XmlExprState XmlExprState
 
typedef struct NullTestState NullTestState
 
typedef struct CoerceToDomainState CoerceToDomainState
 
typedef enum DomainConstraintType DomainConstraintType
 
typedef struct
DomainConstraintState 
DomainConstraintState
 
typedef struct PlanState PlanState
 
typedef struct EPQState EPQState
 
typedef struct ResultState ResultState
 
typedef struct ProjectSetState ProjectSetState
 
typedef struct ModifyTableState ModifyTableState
 
typedef struct AppendState AppendState
 
typedef struct MergeAppendState MergeAppendState
 
typedef struct RecursiveUnionState RecursiveUnionState
 
typedef struct BitmapAndState BitmapAndState
 
typedef struct BitmapOrState BitmapOrState
 
typedef struct ScanState ScanState
 
typedef struct SeqScanState SeqScanState
 
typedef struct SampleScanState SampleScanState
 
typedef struct IndexScanState IndexScanState
 
typedef struct IndexOnlyScanState IndexOnlyScanState
 
typedef struct BitmapIndexScanState BitmapIndexScanState
 
typedef struct BitmapHeapScanState BitmapHeapScanState
 
typedef struct TidScanState TidScanState
 
typedef struct SubqueryScanState SubqueryScanState
 
typedef struct FunctionScanState FunctionScanState
 
typedef struct ValuesScanState ValuesScanState
 
typedef struct CteScanState CteScanState
 
typedef struct WorkTableScanState WorkTableScanState
 
typedef struct ForeignScanState ForeignScanState
 
typedef struct CustomScanState CustomScanState
 
typedef struct JoinState JoinState
 
typedef struct NestLoopState NestLoopState
 
typedef struct
MergeJoinClauseData
MergeJoinClause
 
typedef struct MergeJoinState MergeJoinState
 
typedef struct HashJoinTupleDataHashJoinTuple
 
typedef struct HashJoinTableDataHashJoinTable
 
typedef struct HashJoinState HashJoinState
 
typedef struct MaterialState MaterialState
 
typedef struct SortState SortState
 
typedef struct GroupState GroupState
 
typedef struct AggStatePerAggDataAggStatePerAgg
 
typedef struct
AggStatePerTransData
AggStatePerTrans
 
typedef struct
AggStatePerGroupData
AggStatePerGroup
 
typedef struct
AggStatePerPhaseData
AggStatePerPhase
 
typedef struct AggState AggState
 
typedef struct
WindowStatePerFuncData
WindowStatePerFunc
 
typedef struct
WindowStatePerAggData
WindowStatePerAgg
 
typedef struct WindowAggState WindowAggState
 
typedef struct UniqueState UniqueState
 
typedef struct GatherState GatherState
 
typedef struct HashState HashState
 
typedef struct
SetOpStatePerGroupData
SetOpStatePerGroup
 
typedef struct SetOpState SetOpState
 
typedef struct LockRowsState LockRowsState
 
typedef struct LimitState LimitState
 

Enumerations

enum  ExprDoneCond { ExprSingleResult, ExprMultipleResult, ExprEndResult }
 
enum  SetFunctionReturnMode { SFRM_ValuePerCall = 0x01, SFRM_Materialize = 0x02, SFRM_Materialize_Random = 0x04, SFRM_Materialize_Preferred = 0x08 }
 
enum  DomainConstraintType { DOM_CONSTRAINT_NOTNULL, DOM_CONSTRAINT_CHECK }
 
enum  LimitStateCond {
  LIMIT_INITIAL, LIMIT_RESCAN, LIMIT_EMPTY, LIMIT_INWINDOW,
  LIMIT_SUBPLANEOF, LIMIT_WINDOWEND, LIMIT_WINDOWSTART
}
 

Macro Definition Documentation

#define InitTupleHashIterator (   htable,
  iter 
)    tuplehash_start_iterate(htable->hashtab, iter)

Definition at line 554 of file execnodes.h.

Referenced by findPartialMatch().

#define InstrCountFiltered1 (   node,
  delta 
)
Value:
do { \
if (((PlanState *)(node))->instrument) \
((PlanState *)(node))->instrument->nfiltered1 += (delta); \
} while(0)

Definition at line 1093 of file execnodes.h.

Referenced by ExecGroup(), ExecHashJoin(), ExecMergeJoin(), ExecNestLoop(), ExecOnConflictUpdate(), ExecScan(), and project_aggregates().

#define InstrCountFiltered2 (   node,
  delta 
)
Value:
do { \
if (((PlanState *)(node))->instrument) \
((PlanState *)(node))->instrument->nfiltered2 += (delta); \
} while(0)

Definition at line 1098 of file execnodes.h.

Referenced by BitmapHeapNext(), ExecHashJoin(), ExecInsert(), ExecMergeJoin(), ExecNestLoop(), IndexNext(), IndexNextWithReorder(), IndexOnlyNext(), MJFillInner(), and MJFillOuter().

#define outerPlanState (   node)    (((PlanState *)(node))->lefttree)

Definition at line 1090 of file execnodes.h.

Referenced by begin_partition(), BitmapHeapNext(), ExecAssignScanTypeFromOuterPlan(), ExecEndAgg(), ExecEndBitmapHeapScan(), ExecEndForeignScan(), ExecEndGather(), ExecEndGroup(), ExecEndHash(), ExecEndHashJoin(), ExecEndLimit(), ExecEndLockRows(), ExecEndMaterial(), ExecEndMergeJoin(), ExecEndNestLoop(), ExecEndProjectSet(), ExecEndRecursiveUnion(), ExecEndResult(), ExecEndSetOp(), ExecEndSort(), ExecEndUnique(), ExecEndWindowAgg(), ExecGroup(), ExecHashJoin(), ExecInitAgg(), ExecInitBitmapHeapScan(), ExecInitForeignScan(), ExecInitGather(), ExecInitGroup(), ExecInitHash(), ExecInitHashJoin(), ExecInitLimit(), ExecInitLockRows(), ExecInitMaterial(), ExecInitMergeJoin(), ExecInitNestLoop(), ExecInitProjectSet(), ExecInitRecursiveUnion(), ExecInitResult(), ExecInitSetOp(), ExecInitSort(), ExecInitUnique(), ExecInitWindowAgg(), ExecLimit(), ExecLockRows(), ExecMaterial(), ExecMergeJoin(), ExecNestLoop(), ExecProjectSet(), ExecRecursiveUnion(), ExecReScanAgg(), ExecReScanBitmapHeapScan(), ExecReScanForeignScan(), ExecReScanGroup(), ExecReScanMaterial(), ExecReScanNestLoop(), ExecReScanRecursiveUnion(), ExecReScanSort(), ExecReScanWindowAgg(), ExecResult(), ExecResultMarkPos(), ExecResultRestrPos(), ExecSort(), ExecUnique(), ExplainNode(), ExplainPrintPlan(), fetch_input_tuple(), find_hash_columns(), gather_getnext(), initialize_phase(), MultiExecHash(), pass_down_bound(), planstate_tree_walker(), postgresRecheckForeignScan(), recompute_limits(), set_deparse_planstate(), setop_fill_hash_table(), setop_retrieve_direct(), show_agg_keys(), show_group_keys(), and spool_tuples().

#define ResetTupleHashIterator (   htable,
  iter 
)    InitTupleHashIterator(htable, iter)
#define ScanTupleHashTable (   htable,
  iter 
)    tuplehash_iterate(htable->hashtab, iter)
#define SH_DECLARE

Definition at line 526 of file execnodes.h.

#define SH_ELEMENT_TYPE   TupleHashEntryData

Definition at line 523 of file execnodes.h.

#define SH_KEY_TYPE   MinimalTuple

Definition at line 524 of file execnodes.h.

#define SH_PREFIX   tuplehash

Definition at line 522 of file execnodes.h.

#define SH_SCOPE   extern

Definition at line 525 of file execnodes.h.

#define TermTupleHashIterator (   iter)    ((void) 0)

Definition at line 556 of file execnodes.h.

Referenced by findPartialMatch().

Typedef Documentation

Definition at line 1860 of file execnodes.h.

Definition at line 1862 of file execnodes.h.

Definition at line 1863 of file execnodes.h.

Definition at line 1861 of file execnodes.h.

typedef void(* ExprContextCallbackFunction)(Datum arg)

Definition at line 91 of file execnodes.h.

Definition at line 589 of file execnodes.h.

typedef Datum(* ExprStateEvalFunc)(ExprState *expression, ExprContext *econtext, bool *isNull)

Definition at line 591 of file execnodes.h.

Definition at line 1773 of file execnodes.h.

Definition at line 1772 of file execnodes.h.

Definition at line 1721 of file execnodes.h.

Definition at line 2037 of file execnodes.h.

Definition at line 510 of file execnodes.h.

typedef tuplehash_iterator TupleHashIterator

Definition at line 547 of file execnodes.h.

Definition at line 511 of file execnodes.h.

Definition at line 1918 of file execnodes.h.

Definition at line 1917 of file execnodes.h.

Enumeration Type Documentation

Enumerator
DOM_CONSTRAINT_NOTNULL 
DOM_CONSTRAINT_CHECK 

Definition at line 1013 of file execnodes.h.

Enumerator
ExprSingleResult 
ExprMultipleResult 
ExprEndResult 

Definition at line 166 of file execnodes.h.

167 {
168  ExprSingleResult, /* expression does not return a set */
169  ExprMultipleResult, /* this result is an element of a set */
170  ExprEndResult /* there are no more elements in the set */
171 } ExprDoneCond;
ExprDoneCond
Definition: execnodes.h:166
Enumerator
LIMIT_INITIAL 
LIMIT_RESCAN 
LIMIT_EMPTY 
LIMIT_INWINDOW 
LIMIT_SUBPLANEOF 
LIMIT_WINDOWEND 
LIMIT_WINDOWSTART 

Definition at line 2084 of file execnodes.h.

2085 {
2086  LIMIT_INITIAL, /* initial state for LIMIT node */
2087  LIMIT_RESCAN, /* rescan after recomputing parameters */
2088  LIMIT_EMPTY, /* there are no returnable rows */
2089  LIMIT_INWINDOW, /* have returned a row in the window */
2090  LIMIT_SUBPLANEOF, /* at EOF of subplan (within window) */
2091  LIMIT_WINDOWEND, /* stepped off end of window */
2092  LIMIT_WINDOWSTART /* stepped off beginning of window */
2093 } LimitStateCond;
LimitStateCond
Definition: execnodes.h:2084
Enumerator
SFRM_ValuePerCall 
SFRM_Materialize 
SFRM_Materialize_Random 
SFRM_Materialize_Preferred 

Definition at line 179 of file execnodes.h.

180 {
181  SFRM_ValuePerCall = 0x01, /* one value returned per call */
182  SFRM_Materialize = 0x02, /* result set instantiated in Tuplestore */
183  SFRM_Materialize_Random = 0x04, /* Tuplestore needs randomAccess */
184  SFRM_Materialize_Preferred = 0x08 /* caller prefers Tuplestore */
SetFunctionReturnMode
Definition: execnodes.h:179