aboutsummaryrefslogtreecommitdiff
path: root/src/include/optimizer/paths.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/optimizer/paths.h')
-rw-r--r--src/include/optimizer/paths.h164
1 files changed, 82 insertions, 82 deletions
diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h
index 0e858097c87..7345137d1da 100644
--- a/src/include/optimizer/paths.h
+++ b/src/include/optimizer/paths.h
@@ -50,16 +50,16 @@ extern PGDLLIMPORT join_search_hook_type join_search_hook;
extern RelOptInfo *make_one_rel(PlannerInfo *root, List *joinlist);
extern RelOptInfo *standard_join_search(PlannerInfo *root, int levels_needed,
- List *initial_rels);
+ List *initial_rels);
extern void generate_gather_paths(PlannerInfo *root, RelOptInfo *rel,
- bool override_rows);
-extern int compute_parallel_worker(RelOptInfo *rel, double heap_pages,
- double index_pages, int max_workers);
+ bool override_rows);
+extern int compute_parallel_worker(RelOptInfo *rel, double heap_pages,
+ double index_pages, int max_workers);
extern void create_partial_bitmap_paths(PlannerInfo *root, RelOptInfo *rel,
- Path *bitmapqual);
+ Path *bitmapqual);
extern void generate_partitionwise_join_paths(PlannerInfo *root,
- RelOptInfo *rel);
+ RelOptInfo *rel);
#ifdef OPTIMIZER_DEBUG
extern void debug_print_rel(PlannerInfo *root, RelOptInfo *rel);
@@ -71,12 +71,12 @@ extern void debug_print_rel(PlannerInfo *root, RelOptInfo *rel);
*/
extern void create_index_paths(PlannerInfo *root, RelOptInfo *rel);
extern bool relation_has_unique_index_for(PlannerInfo *root, RelOptInfo *rel,
- List *restrictlist,
- List *exprlist, List *oprlist);
+ List *restrictlist,
+ List *exprlist, List *oprlist);
extern bool indexcol_is_bool_constant_for_query(IndexOptInfo *index,
- int indexcol);
+ int indexcol);
extern bool match_index_to_operand(Node *operand, int indexcol,
- IndexOptInfo *index);
+ IndexOptInfo *index);
extern void check_index_predicates(PlannerInfo *root, RelOptInfo *rel);
/*
@@ -90,9 +90,9 @@ extern void create_tidscan_paths(PlannerInfo *root, RelOptInfo *rel);
* routines to create join paths
*/
extern void add_paths_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel,
- RelOptInfo *outerrel, RelOptInfo *innerrel,
- JoinType jointype, SpecialJoinInfo *sjinfo,
- List *restrictlist);
+ RelOptInfo *outerrel, RelOptInfo *innerrel,
+ JoinType jointype, SpecialJoinInfo *sjinfo,
+ List *restrictlist);
/*
* joinrels.c
@@ -100,15 +100,15 @@ extern void add_paths_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel,
*/
extern void join_search_one_level(PlannerInfo *root, int level);
extern RelOptInfo *make_join_rel(PlannerInfo *root,
- RelOptInfo *rel1, RelOptInfo *rel2);
+ RelOptInfo *rel1, RelOptInfo *rel2);
extern bool have_join_order_restriction(PlannerInfo *root,
- RelOptInfo *rel1, RelOptInfo *rel2);
+ RelOptInfo *rel1, RelOptInfo *rel2);
extern bool have_dangerous_phv(PlannerInfo *root,
- Relids outer_relids, Relids inner_params);
+ Relids outer_relids, Relids inner_params);
extern void mark_dummy_rel(RelOptInfo *rel);
extern bool have_partkey_equi_join(RelOptInfo *joinrel,
- RelOptInfo *rel1, RelOptInfo *rel2,
- JoinType jointype, List *restrictlist);
+ RelOptInfo *rel1, RelOptInfo *rel2,
+ JoinType jointype, List *restrictlist);
/*
* equivclass.c
@@ -121,53 +121,53 @@ typedef bool (*ec_matches_callback_type) (PlannerInfo *root,
void *arg);
extern bool process_equivalence(PlannerInfo *root,
- RestrictInfo **p_restrictinfo,
- bool below_outer_join);
+ RestrictInfo **p_restrictinfo,
+ bool below_outer_join);
extern Expr *canonicalize_ec_expression(Expr *expr,
- Oid req_type, Oid req_collation);
+ Oid req_type, Oid req_collation);
extern void reconsider_outer_join_clauses(PlannerInfo *root);
extern EquivalenceClass *get_eclass_for_sort_expr(PlannerInfo *root,
- Expr *expr,
- Relids nullable_relids,
- List *opfamilies,
- Oid opcintype,
- Oid collation,
- Index sortref,
- Relids rel,
- bool create_it);
+ Expr *expr,
+ Relids nullable_relids,
+ List *opfamilies,
+ Oid opcintype,
+ Oid collation,
+ Index sortref,
+ Relids rel,
+ bool create_it);
extern void generate_base_implied_equalities(PlannerInfo *root);
extern List *generate_join_implied_equalities(PlannerInfo *root,
- Relids join_relids,
- Relids outer_relids,
- RelOptInfo *inner_rel);
+ Relids join_relids,
+ Relids outer_relids,
+ RelOptInfo *inner_rel);
extern List *generate_join_implied_equalities_for_ecs(PlannerInfo *root,
- List *eclasses,
- Relids join_relids,
- Relids outer_relids,
- RelOptInfo *inner_rel);
+ List *eclasses,
+ Relids join_relids,
+ Relids outer_relids,
+ RelOptInfo *inner_rel);
extern bool exprs_known_equal(PlannerInfo *root, Node *item1, Node *item2);
extern EquivalenceClass *match_eclasses_to_foreign_key_col(PlannerInfo *root,
- ForeignKeyOptInfo *fkinfo,
- int colno);
+ ForeignKeyOptInfo *fkinfo,
+ int colno);
extern void add_child_rel_equivalences(PlannerInfo *root,
- AppendRelInfo *appinfo,
- RelOptInfo *parent_rel,
- RelOptInfo *child_rel);
+ AppendRelInfo *appinfo,
+ RelOptInfo *parent_rel,
+ RelOptInfo *child_rel);
extern List *generate_implied_equalities_for_column(PlannerInfo *root,
- RelOptInfo *rel,
- ec_matches_callback_type callback,
- void *callback_arg,
- Relids prohibited_rels);
+ RelOptInfo *rel,
+ ec_matches_callback_type callback,
+ void *callback_arg,
+ Relids prohibited_rels);
extern bool have_relevant_eclass_joinclause(PlannerInfo *root,
- RelOptInfo *rel1, RelOptInfo *rel2);
+ RelOptInfo *rel1, RelOptInfo *rel2);
extern bool has_relevant_eclass_joinclause(PlannerInfo *root,
- RelOptInfo *rel1);
+ RelOptInfo *rel1);
extern bool eclass_useful_for_merging(PlannerInfo *root,
- EquivalenceClass *eclass,
- RelOptInfo *rel);
+ EquivalenceClass *eclass,
+ RelOptInfo *rel);
extern bool is_redundant_derived_clause(RestrictInfo *rinfo, List *clauselist);
extern bool is_redundant_with_indexclauses(RestrictInfo *rinfo,
- List *indexclauses);
+ List *indexclauses);
/*
* pathkeys.c
@@ -184,55 +184,55 @@ typedef enum
extern PathKeysComparison compare_pathkeys(List *keys1, List *keys2);
extern bool pathkeys_contained_in(List *keys1, List *keys2);
extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys,
- Relids required_outer,
- CostSelector cost_criterion,
- bool require_parallel_safe);
+ Relids required_outer,
+ CostSelector cost_criterion,
+ bool require_parallel_safe);
extern Path *get_cheapest_fractional_path_for_pathkeys(List *paths,
- List *pathkeys,
- Relids required_outer,
- double fraction);
+ List *pathkeys,
+ Relids required_outer,
+ double fraction);
extern Path *get_cheapest_parallel_safe_total_inner(List *paths);
extern List *build_index_pathkeys(PlannerInfo *root, IndexOptInfo *index,
- ScanDirection scandir);
+ ScanDirection scandir);
extern List *build_partition_pathkeys(PlannerInfo *root, RelOptInfo *partrel,
- ScanDirection scandir, bool *partialkeys);
+ ScanDirection scandir, bool *partialkeys);
extern List *build_expression_pathkey(PlannerInfo *root, Expr *expr,
- Relids nullable_relids, Oid opno,
- Relids rel, bool create_it);
+ Relids nullable_relids, Oid opno,
+ Relids rel, bool create_it);
extern List *convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
- List *subquery_pathkeys,
- List *subquery_tlist);
+ List *subquery_pathkeys,
+ List *subquery_tlist);
extern List *build_join_pathkeys(PlannerInfo *root,
- RelOptInfo *joinrel,
- JoinType jointype,
- List *outer_pathkeys);
+ RelOptInfo *joinrel,
+ JoinType jointype,
+ List *outer_pathkeys);
extern List *make_pathkeys_for_sortclauses(PlannerInfo *root,
- List *sortclauses,
- List *tlist);
+ List *sortclauses,
+ List *tlist);
extern void initialize_mergeclause_eclasses(PlannerInfo *root,
- RestrictInfo *restrictinfo);
+ RestrictInfo *restrictinfo);
extern void update_mergeclause_eclasses(PlannerInfo *root,
- RestrictInfo *restrictinfo);
+ RestrictInfo *restrictinfo);
extern List *find_mergeclauses_for_outer_pathkeys(PlannerInfo *root,
- List *pathkeys,
- List *restrictinfos);
+ List *pathkeys,
+ List *restrictinfos);
extern List *select_outer_pathkeys_for_merge(PlannerInfo *root,
- List *mergeclauses,
- RelOptInfo *joinrel);
+ List *mergeclauses,
+ RelOptInfo *joinrel);
extern List *make_inner_pathkeys_for_merge(PlannerInfo *root,
- List *mergeclauses,
- List *outer_pathkeys);
+ List *mergeclauses,
+ List *outer_pathkeys);
extern List *trim_mergeclauses_for_inner_pathkeys(PlannerInfo *root,
- List *mergeclauses,
- List *pathkeys);
+ List *mergeclauses,
+ List *pathkeys);
extern List *truncate_useless_pathkeys(PlannerInfo *root,
- RelOptInfo *rel,
- List *pathkeys);
+ RelOptInfo *rel,
+ List *pathkeys);
extern bool has_useful_pathkeys(PlannerInfo *root, RelOptInfo *rel);
extern PathKey *make_canonical_pathkey(PlannerInfo *root,
- EquivalenceClass *eclass, Oid opfamily,
- int strategy, bool nulls_first);
+ EquivalenceClass *eclass, Oid opfamily,
+ int strategy, bool nulls_first);
extern void add_paths_to_append_rel(PlannerInfo *root, RelOptInfo *rel,
- List *live_childrels);
+ List *live_childrels);
#endif /* PATHS_H */