147 #define planner_subplan_get_plan(root, subplan) \ 148 ((Plan *) list_nth((root)->glob->subplans, (subplan)->plan_id - 1)) 164 #ifndef HAVE_PLANNERINFO_TYPEDEF 166 #define HAVE_PLANNERINFO_TYPEDEF 1 377 #define planner_rt_fetch(rti, root) \ 378 ((root)->simple_rte_array ? (root)->simple_rte_array[rti] : \ 379 rt_fetch(rti, (root)->parse->rtable)) 639 #define IS_SIMPLE_REL(rel) \ 640 ((rel)->reloptkind == RELOPT_BASEREL || \ 641 (rel)->reloptkind == RELOPT_OTHER_MEMBER_REL) 644 #define IS_JOIN_REL(rel) \ 645 ((rel)->reloptkind == RELOPT_JOINREL || \ 646 (rel)->reloptkind == RELOPT_OTHER_JOINREL) 649 #define IS_UPPER_REL(rel) \ 650 ((rel)->reloptkind == RELOPT_UPPER_REL || \ 651 (rel)->reloptkind == RELOPT_OTHER_UPPER_REL) 654 #define IS_OTHER_REL(rel) \ 655 ((rel)->reloptkind == RELOPT_OTHER_MEMBER_REL || \ 656 (rel)->reloptkind == RELOPT_OTHER_JOINREL || \ 657 (rel)->reloptkind == RELOPT_OTHER_UPPER_REL) 766 #define IS_PARTITIONED_REL(rel) \ 767 ((rel)->part_scheme && (rel)->boundinfo && (rel)->nparts > 0 && \ 768 (rel)->part_rels && !IS_DUMMY_REL(rel)) 774 #define REL_HAS_ALL_PART_PROPS(rel) \ 775 ((rel)->part_scheme && (rel)->boundinfo && (rel)->nparts > 0 && \ 776 (rel)->part_rels && (rel)->partexprs && (rel)->nullable_partexprs) 809 #ifndef HAVE_INDEXOPTINFO_TYPEDEF 811 #define HAVE_INDEXOPTINFO_TYPEDEF 1 869 void (*amcostestimate) ();
987 #define EC_MUST_BE_REDUNDANT(eclass) \ 988 ((eclass)->ec_has_const && !(eclass)->ec_below_outer_join) 1085 #define get_pathtarget_sortgroupref(target, colno) \ 1086 ((target)->sortgrouprefs ? (target)->sortgrouprefs[colno] : (Index) 0) 1167 #define PATH_REQ_OUTER(path) \ 1168 ((path)->param_info ? (path)->param_info->ppi_req_outer : (Relids) NULL) 1415 #define IS_DUMMY_APPEND(p) \ 1416 (IsA((p), AppendPath) && ((AppendPath *) (p))->subpaths == NIL) 1423 #define IS_DUMMY_REL(r) is_dummy_rel(r) 2071 #define RINFO_IS_PUSHED_DOWN(rinfo, joinrelids) \ 2072 ((rinfo)->is_pushed_down || \ 2073 !bms_is_subset((rinfo)->required_relids, joinrelids)) 2176 #ifndef HAVE_SPECIALJOININFO_TYPEDEF 2178 #define HAVE_SPECIALJOININFO_TYPEDEF 1 2456 #define GROUPING_CAN_USE_SORT 0x0001 2457 #define GROUPING_CAN_USE_HASH 0x0002 2458 #define GROUPING_CAN_PARTIAL_AGG 0x0004
struct Path * cheapest_unique_path
struct ProjectionPath ProjectionPath
struct UpperUniquePath UpperUniquePath
struct EquivalenceMember EquivalenceMember
OnConflictExpr * onconflict
struct StatisticExtInfo StatisticExtInfo
PartitionwiseAggregateType
void * join_search_private
Selectivity right_mcvfreq
PlannerInfo * parent_root
Selectivity outer_match_frac
struct IncrementalSortPath IncrementalSortPath
AttrNumber * parent_colnos
struct Path * cheapest_startup_path
struct PartitionSchemeData PartitionSchemeData
Relids em_nullable_relids
struct RollupData RollupData
struct BitmapOrPath BitmapOrPath
struct UniquePath UniquePath
struct AppendPath AppendPath
bool consider_param_startup
ParamPathInfo * param_info
struct MergeAppendPath MergeAppendPath
struct BitmapAndPath BitmapAndPath
struct CustomPath CustomPath
struct AggClauseCosts AggClauseCosts
struct JoinPathExtraData JoinPathExtraData
EquivalenceClass * right_ec
List * cheapest_parameterized_paths
Index baserestrict_min_security
struct GatherPath GatherPath
Selectivity bitmapselectivity
List ** nullable_partexprs
struct ForeignKeyOptInfo ForeignKeyOptInfo
AttrNumber * grouping_map
struct PlaceHolderInfo PlaceHolderInfo
struct AppendRelInfo AppendRelInfo
Cost inner_rescan_run_cost
struct EquivalenceClass EquivalenceClass
static struct cvec * eclass(struct vars *v, chr c, int cases)
struct MaterialPath MaterialPath
struct RelOptInfo ** simple_rel_array
struct LockRowsPath LockRowsPath
struct ParamPathInfo ParamPathInfo
const struct CustomPathMethods * methods
struct GroupingSetData GroupingSetData
EquivalenceMember * left_em
struct ModifyTablePath ModifyTablePath
EquivalenceClass * parent_ec
struct GatherMergePath GatherMergePath
Bitmapset * rewindPlanIDs
bool hasAlternativeSubPlans
struct ForeignPath ForeignPath
struct Path * cheapest_total_path
Selectivity rightstartsel
struct RelOptInfo RelOptInfo
Selectivity indexselectivity
struct RestrictInfo * rinfo
struct FdwRoutine * fdwroutine
struct AggTransInfo AggTransInfo
struct GroupingSetsPath GroupingSetsPath
Selectivity bitmapselectivity
struct MinMaxAggPath MinMaxAggPath
int simple_rel_array_size
struct PartitionSchemeData * PartitionScheme
List * non_unique_for_rels
struct PlaceHolderVar PlaceHolderVar
RangeTblEntry ** simple_rte_array
EquivalenceMember * right_em
Relids lateral_referencers
struct PlannerGlobal PlannerGlobal
Relids direct_lateral_relids
struct MergeScanSelCache MergeScanSelCache
struct MergePath MergePath
struct GroupResultPath GroupResultPath
bool consider_partitionwise_join
struct RestrictInfo RestrictInfo
struct ProjectSetPath ProjectSetPath
struct IndexClause IndexClause
struct SemiAntiJoinFactors SemiAntiJoinFactors
struct LimitPath LimitPath
struct AppendRelInfo ** append_rel_array
struct PartitionBoundInfoData * boundinfo
struct GroupPath GroupPath
bool hasPseudoConstantQuals
Selectivity left_bucketsize
struct BitmapHeapPath BitmapHeapPath
ParamListInfo boundParams
struct WindowAggPath WindowAggPath
InheritanceKind inhTargetKind
struct PlannerParamItem PlannerParamItem
struct FmgrInfo * partsupfunc
EquivalenceClass * pk_eclass
struct RelOptInfo ** part_rels
struct Path * non_recursive_path
struct HTAB * join_rel_hash
Index qual_security_level
List * withCheckOptionLists
Selectivity right_bucketsize
EquivalenceClass * left_ec
struct JoinCostWorkspace JoinCostWorkspace
struct RecursiveUnionPath RecursiveUnionPath
ScanDirection indexscandir
struct MinMaxAggInfo MinMaxAggInfo
struct SubqueryScanPath SubqueryScanPath
PartitionScheme part_scheme
struct PathTarget PathTarget
MemoryContext planner_cxt
List * right_join_clauses
struct IndexPath IndexPath
struct SetOpPath SetOpPath
PartitionDirectory partition_directory
struct PathTarget * reltarget
QualCost baserestrictcost
Bitmapset * eclass_indexes
struct EquivalenceClass * ec_merged
Aggref * representative_aggref
bool is_dummy_rel(RelOptInfo *rel)