PostgreSQL Source Code  git master
plannodes.h File Reference
#include "access/sdir.h"
#include "access/stratnum.h"
#include "lib/stringinfo.h"
#include "nodes/bitmapset.h"
#include "nodes/lockoptions.h"
#include "nodes/primnodes.h"
Include dependency graph for plannodes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  PlannedStmt
 
struct  Plan
 
struct  Result
 
struct  ProjectSet
 
struct  ModifyTable
 
struct  Append
 
struct  MergeAppend
 
struct  RecursiveUnion
 
struct  BitmapAnd
 
struct  BitmapOr
 
struct  Scan
 
struct  SampleScan
 
struct  IndexScan
 
struct  IndexOnlyScan
 
struct  BitmapIndexScan
 
struct  BitmapHeapScan
 
struct  TidScan
 
struct  SubqueryScan
 
struct  FunctionScan
 
struct  ValuesScan
 
struct  TableFuncScan
 
struct  CteScan
 
struct  NamedTuplestoreScan
 
struct  WorkTableScan
 
struct  ForeignScan
 
struct  CustomScan
 
struct  Join
 
struct  NestLoop
 
struct  NestLoopParam
 
struct  MergeJoin
 
struct  HashJoin
 
struct  Material
 
struct  Sort
 
struct  Group
 
struct  Agg
 
struct  WindowAgg
 
struct  Unique
 
struct  Gather
 
struct  GatherMerge
 
struct  Hash
 
struct  SetOp
 
struct  LockRows
 
struct  Limit
 
struct  PlanRowMark
 
struct  PartitionPruneInfo
 
struct  PartitionedRelPruneInfo
 
struct  PartitionPruneStep
 
struct  PartitionPruneStepOp
 
struct  PartitionPruneStepCombine
 
struct  PlanInvalItem
 

Macros

#define exec_subplan_get_plan(plannedstmt, subplan)   ((Plan *) list_nth((plannedstmt)->subplans, (subplan)->plan_id - 1))
 
#define innerPlan(node)   (((Plan *)(node))->righttree)
 
#define outerPlan(node)   (((Plan *)(node))->lefttree)
 
#define RowMarkRequiresRowShareLock(marktype)   ((marktype) <= ROW_MARK_KEYSHARE)
 

Typedefs

typedef struct PlannedStmt PlannedStmt
 
typedef struct Plan Plan
 
typedef struct Result Result
 
typedef struct ProjectSet ProjectSet
 
typedef struct ModifyTable ModifyTable
 
typedef struct Append Append
 
typedef struct MergeAppend MergeAppend
 
typedef struct RecursiveUnion RecursiveUnion
 
typedef struct BitmapAnd BitmapAnd
 
typedef struct BitmapOr BitmapOr
 
typedef struct Scan Scan
 
typedef Scan SeqScan
 
typedef struct SampleScan SampleScan
 
typedef struct IndexScan IndexScan
 
typedef struct IndexOnlyScan IndexOnlyScan
 
typedef struct BitmapIndexScan BitmapIndexScan
 
typedef struct BitmapHeapScan BitmapHeapScan
 
typedef struct TidScan TidScan
 
typedef struct SubqueryScan SubqueryScan
 
typedef struct FunctionScan FunctionScan
 
typedef struct ValuesScan ValuesScan
 
typedef struct TableFuncScan TableFuncScan
 
typedef struct CteScan CteScan
 
typedef struct NamedTuplestoreScan NamedTuplestoreScan
 
typedef struct WorkTableScan WorkTableScan
 
typedef struct ForeignScan ForeignScan
 
typedef struct CustomScan CustomScan
 
typedef struct Join Join
 
typedef struct NestLoop NestLoop
 
typedef struct NestLoopParam NestLoopParam
 
typedef struct MergeJoin MergeJoin
 
typedef struct HashJoin HashJoin
 
typedef struct Material Material
 
typedef struct Sort Sort
 
typedef struct Group Group
 
typedef struct Agg Agg
 
typedef struct WindowAgg WindowAgg
 
typedef struct Unique Unique
 
typedef struct Gather Gather
 
typedef struct GatherMerge GatherMerge
 
typedef struct Hash Hash
 
typedef struct SetOp SetOp
 
typedef struct LockRows LockRows
 
typedef struct Limit Limit
 
typedef enum RowMarkType RowMarkType
 
typedef struct PlanRowMark PlanRowMark
 
typedef struct PartitionPruneInfo PartitionPruneInfo
 
typedef struct PartitionedRelPruneInfo PartitionedRelPruneInfo
 
typedef struct PartitionPruneStep PartitionPruneStep
 
typedef struct PartitionPruneStepOp PartitionPruneStepOp
 
typedef enum PartitionPruneCombineOp PartitionPruneCombineOp
 
typedef struct PartitionPruneStepCombine PartitionPruneStepCombine
 
typedef struct PlanInvalItem PlanInvalItem
 

Enumerations

enum  RowMarkType {
  ROW_MARK_EXCLUSIVE, ROW_MARK_NOKEYEXCLUSIVE, ROW_MARK_SHARE, ROW_MARK_KEYSHARE,
  ROW_MARK_REFERENCE, ROW_MARK_COPY
}
 
enum  PartitionPruneCombineOp { PARTPRUNE_COMBINE_UNION, PARTPRUNE_COMBINE_INTERSECT }
 

Macro Definition Documentation

◆ exec_subplan_get_plan

#define exec_subplan_get_plan (   plannedstmt,
  subplan 
)    ((Plan *) list_nth((plannedstmt)->subplans, (subplan)->plan_id - 1))

Definition at line 98 of file plannodes.h.

◆ innerPlan

◆ outerPlan

◆ RowMarkRequiresRowShareLock

#define RowMarkRequiresRowShareLock (   marktype)    ((marktype) <= ROW_MARK_KEYSHARE)

Definition at line 1013 of file plannodes.h.

Referenced by EvalPlanQualFetchRowMark(), execCurrentOf(), and ExecInitLockRows().

Typedef Documentation

◆ Agg

typedef struct Agg Agg

◆ Append

typedef struct Append Append

◆ BitmapAnd

typedef struct BitmapAnd BitmapAnd

◆ BitmapHeapScan

◆ BitmapIndexScan

◆ BitmapOr

typedef struct BitmapOr BitmapOr

◆ CteScan

typedef struct CteScan CteScan

◆ CustomScan

typedef struct CustomScan CustomScan

◆ ForeignScan

typedef struct ForeignScan ForeignScan

◆ FunctionScan

typedef struct FunctionScan FunctionScan

◆ Gather

typedef struct Gather Gather

◆ GatherMerge

typedef struct GatherMerge GatherMerge

◆ Group

typedef struct Group Group

◆ Hash

typedef struct Hash Hash

◆ HashJoin

typedef struct HashJoin HashJoin

◆ IndexOnlyScan

typedef struct IndexOnlyScan IndexOnlyScan

◆ IndexScan

typedef struct IndexScan IndexScan

◆ Join

typedef struct Join Join

◆ Limit

typedef struct Limit Limit

◆ LockRows

typedef struct LockRows LockRows

◆ Material

typedef struct Material Material

◆ MergeAppend

typedef struct MergeAppend MergeAppend

◆ MergeJoin

typedef struct MergeJoin MergeJoin

◆ ModifyTable

typedef struct ModifyTable ModifyTable

◆ NamedTuplestoreScan

◆ NestLoop

typedef struct NestLoop NestLoop

◆ NestLoopParam

typedef struct NestLoopParam NestLoopParam

◆ PartitionedRelPruneInfo

◆ PartitionPruneCombineOp

◆ PartitionPruneInfo

◆ PartitionPruneStep

◆ PartitionPruneStepCombine

◆ PartitionPruneStepOp

◆ Plan

typedef struct Plan Plan

◆ PlanInvalItem

typedef struct PlanInvalItem PlanInvalItem

◆ PlannedStmt

typedef struct PlannedStmt PlannedStmt

◆ PlanRowMark

typedef struct PlanRowMark PlanRowMark

◆ ProjectSet

typedef struct ProjectSet ProjectSet

◆ RecursiveUnion

◆ Result

typedef struct Result Result

◆ RowMarkType

typedef enum RowMarkType RowMarkType

◆ SampleScan

typedef struct SampleScan SampleScan

◆ Scan

typedef struct Scan Scan

◆ SeqScan

typedef Scan SeqScan

Definition at line 348 of file plannodes.h.

◆ SetOp

typedef struct SetOp SetOp

◆ Sort

typedef struct Sort Sort

◆ SubqueryScan

typedef struct SubqueryScan SubqueryScan

◆ TableFuncScan

typedef struct TableFuncScan TableFuncScan

◆ TidScan

typedef struct TidScan TidScan

◆ Unique

typedef struct Unique Unique

◆ ValuesScan

typedef struct ValuesScan ValuesScan

◆ WindowAgg

typedef struct WindowAgg WindowAgg

◆ WorkTableScan

typedef struct WorkTableScan WorkTableScan

Enumeration Type Documentation

◆ PartitionPruneCombineOp

Enumerator
PARTPRUNE_COMBINE_UNION 
PARTPRUNE_COMBINE_INTERSECT 

Definition at line 1200 of file plannodes.h.

◆ RowMarkType

Enumerator
ROW_MARK_EXCLUSIVE 
ROW_MARK_NOKEYEXCLUSIVE 
ROW_MARK_SHARE 
ROW_MARK_KEYSHARE 
ROW_MARK_REFERENCE 
ROW_MARK_COPY 

Definition at line 1003 of file plannodes.h.

1004 {
1005  ROW_MARK_EXCLUSIVE, /* obtain exclusive tuple lock */
1006  ROW_MARK_NOKEYEXCLUSIVE, /* obtain no-key exclusive tuple lock */
1007  ROW_MARK_SHARE, /* obtain shared tuple lock */
1008  ROW_MARK_KEYSHARE, /* obtain keyshare tuple lock */
1009  ROW_MARK_REFERENCE, /* just fetch the TID, don't lock it */
1010  ROW_MARK_COPY /* physically copy the row value */
1011 } RowMarkType;
RowMarkType
Definition: plannodes.h:1003