Header And Logo

PostgreSQL
| The world's most advanced open source database.

Data Structures | Defines | Typedefs | Enumerations

plannodes.h File Reference

#include "access/sdir.h"
#include "nodes/bitmapset.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  ModifyTable
struct  Append
struct  MergeAppend
struct  RecursiveUnion
struct  BitmapAnd
struct  BitmapOr
struct  Scan
struct  IndexScan
struct  IndexOnlyScan
struct  BitmapIndexScan
struct  BitmapHeapScan
struct  TidScan
struct  SubqueryScan
struct  FunctionScan
struct  ValuesScan
struct  CteScan
struct  WorkTableScan
struct  ForeignScan
struct  Join
struct  NestLoop
struct  NestLoopParam
struct  MergeJoin
struct  HashJoin
struct  Material
struct  Sort
struct  Group
struct  Agg
struct  WindowAgg
struct  Unique
struct  Hash
struct  SetOp
struct  LockRows
struct  Limit
struct  PlanRowMark
struct  PlanInvalItem

Defines

#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 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 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 CteScan CteScan
typedef struct WorkTableScan WorkTableScan
typedef struct ForeignScan ForeignScan
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 enum AggStrategy AggStrategy
typedef struct Agg Agg
typedef struct WindowAgg WindowAgg
typedef struct Unique Unique
typedef struct Hash Hash
typedef enum SetOpCmd SetOpCmd
typedef enum SetOpStrategy SetOpStrategy
typedef struct SetOp SetOp
typedef struct LockRows LockRows
typedef struct Limit Limit
typedef enum RowMarkType RowMarkType
typedef struct PlanRowMark PlanRowMark
typedef struct PlanInvalItem PlanInvalItem

Enumerations

enum  AggStrategy { AGG_PLAIN, AGG_SORTED, AGG_HASHED }
enum  SetOpCmd { SETOPCMD_INTERSECT, SETOPCMD_INTERSECT_ALL, SETOPCMD_EXCEPT, SETOPCMD_EXCEPT_ALL }
enum  SetOpStrategy { SETOP_SORTED, SETOP_HASHED }
enum  RowMarkType {
  ROW_MARK_EXCLUSIVE, ROW_MARK_NOKEYEXCLUSIVE, ROW_MARK_SHARE, ROW_MARK_KEYSHARE,
  ROW_MARK_REFERENCE, ROW_MARK_COPY
}

Define Documentation

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

Definition at line 73 of file plannodes.h.

#define innerPlan (   node  )     (((Plan *)(node))->righttree)
#define outerPlan (   node  )     (((Plan *)(node))->lefttree)
#define RowMarkRequiresRowShareLock (   marktype  )     ((marktype) <= ROW_MARK_KEYSHARE)

Typedef Documentation

typedef struct Agg Agg
typedef enum AggStrategy AggStrategy
typedef struct Append Append
typedef struct BitmapAnd BitmapAnd
typedef struct BitmapOr BitmapOr
typedef struct CteScan CteScan
typedef struct ForeignScan ForeignScan
typedef struct FunctionScan FunctionScan
typedef struct Group Group
typedef struct Hash Hash
typedef struct HashJoin HashJoin
typedef struct IndexOnlyScan IndexOnlyScan
typedef struct IndexScan IndexScan
typedef struct Join Join
typedef struct Limit Limit
typedef struct LockRows LockRows
typedef struct Material Material
typedef struct MergeAppend MergeAppend
typedef struct MergeJoin MergeJoin
typedef struct ModifyTable ModifyTable
typedef struct NestLoop NestLoop
typedef struct NestLoopParam NestLoopParam
typedef struct Plan Plan
typedef struct PlanInvalItem PlanInvalItem
typedef struct PlannedStmt PlannedStmt
typedef struct PlanRowMark PlanRowMark
typedef struct Result Result
typedef enum RowMarkType RowMarkType
typedef struct Scan Scan
typedef Scan SeqScan

Definition at line 272 of file plannodes.h.

typedef struct SetOp SetOp
typedef enum SetOpCmd SetOpCmd
typedef struct Sort Sort
typedef struct SubqueryScan SubqueryScan
typedef struct TidScan TidScan
typedef struct Unique Unique
typedef struct ValuesScan ValuesScan
typedef struct WindowAgg WindowAgg
typedef struct WorkTableScan WorkTableScan

Enumeration Type Documentation

Enumerator:
AGG_PLAIN 
AGG_SORTED 
AGG_HASHED 

Definition at line 621 of file plannodes.h.

{
    AGG_PLAIN,                  /* simple agg across all input rows */
    AGG_SORTED,                 /* grouped agg, input must be sorted */
    AGG_HASHED                  /* grouped agg, use internal hashtable */
} AggStrategy;

Enumerator:
ROW_MARK_EXCLUSIVE 
ROW_MARK_NOKEYEXCLUSIVE 
ROW_MARK_SHARE 
ROW_MARK_KEYSHARE 
ROW_MARK_REFERENCE 
ROW_MARK_COPY 

Definition at line 783 of file plannodes.h.

{
    ROW_MARK_EXCLUSIVE,         /* obtain exclusive tuple lock */
    ROW_MARK_NOKEYEXCLUSIVE,    /* obtain no-key exclusive tuple lock */
    ROW_MARK_SHARE,             /* obtain shared tuple lock */
    ROW_MARK_KEYSHARE,          /* obtain keyshare tuple lock */
    ROW_MARK_REFERENCE,         /* just fetch the TID */
    ROW_MARK_COPY               /* physically copy the row value */
} RowMarkType;

enum SetOpCmd
Enumerator:
SETOPCMD_INTERSECT 
SETOPCMD_INTERSECT_ALL 
SETOPCMD_EXCEPT 
SETOPCMD_EXCEPT_ALL 

Definition at line 693 of file plannodes.h.

{
    SETOPCMD_INTERSECT,
    SETOPCMD_INTERSECT_ALL,
    SETOPCMD_EXCEPT,
    SETOPCMD_EXCEPT_ALL
} SetOpCmd;

Enumerator:
SETOP_SORTED 
SETOP_HASHED 

Definition at line 701 of file plannodes.h.

{
    SETOP_SORTED,               /* input must be sorted */
    SETOP_HASHED                /* use internal hashtable */
} SetOpStrategy;