Header And Logo

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

Data Structures | Defines | Typedefs | Enumerations

relation.h File Reference

#include "access/sdir.h"
#include "nodes/params.h"
#include "nodes/parsenodes.h"
#include "storage/block.h"
Include dependency graph for relation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  QualCost
struct  AggClauseCosts
struct  PlannerGlobal
struct  PlannerInfo
struct  RelOptInfo
struct  IndexOptInfo
struct  EquivalenceClass
struct  EquivalenceMember
struct  PathKey
struct  ParamPathInfo
struct  Path
struct  IndexPath
struct  BitmapHeapPath
struct  BitmapAndPath
struct  BitmapOrPath
struct  TidPath
struct  ForeignPath
struct  AppendPath
struct  MergeAppendPath
struct  ResultPath
struct  MaterialPath
struct  UniquePath
struct  JoinPath
struct  MergePath
struct  HashPath
struct  RestrictInfo
struct  MergeScanSelCache
struct  PlaceHolderVar
struct  SpecialJoinInfo
struct  LateralJoinInfo
struct  AppendRelInfo
struct  PlaceHolderInfo
struct  MinMaxAggInfo
struct  PlannerParamItem
struct  SemiAntiJoinFactors
struct  JoinCostWorkspace

Defines

#define planner_subplan_get_plan(root, subplan)   ((Plan *) list_nth((root)->glob->subplans, (subplan)->plan_id - 1))
#define planner_rt_fetch(rti, root)
#define EC_MUST_BE_REDUNDANT(eclass)   ((eclass)->ec_has_const && !(eclass)->ec_below_outer_join)
#define PATH_REQ_OUTER(path)   ((path)->param_info ? (path)->param_info->ppi_req_outer : (Relids) NULL)
#define IS_DUMMY_PATH(p)   (IsA((p), AppendPath) && ((AppendPath *) (p))->subpaths == NIL)
#define IS_DUMMY_REL(r)

Typedefs

typedef BitmapsetRelids
typedef enum CostSelector CostSelector
typedef struct QualCost QualCost
typedef struct AggClauseCosts AggClauseCosts
typedef struct PlannerGlobal PlannerGlobal
typedef struct PlannerInfo PlannerInfo
typedef enum RelOptKind RelOptKind
typedef struct RelOptInfo RelOptInfo
typedef struct IndexOptInfo IndexOptInfo
typedef struct EquivalenceClass EquivalenceClass
typedef struct EquivalenceMember EquivalenceMember
typedef struct PathKey PathKey
typedef struct ParamPathInfo ParamPathInfo
typedef struct Path Path
typedef struct IndexPath IndexPath
typedef struct BitmapHeapPath BitmapHeapPath
typedef struct BitmapAndPath BitmapAndPath
typedef struct BitmapOrPath BitmapOrPath
typedef struct TidPath TidPath
typedef struct ForeignPath ForeignPath
typedef struct AppendPath AppendPath
typedef struct MergeAppendPath MergeAppendPath
typedef struct ResultPath ResultPath
typedef struct MaterialPath MaterialPath
typedef struct UniquePath UniquePath
typedef struct JoinPath JoinPath
typedef JoinPath NestPath
typedef struct MergePath MergePath
typedef struct HashPath HashPath
typedef struct RestrictInfo RestrictInfo
typedef struct MergeScanSelCache MergeScanSelCache
typedef struct PlaceHolderVar PlaceHolderVar
typedef struct SpecialJoinInfo SpecialJoinInfo
typedef struct LateralJoinInfo LateralJoinInfo
typedef struct AppendRelInfo AppendRelInfo
typedef struct PlaceHolderInfo PlaceHolderInfo
typedef struct MinMaxAggInfo MinMaxAggInfo
typedef struct PlannerParamItem PlannerParamItem
typedef struct SemiAntiJoinFactors SemiAntiJoinFactors
typedef struct JoinCostWorkspace JoinCostWorkspace

Enumerations

enum  CostSelector { STARTUP_COST, TOTAL_COST }
enum  RelOptKind { RELOPT_BASEREL, RELOPT_JOINREL, RELOPT_OTHER_MEMBER_REL, RELOPT_DEADREL }
enum  UniquePathMethod { UNIQUE_PATH_NOOP, UNIQUE_PATH_HASH, UNIQUE_PATH_SORT }

Define Documentation

#define EC_MUST_BE_REDUNDANT (   eclass  )     ((eclass)->ec_has_const && !(eclass)->ec_below_outer_join)

Definition at line 589 of file relation.h.

Referenced by pathkey_is_redundant(), and select_mergejoin_clauses().

#define IS_DUMMY_PATH (   p  )     (IsA((p), AppendPath) && ((AppendPath *) (p))->subpaths == NIL)

Definition at line 882 of file relation.h.

#define IS_DUMMY_REL (   r  ) 
Value:
((r)->cheapest_total_path != NULL && \
     IS_DUMMY_PATH((r)->cheapest_total_path))

Definition at line 886 of file relation.h.

Referenced by get_loop_count(), is_dummy_rel(), set_append_rel_pathlist(), set_append_rel_size(), and set_rel_pathlist().

#define PATH_REQ_OUTER (   path  )     ((path)->param_info ? (path)->param_info->ppi_req_outer : (Relids) NULL)
#define planner_rt_fetch (   rti,
  root 
)
#define planner_subplan_get_plan (   root,
  subplan 
)    ((Plan *) list_nth((root)->glob->subplans, (subplan)->plan_id - 1))

Definition at line 104 of file relation.h.

Referenced by finalize_primnode(), and SS_finalize_plan().


Typedef Documentation

typedef struct AppendPath AppendPath
typedef struct AppendRelInfo AppendRelInfo
typedef struct BitmapAndPath BitmapAndPath
typedef struct BitmapOrPath BitmapOrPath
typedef enum CostSelector CostSelector
typedef struct ForeignPath ForeignPath
typedef struct HashPath HashPath
typedef struct IndexOptInfo IndexOptInfo
typedef struct IndexPath IndexPath
typedef struct JoinPath JoinPath
typedef struct MaterialPath MaterialPath
typedef struct MergePath MergePath
typedef struct MinMaxAggInfo MinMaxAggInfo
typedef JoinPath NestPath

Definition at line 981 of file relation.h.

typedef struct ParamPathInfo ParamPathInfo
typedef struct Path Path
typedef struct PathKey PathKey
typedef struct PlannerGlobal PlannerGlobal
typedef struct PlannerInfo PlannerInfo
typedef struct QualCost QualCost
typedef Bitmapset* Relids

Definition at line 27 of file relation.h.

typedef struct RelOptInfo RelOptInfo
typedef enum RelOptKind RelOptKind
typedef struct RestrictInfo RestrictInfo
typedef struct ResultPath ResultPath
typedef struct TidPath TidPath
typedef struct UniquePath UniquePath

Enumeration Type Documentation

Enumerator:
STARTUP_COST 
TOTAL_COST 

Definition at line 33 of file relation.h.

{
    STARTUP_COST, TOTAL_COST
} CostSelector;

enum RelOptKind
Enumerator:
RELOPT_BASEREL 
RELOPT_JOINREL 
RELOPT_OTHER_MEMBER_REL 
RELOPT_DEADREL 

Definition at line 392 of file relation.h.

{
    RELOPT_BASEREL,
    RELOPT_JOINREL,
    RELOPT_OTHER_MEMBER_REL,
    RELOPT_DEADREL
} RelOptKind;

Enumerator:
UNIQUE_PATH_NOOP 
UNIQUE_PATH_HASH 
UNIQUE_PATH_SORT 

Definition at line 939 of file relation.h.

{
    UNIQUE_PATH_NOOP,           /* input is known unique already */
    UNIQUE_PATH_HASH,           /* use hashing */
    UNIQUE_PATH_SORT            /* use sorting */
} UniquePathMethod;