aboutsummaryrefslogtreecommitdiff
path: root/src/include/optimizer/pathnode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/optimizer/pathnode.h')
-rw-r--r--src/include/optimizer/pathnode.h430
1 files changed, 215 insertions, 215 deletions
diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h
index 437250f557e..e70d6a3f188 100644
--- a/src/include/optimizer/pathnode.h
+++ b/src/include/optimizer/pathnode.h
@@ -21,259 +21,259 @@
/*
* prototypes for pathnode.c
*/
-extern int compare_path_costs(Path *path1, Path *path2,
- CostSelector criterion);
-extern int compare_fractional_path_costs(Path *path1, Path *path2,
- double fraction);
+extern int compare_path_costs(Path *path1, Path *path2,
+ CostSelector criterion);
+extern int compare_fractional_path_costs(Path *path1, Path *path2,
+ double fraction);
extern void set_cheapest(RelOptInfo *parent_rel);
extern void add_path(RelOptInfo *parent_rel, Path *new_path);
extern bool add_path_precheck(RelOptInfo *parent_rel,
- Cost startup_cost, Cost total_cost,
- List *pathkeys, Relids required_outer);
+ Cost startup_cost, Cost total_cost,
+ List *pathkeys, Relids required_outer);
extern void add_partial_path(RelOptInfo *parent_rel, Path *new_path);
extern bool add_partial_path_precheck(RelOptInfo *parent_rel,
- Cost total_cost, List *pathkeys);
+ Cost total_cost, List *pathkeys);
extern Path *create_seqscan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer, int parallel_workers);
+ Relids required_outer, int parallel_workers);
extern Path *create_samplescan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern IndexPath *create_index_path(PlannerInfo *root,
- IndexOptInfo *index,
- List *indexclauses,
- List *indexorderbys,
- List *indexorderbycols,
- List *pathkeys,
- ScanDirection indexscandir,
- bool indexonly,
- Relids required_outer,
- double loop_count,
- bool partial_path);
+ IndexOptInfo *index,
+ List *indexclauses,
+ List *indexorderbys,
+ List *indexorderbycols,
+ List *pathkeys,
+ ScanDirection indexscandir,
+ bool indexonly,
+ Relids required_outer,
+ double loop_count,
+ bool partial_path);
extern BitmapHeapPath *create_bitmap_heap_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *bitmapqual,
- Relids required_outer,
- double loop_count,
- int parallel_degree);
+ RelOptInfo *rel,
+ Path *bitmapqual,
+ Relids required_outer,
+ double loop_count,
+ int parallel_degree);
extern BitmapAndPath *create_bitmap_and_path(PlannerInfo *root,
- RelOptInfo *rel,
- List *bitmapquals);
+ RelOptInfo *rel,
+ List *bitmapquals);
extern BitmapOrPath *create_bitmap_or_path(PlannerInfo *root,
- RelOptInfo *rel,
- List *bitmapquals);
+ RelOptInfo *rel,
+ List *bitmapquals);
extern TidPath *create_tidscan_path(PlannerInfo *root, RelOptInfo *rel,
- List *tidquals, Relids required_outer);
+ List *tidquals, Relids required_outer);
extern AppendPath *create_append_path(PlannerInfo *root, RelOptInfo *rel,
- List *subpaths, List *partial_subpaths,
- List *pathkeys, Relids required_outer,
- int parallel_workers, bool parallel_aware,
- List *partitioned_rels, double rows);
+ List *subpaths, List *partial_subpaths,
+ List *pathkeys, Relids required_outer,
+ int parallel_workers, bool parallel_aware,
+ List *partitioned_rels, double rows);
extern MergeAppendPath *create_merge_append_path(PlannerInfo *root,
- RelOptInfo *rel,
- List *subpaths,
- List *pathkeys,
- Relids required_outer,
- List *partitioned_rels);
+ RelOptInfo *rel,
+ List *subpaths,
+ List *pathkeys,
+ Relids required_outer,
+ List *partitioned_rels);
extern GroupResultPath *create_group_result_path(PlannerInfo *root,
- RelOptInfo *rel,
- PathTarget *target,
- List *havingqual);
+ RelOptInfo *rel,
+ PathTarget *target,
+ List *havingqual);
extern MaterialPath *create_material_path(RelOptInfo *rel, Path *subpath);
extern UniquePath *create_unique_path(PlannerInfo *root, RelOptInfo *rel,
- Path *subpath, SpecialJoinInfo *sjinfo);
+ Path *subpath, SpecialJoinInfo *sjinfo);
extern GatherPath *create_gather_path(PlannerInfo *root,
- RelOptInfo *rel, Path *subpath, PathTarget *target,
- Relids required_outer, double *rows);
+ RelOptInfo *rel, Path *subpath, PathTarget *target,
+ Relids required_outer, double *rows);
extern GatherMergePath *create_gather_merge_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- PathTarget *target,
- List *pathkeys,
- Relids required_outer,
- double *rows);
+ RelOptInfo *rel,
+ Path *subpath,
+ PathTarget *target,
+ List *pathkeys,
+ Relids required_outer,
+ double *rows);
extern SubqueryScanPath *create_subqueryscan_path(PlannerInfo *root,
- RelOptInfo *rel, Path *subpath,
- List *pathkeys, Relids required_outer);
+ RelOptInfo *rel, Path *subpath,
+ List *pathkeys, Relids required_outer);
extern Path *create_functionscan_path(PlannerInfo *root, RelOptInfo *rel,
- List *pathkeys, Relids required_outer);
+ List *pathkeys, Relids required_outer);
extern Path *create_tablexprscan_path(PlannerInfo *root, RelOptInfo *rel,
- List *pathkeys, Relids required_outer);
+ List *pathkeys, Relids required_outer);
extern Path *create_valuesscan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern Path *create_tablefuncscan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern Path *create_ctescan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern Path *create_namedtuplestorescan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern Path *create_resultscan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern Path *create_worktablescan_path(PlannerInfo *root, RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern ForeignPath *create_foreignscan_path(PlannerInfo *root, RelOptInfo *rel,
- PathTarget *target,
- double rows, Cost startup_cost, Cost total_cost,
- List *pathkeys,
- Relids required_outer,
- Path *fdw_outerpath,
- List *fdw_private);
+ PathTarget *target,
+ double rows, Cost startup_cost, Cost total_cost,
+ List *pathkeys,
+ Relids required_outer,
+ Path *fdw_outerpath,
+ List *fdw_private);
extern ForeignPath *create_foreign_join_path(PlannerInfo *root, RelOptInfo *rel,
- PathTarget *target,
- double rows, Cost startup_cost, Cost total_cost,
- List *pathkeys,
- Relids required_outer,
- Path *fdw_outerpath,
- List *fdw_private);
+ PathTarget *target,
+ double rows, Cost startup_cost, Cost total_cost,
+ List *pathkeys,
+ Relids required_outer,
+ Path *fdw_outerpath,
+ List *fdw_private);
extern ForeignPath *create_foreign_upper_path(PlannerInfo *root, RelOptInfo *rel,
- PathTarget *target,
- double rows, Cost startup_cost, Cost total_cost,
- List *pathkeys,
- Path *fdw_outerpath,
- List *fdw_private);
+ PathTarget *target,
+ double rows, Cost startup_cost, Cost total_cost,
+ List *pathkeys,
+ Path *fdw_outerpath,
+ List *fdw_private);
extern Relids calc_nestloop_required_outer(Relids outerrelids,
- Relids outer_paramrels,
- Relids innerrelids,
- Relids inner_paramrels);
+ Relids outer_paramrels,
+ Relids innerrelids,
+ Relids inner_paramrels);
extern Relids calc_non_nestloop_required_outer(Path *outer_path, Path *inner_path);
extern NestPath *create_nestloop_path(PlannerInfo *root,
- RelOptInfo *joinrel,
- JoinType jointype,
- JoinCostWorkspace *workspace,
- JoinPathExtraData *extra,
- Path *outer_path,
- Path *inner_path,
- List *restrict_clauses,
- List *pathkeys,
- Relids required_outer);
+ RelOptInfo *joinrel,
+ JoinType jointype,
+ JoinCostWorkspace *workspace,
+ JoinPathExtraData *extra,
+ Path *outer_path,
+ Path *inner_path,
+ List *restrict_clauses,
+ List *pathkeys,
+ Relids required_outer);
extern MergePath *create_mergejoin_path(PlannerInfo *root,
- RelOptInfo *joinrel,
- JoinType jointype,
- JoinCostWorkspace *workspace,
- JoinPathExtraData *extra,
- Path *outer_path,
- Path *inner_path,
- List *restrict_clauses,
- List *pathkeys,
- Relids required_outer,
- List *mergeclauses,
- List *outersortkeys,
- List *innersortkeys);
+ RelOptInfo *joinrel,
+ JoinType jointype,
+ JoinCostWorkspace *workspace,
+ JoinPathExtraData *extra,
+ Path *outer_path,
+ Path *inner_path,
+ List *restrict_clauses,
+ List *pathkeys,
+ Relids required_outer,
+ List *mergeclauses,
+ List *outersortkeys,
+ List *innersortkeys);
extern HashPath *create_hashjoin_path(PlannerInfo *root,
- RelOptInfo *joinrel,
- JoinType jointype,
- JoinCostWorkspace *workspace,
- JoinPathExtraData *extra,
- Path *outer_path,
- Path *inner_path,
- bool parallel_hash,
- List *restrict_clauses,
- Relids required_outer,
- List *hashclauses);
+ RelOptInfo *joinrel,
+ JoinType jointype,
+ JoinCostWorkspace *workspace,
+ JoinPathExtraData *extra,
+ Path *outer_path,
+ Path *inner_path,
+ bool parallel_hash,
+ List *restrict_clauses,
+ Relids required_outer,
+ List *hashclauses);
extern ProjectionPath *create_projection_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- PathTarget *target);
+ RelOptInfo *rel,
+ Path *subpath,
+ PathTarget *target);
extern Path *apply_projection_to_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *path,
- PathTarget *target);
+ RelOptInfo *rel,
+ Path *path,
+ PathTarget *target);
extern ProjectSetPath *create_set_projection_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- PathTarget *target);
+ RelOptInfo *rel,
+ Path *subpath,
+ PathTarget *target);
extern SortPath *create_sort_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- List *pathkeys,
- double limit_tuples);
+ RelOptInfo *rel,
+ Path *subpath,
+ List *pathkeys,
+ double limit_tuples);
extern GroupPath *create_group_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- List *groupClause,
- List *qual,
- double numGroups);
+ RelOptInfo *rel,
+ Path *subpath,
+ List *groupClause,
+ List *qual,
+ double numGroups);
extern UpperUniquePath *create_upper_unique_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- int numCols,
- double numGroups);
+ RelOptInfo *rel,
+ Path *subpath,
+ int numCols,
+ double numGroups);
extern AggPath *create_agg_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- PathTarget *target,
- AggStrategy aggstrategy,
- AggSplit aggsplit,
- List *groupClause,
- List *qual,
- const AggClauseCosts *aggcosts,
- double numGroups);
+ RelOptInfo *rel,
+ Path *subpath,
+ PathTarget *target,
+ AggStrategy aggstrategy,
+ AggSplit aggsplit,
+ List *groupClause,
+ List *qual,
+ const AggClauseCosts *aggcosts,
+ double numGroups);
extern GroupingSetsPath *create_groupingsets_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- List *having_qual,
- AggStrategy aggstrategy,
- List *rollups,
- const AggClauseCosts *agg_costs,
- double numGroups);
+ RelOptInfo *rel,
+ Path *subpath,
+ List *having_qual,
+ AggStrategy aggstrategy,
+ List *rollups,
+ const AggClauseCosts *agg_costs,
+ double numGroups);
extern MinMaxAggPath *create_minmaxagg_path(PlannerInfo *root,
- RelOptInfo *rel,
- PathTarget *target,
- List *mmaggregates,
- List *quals);
+ RelOptInfo *rel,
+ PathTarget *target,
+ List *mmaggregates,
+ List *quals);
extern WindowAggPath *create_windowagg_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- PathTarget *target,
- List *windowFuncs,
- WindowClause *winclause);
+ RelOptInfo *rel,
+ Path *subpath,
+ PathTarget *target,
+ List *windowFuncs,
+ WindowClause *winclause);
extern SetOpPath *create_setop_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *subpath,
- SetOpCmd cmd,
- SetOpStrategy strategy,
- List *distinctList,
- AttrNumber flagColIdx,
- int firstFlag,
- double numGroups,
- double outputRows);
+ RelOptInfo *rel,
+ Path *subpath,
+ SetOpCmd cmd,
+ SetOpStrategy strategy,
+ List *distinctList,
+ AttrNumber flagColIdx,
+ int firstFlag,
+ double numGroups,
+ double outputRows);
extern RecursiveUnionPath *create_recursiveunion_path(PlannerInfo *root,
- RelOptInfo *rel,
- Path *leftpath,
- Path *rightpath,
- PathTarget *target,
- List *distinctList,
- int wtParam,
- double numGroups);
+ RelOptInfo *rel,
+ Path *leftpath,
+ Path *rightpath,
+ PathTarget *target,
+ List *distinctList,
+ int wtParam,
+ double numGroups);
extern LockRowsPath *create_lockrows_path(PlannerInfo *root, RelOptInfo *rel,
- Path *subpath, List *rowMarks, int epqParam);
+ Path *subpath, List *rowMarks, int epqParam);
extern ModifyTablePath *create_modifytable_path(PlannerInfo *root,
- RelOptInfo *rel,
- CmdType operation, bool canSetTag,
- Index nominalRelation, Index rootRelation,
- bool partColsUpdated,
- List *resultRelations, List *subpaths,
- List *subroots,
- List *withCheckOptionLists, List *returningLists,
- List *rowMarks, OnConflictExpr *onconflict,
- int epqParam);
+ RelOptInfo *rel,
+ CmdType operation, bool canSetTag,
+ Index nominalRelation, Index rootRelation,
+ bool partColsUpdated,
+ List *resultRelations, List *subpaths,
+ List *subroots,
+ List *withCheckOptionLists, List *returningLists,
+ List *rowMarks, OnConflictExpr *onconflict,
+ int epqParam);
extern LimitPath *create_limit_path(PlannerInfo *root, RelOptInfo *rel,
- Path *subpath,
- Node *limitOffset, Node *limitCount,
- int64 offset_est, int64 count_est);
+ Path *subpath,
+ Node *limitOffset, Node *limitCount,
+ int64 offset_est, int64 count_est);
extern void adjust_limit_rows_costs(double *rows,
- Cost *startup_cost, Cost *total_cost,
- int64 offset_est, int64 count_est);
+ Cost *startup_cost, Cost *total_cost,
+ int64 offset_est, int64 count_est);
extern Path *reparameterize_path(PlannerInfo *root, Path *path,
- Relids required_outer,
- double loop_count);
+ Relids required_outer,
+ double loop_count);
extern Path *reparameterize_path_by_child(PlannerInfo *root, Path *path,
- RelOptInfo *child_rel);
+ RelOptInfo *child_rel);
/*
* prototypes for relnode.c
@@ -282,39 +282,39 @@ extern void setup_simple_rel_arrays(PlannerInfo *root);
extern void setup_append_rel_array(PlannerInfo *root);
extern void expand_planner_arrays(PlannerInfo *root, int add_size);
extern RelOptInfo *build_simple_rel(PlannerInfo *root, int relid,
- RelOptInfo *parent);
+ RelOptInfo *parent);
extern RelOptInfo *find_base_rel(PlannerInfo *root, int relid);
extern RelOptInfo *find_join_rel(PlannerInfo *root, Relids relids);
extern RelOptInfo *build_join_rel(PlannerInfo *root,
- Relids joinrelids,
- RelOptInfo *outer_rel,
- RelOptInfo *inner_rel,
- SpecialJoinInfo *sjinfo,
- List **restrictlist_ptr);
+ Relids joinrelids,
+ RelOptInfo *outer_rel,
+ RelOptInfo *inner_rel,
+ SpecialJoinInfo *sjinfo,
+ List **restrictlist_ptr);
extern Relids min_join_parameterization(PlannerInfo *root,
- Relids joinrelids,
- RelOptInfo *outer_rel,
- RelOptInfo *inner_rel);
+ Relids joinrelids,
+ RelOptInfo *outer_rel,
+ RelOptInfo *inner_rel);
extern RelOptInfo *fetch_upper_rel(PlannerInfo *root, UpperRelationKind kind,
- Relids relids);
+ Relids relids);
extern Relids find_childrel_parents(PlannerInfo *root, RelOptInfo *rel);
extern ParamPathInfo *get_baserel_parampathinfo(PlannerInfo *root,
- RelOptInfo *baserel,
- Relids required_outer);
+ RelOptInfo *baserel,
+ Relids required_outer);
extern ParamPathInfo *get_joinrel_parampathinfo(PlannerInfo *root,
- RelOptInfo *joinrel,
- Path *outer_path,
- Path *inner_path,
- SpecialJoinInfo *sjinfo,
- Relids required_outer,
- List **restrict_clauses);
+ RelOptInfo *joinrel,
+ Path *outer_path,
+ Path *inner_path,
+ SpecialJoinInfo *sjinfo,
+ Relids required_outer,
+ List **restrict_clauses);
extern ParamPathInfo *get_appendrel_parampathinfo(RelOptInfo *appendrel,
- Relids required_outer);
+ Relids required_outer);
extern ParamPathInfo *find_param_path_info(RelOptInfo *rel,
- Relids required_outer);
+ Relids required_outer);
extern RelOptInfo *build_child_join_rel(PlannerInfo *root,
- RelOptInfo *outer_rel, RelOptInfo *inner_rel,
- RelOptInfo *parent_joinrel, List *restrictlist,
- SpecialJoinInfo *sjinfo, JoinType jointype);
+ RelOptInfo *outer_rel, RelOptInfo *inner_rel,
+ RelOptInfo *parent_joinrel, List *restrictlist,
+ SpecialJoinInfo *sjinfo, JoinType jointype);
#endif /* PATHNODE_H */