135 #define planner_subplan_get_plan(root, subplan) \ 136 ((Plan *) list_nth((root)->glob->subplans, (subplan)->plan_id - 1)) 152 #ifndef HAVE_PLANNERINFO_TYPEDEF 154 #define HAVE_PLANNERINFO_TYPEDEF 1 383 #define planner_rt_fetch(rti, root) \ 384 ((root)->simple_rte_array ? (root)->simple_rte_array[rti] : \ 385 rt_fetch(rti, (root)->parse->rtable)) 632 #define AMFLAG_HAS_TID_RANGE (1 << 0) 649 #define IS_SIMPLE_REL(rel) \ 650 ((rel)->reloptkind == RELOPT_BASEREL || \ 651 (rel)->reloptkind == RELOPT_OTHER_MEMBER_REL) 654 #define IS_JOIN_REL(rel) \ 655 ((rel)->reloptkind == RELOPT_JOINREL || \ 656 (rel)->reloptkind == RELOPT_OTHER_JOINREL) 659 #define IS_UPPER_REL(rel) \ 660 ((rel)->reloptkind == RELOPT_UPPER_REL || \ 661 (rel)->reloptkind == RELOPT_OTHER_UPPER_REL) 664 #define IS_OTHER_REL(rel) \ 665 ((rel)->reloptkind == RELOPT_OTHER_MEMBER_REL || \ 666 (rel)->reloptkind == RELOPT_OTHER_JOINREL || \ 667 (rel)->reloptkind == RELOPT_OTHER_UPPER_REL) 778 #define IS_PARTITIONED_REL(rel) \ 779 ((rel)->part_scheme && (rel)->boundinfo && (rel)->nparts > 0 && \ 780 (rel)->part_rels && !IS_DUMMY_REL(rel)) 786 #define REL_HAS_ALL_PART_PROPS(rel) \ 787 ((rel)->part_scheme && (rel)->boundinfo && (rel)->nparts > 0 && \ 788 (rel)->part_rels && (rel)->partexprs && (rel)->nullable_partexprs) 821 #ifndef HAVE_INDEXOPTINFO_TYPEDEF 823 #define HAVE_INDEXOPTINFO_TYPEDEF 1 881 void (*amcostestimate) ();
1000 #define EC_MUST_BE_REDUNDANT(eclass) \ 1001 ((eclass)->ec_has_const && !(eclass)->ec_below_outer_join) 1111 #define get_pathtarget_sortgroupref(target, colno) \ 1112 ((target)->sortgrouprefs ? (target)->sortgrouprefs[colno] : (Index) 0) 1193 #define PATH_REQ_OUTER(path) \ 1194 ((path)->param_info ? (path)->param_info->ppi_req_outer : (Relids) NULL) 1450 #define IS_DUMMY_APPEND(p) \ 1451 (IsA((p), AppendPath) && ((AppendPath *) (p))->subpaths == NIL) 1458 #define IS_DUMMY_REL(r) is_dummy_rel(r) 2128 #define RINFO_IS_PUSHED_DOWN(rinfo, joinrelids) \ 2129 ((rinfo)->is_pushed_down || \ 2130 !bms_is_subset((rinfo)->required_relids, joinrelids)) 2233 #ifndef HAVE_SPECIALJOININFO_TYPEDEF 2235 #define HAVE_SPECIALJOININFO_TYPEDEF 1 2541 #define GROUPING_CAN_USE_SORT 0x0001 2542 #define GROUPING_CAN_USE_HASH 0x0002 2543 #define GROUPING_CAN_PARTIAL_AGG 0x0004
struct RowIdentityVarInfo RowIdentityVarInfo
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 ResultCachePath ResultCachePath
struct MinMaxAggPath MinMaxAggPath
int simple_rel_array_size
struct PartitionSchemeData * PartitionScheme
List * non_unique_for_rels
VolatileFunctionStatus has_volatile
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
VolatileFunctionStatus has_volatile_expr
Selectivity left_bucketsize
struct BitmapHeapPath BitmapHeapPath
ParamListInfo boundParams
struct WindowAggPath WindowAggPath
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
struct TidRangePath TidRangePath
ScanDirection indexscandir
struct MinMaxAggInfo MinMaxAggInfo
struct SubqueryScanPath SubqueryScanPath
Relids leaf_result_relids
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)