PostgreSQL Source Code
git master
|
Go to the source code of this file.
void add_partial_path | ( | RelOptInfo * | parent_rel, |
Path * | new_path | ||
) |
Definition at line 749 of file pathnode.c.
References Assert(), CHECK_FOR_INTERRUPTS, compare_pathkeys(), RelOptInfo::consider_parallel, foreach_current_index, foreach_delete_current, lfirst, list_insert_nth(), Path::parallel_safe, RelOptInfo::partial_pathlist, Path::pathkeys, PATHKEYS_BETTER1, PATHKEYS_BETTER2, PATHKEYS_DIFFERENT, pfree(), STD_FUZZ_FACTOR, and Path::total_cost.
Referenced by add_paths_to_append_rel(), build_index_paths(), create_partial_bitmap_paths(), create_partial_distinct_paths(), create_partial_grouping_paths(), create_plain_partial_paths(), grouping_planner(), recurse_set_operations(), set_subquery_pathlist(), try_partial_hashjoin_path(), try_partial_mergejoin_path(), and try_partial_nestloop_path().
bool add_partial_path_precheck | ( | RelOptInfo * | parent_rel, |
Cost | total_cost, | ||
List * | pathkeys | ||
) |
Definition at line 867 of file pathnode.c.
References add_path_precheck(), compare_pathkeys(), lfirst, RelOptInfo::partial_pathlist, Path::pathkeys, PATHKEYS_BETTER1, PATHKEYS_BETTER2, PATHKEYS_DIFFERENT, STD_FUZZ_FACTOR, and Path::total_cost.
Referenced by try_partial_hashjoin_path(), try_partial_mergejoin_path(), and try_partial_nestloop_path().
void add_path | ( | RelOptInfo * | parent_rel, |
Path * | new_path | ||
) |
Definition at line 422 of file pathnode.c.
References BMS_EQUAL, BMS_SUBSET1, BMS_SUBSET2, bms_subset_compare(), CHECK_FOR_INTERRUPTS, compare_path_costs_fuzzily(), compare_pathkeys(), COSTS_BETTER1, COSTS_BETTER2, COSTS_DIFFERENT, COSTS_EQUAL, foreach_current_index, foreach_delete_current, IsA, lfirst, list_insert_nth(), NIL, Path::parallel_safe, PATH_REQ_OUTER, Path::pathkeys, PATHKEYS_BETTER1, PATHKEYS_BETTER2, PATHKEYS_DIFFERENT, RelOptInfo::pathlist, pfree(), Path::rows, STD_FUZZ_FACTOR, and Path::total_cost.
Referenced by add_foreign_final_paths(), add_foreign_grouping_paths(), add_foreign_ordered_paths(), add_paths_to_append_rel(), add_paths_to_grouping_rel(), add_paths_with_pathkeys_for_rel(), BuildParameterizedTidPaths(), consider_groupingsets_paths(), create_degenerate_grouping_paths(), create_final_distinct_paths(), create_index_paths(), create_one_window_path(), create_ordered_paths(), create_partial_grouping_paths(), create_tidscan_paths(), fileGetForeignPaths(), gather_grouping_paths(), generate_gather_paths(), generate_nonunion_paths(), generate_orderedappend_paths(), generate_recursion_path(), generate_union_paths(), generate_useful_gather_paths(), get_index_paths(), grouping_planner(), mark_dummy_rel(), postgresGetForeignJoinPaths(), postgresGetForeignPaths(), preprocess_minmax_aggregates(), query_planner(), recurse_set_operations(), set_cte_pathlist(), set_dummy_rel_pathlist(), set_function_pathlist(), set_namedtuplestore_pathlist(), set_plain_rel_pathlist(), set_result_pathlist(), set_subquery_pathlist(), set_tablefunc_pathlist(), set_tablesample_rel_pathlist(), set_values_pathlist(), set_worktable_pathlist(), try_hashjoin_path(), try_mergejoin_path(), and try_nestloop_path().
bool add_path_precheck | ( | RelOptInfo * | parent_rel, |
Cost | startup_cost, | ||
Cost | total_cost, | ||
List * | pathkeys, | ||
Relids | required_outer | ||
) |
Definition at line 644 of file pathnode.c.
References bms_equal(), compare_pathkeys(), RelOptInfo::consider_param_startup, RelOptInfo::consider_startup, lfirst, NIL, PATH_REQ_OUTER, Path::pathkeys, PATHKEYS_BETTER2, PATHKEYS_EQUAL, RelOptInfo::pathlist, Path::startup_cost, STD_FUZZ_FACTOR, and Path::total_cost.
Referenced by add_partial_path_precheck(), try_hashjoin_path(), try_mergejoin_path(), and try_nestloop_path().
void adjust_limit_rows_costs | ( | double * | rows, |
Cost * | startup_cost, | ||
Cost * | total_cost, | ||
int64 | offset_est, | ||
int64 | count_est | ||
) |
Definition at line 3834 of file pathnode.c.
References clamp_row_est().
Referenced by create_limit_path(), and estimate_path_cost_size().
Path* apply_projection_to_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | path, | ||
PathTarget * | target | ||
) |
Definition at line 2752 of file pathnode.c.
References PathTarget::cost, create_projection_path(), PathTarget::exprs, if(), is_parallel_safe(), is_projection_capable_path(), IsA, Path::parallel_safe, QualCost::per_tuple, Path::rows, QualCost::startup, Path::startup_cost, GatherPath::subpath, GatherMergePath::subpath, and Path::total_cost.
Referenced by adjust_paths_for_srfs(), build_minmax_path(), create_ordered_paths(), and recurse_set_operations().
RelOptInfo* build_child_join_rel | ( | PlannerInfo * | root, |
RelOptInfo * | outer_rel, | ||
RelOptInfo * | inner_rel, | ||
RelOptInfo * | parent_joinrel, | ||
List * | restrictlist, | ||
SpecialJoinInfo * | sjinfo | ||
) |
Definition at line 858 of file relnode.c.
References add_child_join_rel_equivalences(), add_join_rel(), adjust_appendrel_attrs(), adjust_child_relids(), RelOptInfo::all_partrels, RelOptInfo::allvisfrac, RelOptInfo::amflags, Assert(), RelOptInfo::baserestrictcost, RelOptInfo::baserestrictinfo, bms_copy(), bms_union(), build_child_join_reltarget(), build_joinrel_partition_info(), RelOptInfo::cheapest_parameterized_paths, RelOptInfo::cheapest_startup_path, RelOptInfo::cheapest_total_path, RelOptInfo::cheapest_unique_path, RelOptInfo::consider_parallel, RelOptInfo::consider_param_startup, RelOptInfo::consider_partitionwise_join, RelOptInfo::consider_startup, create_empty_pathtarget(), RelOptInfo::direct_lateral_relids, RelOptInfo::eclass_indexes, find_appinfos_by_relids(), find_join_rel(), RelOptInfo::has_eclass_joins, has_useful_pathkeys(), RelOptInfo::indexlist, InvalidOid, IS_OTHER_REL, RelOptInfo::joininfo, RelOptInfo::lateral_referencers, RelOptInfo::lateral_relids, RelOptInfo::lateral_vars, RelOptInfo::live_parts, makeNode, RelOptInfo::max_attr, RelOptInfo::min_attr, NIL, RelOptInfo::nparts, RelOptInfo::nulling_relids, RelOptInfo::pages, RelOptInfo::partbounds_merged, RelOptInfo::partial_pathlist, RelOptInfo::partition_qual, RelOptInfo::pathlist, QualCost::per_tuple, pfree(), RelOptInfo::ppilist, RelOptInfo::relid, RelOptInfo::relids, RELOPT_OTHER_JOINREL, RelOptInfo::reloptkind, RelOptInfo::reltarget, RelOptInfo::rows, RTE_JOIN, RelOptInfo::rtekind, RelOptInfo::serverid, set_foreign_rel_properties(), set_joinrel_size_estimates(), QualCost::startup, RelOptInfo::subplan_params, RelOptInfo::subroot, RelOptInfo::top_parent_relids, PlannerInfo::tuple_fraction, RelOptInfo::tuples, RelOptInfo::userid, and RelOptInfo::useridiscurrent.
Referenced by try_partitionwise_join().
RelOptInfo* build_join_rel | ( | PlannerInfo * | root, |
Relids | joinrelids, | ||
RelOptInfo * | outer_rel, | ||
RelOptInfo * | inner_rel, | ||
SpecialJoinInfo * | sjinfo, | ||
List * | pushed_down_joins, | ||
List ** | restrictlist_ptr | ||
) |
Definition at line 643 of file relnode.c.
References add_join_rel(), add_placeholders_to_joinrel(), RelOptInfo::all_partrels, RelOptInfo::allvisfrac, RelOptInfo::amflags, Assert(), RelOptInfo::baserestrict_min_security, RelOptInfo::baserestrictcost, RelOptInfo::baserestrictinfo, bms_copy(), bms_del_members(), bms_num_members(), bms_union(), build_joinrel_joinlist(), build_joinrel_partition_info(), build_joinrel_restrictlist(), build_joinrel_tlist(), RelOptInfo::cheapest_parameterized_paths, RelOptInfo::cheapest_startup_path, RelOptInfo::cheapest_total_path, RelOptInfo::cheapest_unique_path, RelOptInfo::consider_parallel, RelOptInfo::consider_param_startup, RelOptInfo::consider_partitionwise_join, RelOptInfo::consider_startup, create_empty_pathtarget(), RelOptInfo::direct_lateral_relids, RelOptInfo::eclass_indexes, PathTarget::exprs, find_join_rel(), RelOptInfo::has_eclass_joins, has_relevant_eclass_joinclause(), RelOptInfo::indexlist, InvalidOid, IS_OTHER_REL, is_parallel_safe(), PlannerInfo::join_cur_level, JOIN_FULL, JOIN_INNER, RelOptInfo::joininfo, SpecialJoinInfo::jointype, lappend(), RelOptInfo::lateral_referencers, RelOptInfo::lateral_relids, RelOptInfo::lateral_vars, RelOptInfo::live_parts, makeNode, RelOptInfo::max_attr, RelOptInfo::min_attr, min_join_parameterization(), NIL, RelOptInfo::non_unique_for_rels, RelOptInfo::nparts, RelOptInfo::nulling_relids, RelOptInfo::pages, RelOptInfo::partbounds_merged, RelOptInfo::partial_pathlist, RelOptInfo::partition_qual, RelOptInfo::pathlist, QualCost::per_tuple, RelOptInfo::ppilist, RelOptInfo::rel_parallel_workers, RelOptInfo::relid, RelOptInfo::relids, RELOPT_JOINREL, RelOptInfo::reloptkind, RelOptInfo::reltarget, RelOptInfo::rows, RTE_JOIN, RelOptInfo::rtekind, RelOptInfo::serverid, set_foreign_rel_properties(), set_joinrel_size_estimates(), QualCost::startup, RelOptInfo::statlist, RelOptInfo::subplan_params, RelOptInfo::subroot, RelOptInfo::top_parent_relids, PlannerInfo::tuple_fraction, RelOptInfo::tuples, RelOptInfo::unique_for_rels, RelOptInfo::userid, and RelOptInfo::useridiscurrent.
Referenced by make_join_rel().
RelOptInfo* build_simple_rel | ( | PlannerInfo * | root, |
int | relid, | ||
RelOptInfo * | parent | ||
) |
Definition at line 191 of file relnode.c.
References RelOptInfo::all_partrels, RelOptInfo::allvisfrac, RelOptInfo::amflags, apply_child_basequals(), Assert(), RelOptInfo::baserestrict_min_security, RelOptInfo::baserestrictcost, RelOptInfo::baserestrictinfo, bms_make_singleton(), RelOptInfo::cheapest_parameterized_paths, RelOptInfo::cheapest_startup_path, RelOptInfo::cheapest_total_path, RelOptInfo::cheapest_unique_path, RTEPermissionInfo::checkAsUser, Alias::colnames, RelOptInfo::consider_parallel, RelOptInfo::consider_param_startup, RelOptInfo::consider_partitionwise_join, RelOptInfo::consider_startup, create_empty_pathtarget(), RelOptInfo::direct_lateral_relids, RelOptInfo::eclass_indexes, elog(), RangeTblEntry::eref, ERROR, get_relation_info(), getRTEPermissionInfo(), RelOptInfo::has_eclass_joins, RelOptInfo::indexlist, RangeTblEntry::inh, InvalidOid, RelOptInfo::joininfo, RelOptInfo::lateral_referencers, RelOptInfo::lateral_relids, RelOptInfo::lateral_vars, list_length(), RelOptInfo::live_parts, makeNode, mark_dummy_rel(), RelOptInfo::max_attr, RelOptInfo::min_attr, NIL, RelOptInfo::non_unique_for_rels, RelOptInfo::nparts, RelOptInfo::nulling_relids, RelOptInfo::pages, palloc0(), PlannerInfo::parse, RelOptInfo::partbounds_merged, RelOptInfo::partial_pathlist, RelOptInfo::partition_qual, RelOptInfo::pathlist, QualCost::per_tuple, RelOptInfo::ppilist, RelOptInfo::rel_parallel_workers, RangeTblEntry::relid, RelOptInfo::relid, RelOptInfo::relids, RELOPT_BASEREL, RELOPT_OTHER_MEMBER_REL, RelOptInfo::reloptkind, RelOptInfo::reltarget, RelOptInfo::rows, RTE_CTE, RTE_FUNCTION, RTE_NAMEDTUPLESTORE, RTE_RELATION, RTE_RESULT, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, RangeTblEntry::rtekind, RelOptInfo::rtekind, RelOptInfo::serverid, QualCost::startup, RelOptInfo::statlist, RelOptInfo::subplan_params, RelOptInfo::subroot, RelOptInfo::top_parent_relids, PlannerInfo::tuple_fraction, RelOptInfo::tuples, RelOptInfo::unique_for_rels, RelOptInfo::userid, and RelOptInfo::useridiscurrent.
Referenced by add_base_rels_to_query(), expand_appendrel_subquery(), expand_inherited_rtentry(), expand_partitioned_rtentry(), plan_cluster_use_sort(), plan_create_index_workers(), query_planner(), and recurse_set_operations().
Relids calc_nestloop_required_outer | ( | Relids | outerrelids, |
Relids | outer_paramrels, | ||
Relids | innerrelids, | ||
Relids | inner_paramrels | ||
) |
Definition at line 2366 of file pathnode.c.
References Assert(), bms_copy(), bms_del_members(), bms_overlap(), and bms_union().
Referenced by try_nestloop_path().
Definition at line 2393 of file pathnode.c.
References Assert(), bms_overlap(), bms_union(), and PATH_REQ_OUTER.
Referenced by try_hashjoin_path(), and try_mergejoin_path().
Definition at line 117 of file pathnode.c.
References compare_path_costs(), Path::startup_cost, TOTAL_COST, and Path::total_cost.
Referenced by choose_hashed_setop(), get_cheapest_fractional_path(), and get_cheapest_fractional_path_for_pathkeys().
int compare_path_costs | ( | Path * | path1, |
Path * | path2, | ||
CostSelector | criterion | ||
) |
Definition at line 71 of file pathnode.c.
References STARTUP_COST, Path::startup_cost, and Path::total_cost.
Referenced by append_startup_cost_compare(), append_total_cost_compare(), compare_fractional_path_costs(), generate_mergejoin_paths(), get_cheapest_parameterized_child_path(), get_cheapest_path_for_pathkeys(), and set_cheapest().
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 | ||
) |
Definition at line 3114 of file pathnode.c.
References AGG_SORTED, AggPath::aggsplit, AggPath::aggstrategy, RelOptInfo::consider_parallel, PathTarget::cost, cost_agg(), AggPath::groupClause, list_copy_head(), list_length(), makeNode, NIL, PlannerInfo::num_groupby_pathkeys, AggPath::numGroups, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, AggPath::path, Path::pathkeys, Path::pathtype, QualCost::per_tuple, AggPath::qual, Path::rows, QualCost::startup, Path::startup_cost, subpath(), AggPath::subpath, Path::total_cost, AggClauseCosts::transitionSpace, and AggPath::transitionSpace.
Referenced by add_paths_to_grouping_rel(), create_final_distinct_paths(), create_partial_distinct_paths(), create_partial_grouping_paths(), and make_union_unique().
AppendPath* create_append_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | subpaths, | ||
List * | partial_subpaths, | ||
List * | pathkeys, | ||
Relids | required_outer, | ||
int | parallel_workers, | ||
bool | parallel_aware, | ||
double | rows | ||
) |
Definition at line 1242 of file pathnode.c.
References PlannerInfo::all_query_rels, append_startup_cost_compare(), append_total_cost_compare(), Assert(), bms_equal(), RelOptInfo::consider_parallel, cost_append(), AppendPath::first_partial_path, get_appendrel_parampathinfo(), get_baserel_parampathinfo(), lfirst, PlannerInfo::limit_tuples, AppendPath::limit_tuples, linitial, list_concat(), list_length(), list_sort(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, AppendPath::path, PATH_REQ_OUTER, Path::pathkeys, Path::pathtype, RelOptInfo::relids, RELOPT_BASEREL, RelOptInfo::reloptkind, RelOptInfo::reltarget, Path::rows, Path::startup_cost, subpath(), AppendPath::subpaths, and Path::total_cost.
Referenced by add_paths_to_append_rel(), create_degenerate_grouping_paths(), generate_nonunion_paths(), generate_orderedappend_paths(), generate_union_paths(), mark_dummy_rel(), reparameterize_path(), and set_dummy_rel_pathlist().
BitmapAndPath* create_bitmap_and_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | bitmapquals | ||
) |
Definition at line 1077 of file pathnode.c.
References BitmapAndPath::bitmapquals, bms_add_members(), RelOptInfo::consider_parallel, cost_bitmap_and_node(), get_baserel_parampathinfo(), lfirst, makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, BitmapAndPath::path, PATH_REQ_OUTER, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by bitmap_and_cost_est(), and choose_bitmap_and().
BitmapHeapPath* create_bitmap_heap_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | bitmapqual, | ||
Relids | required_outer, | ||
double | loop_count, | ||
int | parallel_degree | ||
) |
Definition at line 1044 of file pathnode.c.
References BitmapHeapPath::bitmapqual, RelOptInfo::consider_parallel, cost_bitmap_heap_scan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, BitmapHeapPath::path, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by create_index_paths(), create_partial_bitmap_paths(), and reparameterize_path().
BitmapOrPath* create_bitmap_or_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | bitmapquals | ||
) |
Definition at line 1129 of file pathnode.c.
References BitmapOrPath::bitmapquals, bms_add_members(), RelOptInfo::consider_parallel, cost_bitmap_or_node(), get_baserel_parampathinfo(), lfirst, makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, BitmapOrPath::path, PATH_REQ_OUTER, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by generate_bitmap_or_paths().
Path* create_ctescan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer | ||
) |
Definition at line 2116 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_ctescan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by set_cte_pathlist().
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_restrictinfo, | ||
List * | fdw_private | ||
) |
Definition at line 2272 of file pathnode.c.
References bms_is_empty, RelOptInfo::consider_parallel, elog(), ERROR, ForeignPath::fdw_outerpath, ForeignPath::fdw_private, ForeignPath::fdw_restrictinfo, RelOptInfo::lateral_relids, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, ForeignPath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, Path::rows, Path::startup_cost, and Path::total_cost.
Referenced by add_paths_with_pathkeys_for_rel(), and postgresGetForeignJoinPaths().
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_restrictinfo, | ||
List * | fdw_private | ||
) |
Definition at line 2324 of file pathnode.c.
References Assert(), bms_is_empty, RelOptInfo::consider_parallel, ForeignPath::fdw_outerpath, ForeignPath::fdw_private, ForeignPath::fdw_restrictinfo, RelOptInfo::lateral_relids, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, ForeignPath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, Path::rows, Path::startup_cost, and Path::total_cost.
Referenced by add_foreign_final_paths(), add_foreign_grouping_paths(), and add_foreign_ordered_paths().
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_restrictinfo, | ||
List * | fdw_private | ||
) |
Definition at line 2226 of file pathnode.c.
References Assert(), RelOptInfo::consider_parallel, ForeignPath::fdw_outerpath, ForeignPath::fdw_private, ForeignPath::fdw_restrictinfo, get_baserel_parampathinfo(), IS_SIMPLE_REL, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, ForeignPath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, Path::rows, Path::startup_cost, and Path::total_cost.
Referenced by add_paths_with_pathkeys_for_rel(), fileGetForeignPaths(), and postgresGetForeignPaths().
Path* create_functionscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | pathkeys, | ||
Relids | required_outer | ||
) |
Definition at line 2038 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_functionscan(), get_baserel_parampathinfo(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by set_function_pathlist().
GatherMergePath* create_gather_merge_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
PathTarget * | target, | ||
List * | pathkeys, | ||
Relids | required_outer, | ||
double * | rows | ||
) |
Definition at line 1873 of file pathnode.c.
References Assert(), cost_gather_merge(), cost_sort(), get_baserel_parampathinfo(), makeNode, GatherMergePath::num_workers, Path::parallel_aware, GatherMergePath::path, Path::pathkeys, pathkeys_contained_in(), Path::pathtype, RelOptInfo::reltarget, Path::rows, Path::startup_cost, subpath(), GatherMergePath::subpath, Path::total_cost, and work_mem.
Referenced by create_ordered_paths(), gather_grouping_paths(), generate_gather_paths(), and generate_useful_gather_paths().
GatherPath* create_gather_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
PathTarget * | target, | ||
Relids | required_outer, | ||
double * | rows | ||
) |
Definition at line 1964 of file pathnode.c.
References Assert(), cost_gather(), get_baserel_parampathinfo(), makeNode, NIL, GatherPath::num_workers, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, GatherPath::path, Path::pathkeys, Path::pathtype, GatherPath::single_copy, subpath(), and GatherPath::subpath.
Referenced by generate_gather_paths(), and generate_union_paths().
GroupPath* create_group_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
List * | groupClause, | ||
List * | qual, | ||
double | numGroups | ||
) |
Definition at line 3003 of file pathnode.c.
References RelOptInfo::consider_parallel, PathTarget::cost, cost_group(), GroupPath::groupClause, list_length(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, GroupPath::path, Path::pathkeys, Path::pathtype, QualCost::per_tuple, GroupPath::qual, RelOptInfo::reltarget, Path::rows, QualCost::startup, Path::startup_cost, subpath(), GroupPath::subpath, and Path::total_cost.
Referenced by add_paths_to_grouping_rel(), and create_partial_grouping_paths().
GroupResultPath* create_group_result_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
PathTarget * | target, | ||
List * | havingqual | ||
) |
Definition at line 1516 of file pathnode.c.
References RelOptInfo::consider_parallel, PathTarget::cost, cost_qual_eval(), cpu_tuple_cost, makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, GroupResultPath::path, Path::pathkeys, Path::pathtype, QualCost::per_tuple, GroupResultPath::quals, Path::rows, QualCost::startup, Path::startup_cost, and Path::total_cost.
Referenced by create_degenerate_grouping_paths(), and query_planner().
GroupingSetsPath* create_groupingsets_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
List * | having_qual, | ||
AggStrategy | aggstrategy, | ||
List * | rollups, | ||
const AggClauseCosts * | agg_costs | ||
) |
Definition at line 3196 of file pathnode.c.
References AGG_HASHED, AGG_MIXED, AGG_PLAIN, AGG_SORTED, GroupingSetsPath::aggstrategy, Assert(), RelOptInfo::consider_parallel, PathTarget::cost, cost_agg(), cost_sort(), PlannerInfo::group_pathkeys, RollupData::gsets, RollupData::is_hashed, lfirst, linitial, list_length(), makeNode, NIL, RollupData::numGroups, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, GroupingSetsPath::path, Path::pathkeys, Path::pathtype, QualCost::per_tuple, GroupingSetsPath::qual, RelOptInfo::reltarget, GroupingSetsPath::rollups, Path::rows, QualCost::startup, Path::startup_cost, subpath(), GroupingSetsPath::subpath, Path::total_cost, AggClauseCosts::transitionSpace, GroupingSetsPath::transitionSpace, and work_mem.
Referenced by consider_groupingsets_paths().
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 | ||
) |
Definition at line 2578 of file pathnode.c.
References RelOptInfo::consider_parallel, final_cost_hashjoin(), get_joinrel_parampathinfo(), JoinPath::inner_unique, JoinPathExtraData::inner_unique, JoinPath::innerjoinpath, JoinPath::joinrestrictinfo, JoinPath::jointype, HashPath::jpath, makeNode, NIL, JoinPath::outerjoinpath, Path::parallel_safe, Path::parallel_workers, HashPath::path_hashclauses, RelOptInfo::reltarget, and JoinPathExtraData::sjinfo.
Referenced by try_hashjoin_path(), and try_partial_hashjoin_path().
IncrementalSortPath* create_incremental_sort_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
List * | pathkeys, | ||
int | presorted_keys, | ||
double | limit_tuples | ||
) |
Definition at line 2910 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_incremental_sort(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, SortPath::path, Path::pathkeys, Path::pathtype, sort(), subpath(), SortPath::subpath, and work_mem.
Referenced by add_paths_to_grouping_rel(), create_final_distinct_paths(), create_one_window_path(), create_ordered_paths(), create_partial_distinct_paths(), create_partial_grouping_paths(), gather_grouping_paths(), and generate_useful_gather_paths().
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 | ||
) |
Definition at line 995 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_index(), get_baserel_parampathinfo(), IndexPath::indexclauses, IndexPath::indexinfo, IndexPath::indexorderbycols, IndexPath::indexorderbys, IndexPath::indexscandir, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, IndexPath::path, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by build_index_paths(), and plan_cluster_use_sort().
LimitPath* create_limit_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
Node * | limitOffset, | ||
Node * | limitCount, | ||
LimitOption | limitOption, | ||
int64 | offset_est, | ||
int64 | count_est | ||
) |
Definition at line 3779 of file pathnode.c.
References adjust_limit_rows_costs(), RelOptInfo::consider_parallel, LimitPath::limitCount, LimitPath::limitOffset, LimitPath::limitOption, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, LimitPath::path, Path::pathkeys, Path::pathtype, Path::rows, Path::startup_cost, subpath(), LimitPath::subpath, and Path::total_cost.
Referenced by create_final_distinct_paths(), and grouping_planner().
LockRowsPath* create_lockrows_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
List * | rowMarks, | ||
int | epqParam | ||
) |
Definition at line 3618 of file pathnode.c.
References cpu_tuple_cost, LockRowsPath::epqParam, makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, LockRowsPath::path, Path::pathkeys, Path::pathtype, LockRowsPath::rowMarks, Path::rows, Path::startup_cost, subpath(), LockRowsPath::subpath, and Path::total_cost.
Referenced by grouping_planner().
MaterialPath* create_material_path | ( | RelOptInfo * | rel, |
Path * | subpath | ||
) |
Definition at line 1564 of file pathnode.c.
References Assert(), RelOptInfo::consider_parallel, cost_material(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, MaterialPath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, subpath(), and MaterialPath::subpath.
Referenced by match_unsorted_outer(), reparameterize_path(), and set_tablesample_rel_pathlist().
MemoizePath* create_memoize_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
List * | param_exprs, | ||
List * | hash_operators, | ||
bool | singlerow, | ||
bool | binary_mode, | ||
double | calls | ||
) |
Definition at line 1596 of file pathnode.c.
References Assert(), MemoizePath::binary_mode, MemoizePath::calls, RelOptInfo::consider_parallel, cpu_tuple_cost, MemoizePath::est_entries, MemoizePath::hash_operators, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, MemoizePath::param_exprs, MemoizePath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, Path::rows, MemoizePath::singlerow, Path::startup_cost, subpath(), MemoizePath::subpath, and Path::total_cost.
Referenced by get_memoize_path(), and reparameterize_path().
MergeAppendPath* create_merge_append_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | subpaths, | ||
List * | pathkeys, | ||
Relids | required_outer | ||
) |
Definition at line 1413 of file pathnode.c.
References PlannerInfo::all_query_rels, Assert(), bms_equal(), RelOptInfo::consider_parallel, cost_merge_append(), cost_sort(), get_appendrel_parampathinfo(), lfirst, PlannerInfo::limit_tuples, MergeAppendPath::limit_tuples, linitial, list_length(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, MergeAppendPath::path, PATH_REQ_OUTER, Path::pathkeys, pathkeys_contained_in(), Path::pathtype, RelOptInfo::relids, RelOptInfo::reltarget, Path::rows, Path::startup_cost, subpath(), MergeAppendPath::subpaths, Path::total_cost, and work_mem.
Referenced by generate_orderedappend_paths().
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 | ||
) |
Definition at line 2512 of file pathnode.c.
References RelOptInfo::consider_parallel, final_cost_mergejoin(), get_joinrel_parampathinfo(), JoinPath::inner_unique, JoinPathExtraData::inner_unique, JoinPath::innerjoinpath, MergePath::innersortkeys, JoinPath::joinrestrictinfo, JoinPath::jointype, MergePath::jpath, makeNode, JoinPath::outerjoinpath, MergePath::outersortkeys, Path::parallel_safe, Path::parallel_workers, MergePath::path_mergeclauses, RelOptInfo::reltarget, and JoinPathExtraData::sjinfo.
Referenced by try_mergejoin_path(), and try_partial_mergejoin_path().
MinMaxAggPath* create_minmaxagg_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
PathTarget * | target, | ||
List * | mmaggregates, | ||
List * | quals | ||
) |
Definition at line 3356 of file pathnode.c.
References PathTarget::cost, cost_qual_eval(), cpu_tuple_cost, PathTarget::exprs, is_parallel_safe(), lfirst, makeNode, MinMaxAggPath::mmaggregates, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, MinMaxAggPath::path, MinMaxAggInfo::path, MinMaxAggInfo::pathcost, Path::pathkeys, Path::pathtype, QualCost::per_tuple, MinMaxAggPath::quals, Path::rows, QualCost::startup, Path::startup_cost, and Path::total_cost.
Referenced by preprocess_minmax_aggregates().
ModifyTablePath* create_modifytable_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
CmdType | operation, | ||
bool | canSetTag, | ||
Index | nominalRelation, | ||
Index | rootRelation, | ||
bool | partColsUpdated, | ||
List * | resultRelations, | ||
List * | updateColnosLists, | ||
List * | withCheckOptionLists, | ||
List * | returningLists, | ||
List * | rowMarks, | ||
OnConflictExpr * | onconflict, | ||
List * | mergeActionLists, | ||
int | epqParam | ||
) |
Definition at line 3680 of file pathnode.c.
References Assert(), ModifyTablePath::canSetTag, CMD_MERGE, CMD_UPDATE, ModifyTablePath::epqParam, list_length(), makeNode, ModifyTablePath::mergeActionLists, NIL, ModifyTablePath::nominalRelation, ModifyTablePath::onconflict, ModifyTablePath::operation, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, ModifyTablePath::partColsUpdated, ModifyTablePath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, ModifyTablePath::resultRelations, ModifyTablePath::returningLists, ModifyTablePath::rootRelation, ModifyTablePath::rowMarks, Path::rows, Path::startup_cost, subpath(), ModifyTablePath::subpath, Path::total_cost, ModifyTablePath::updateColnosLists, and ModifyTablePath::withCheckOptionLists.
Referenced by grouping_planner().
Path* create_namedtuplestorescan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer | ||
) |
Definition at line 2141 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_namedtuplestorescan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by set_namedtuplestore_pathlist().
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 | ||
) |
Definition at line 2426 of file pathnode.c.
References bms_is_member(), bms_overlap(), RelOptInfo::consider_parallel, final_cost_nestloop(), get_joinrel_parampathinfo(), get_param_path_clause_serials(), JoinPath::inner_unique, JoinPathExtraData::inner_unique, JoinPath::innerjoinpath, JoinPath::joinrestrictinfo, JoinPath::jointype, NestPath::jpath, lappend(), lfirst, makeNode, NIL, JoinPath::outerjoinpath, Path::parallel_safe, Path::parallel_workers, PATH_REQ_OUTER, RelOptInfo::reltarget, RestrictInfo::rinfo_serial, and JoinPathExtraData::sjinfo.
Referenced by try_nestloop_path(), and try_partial_nestloop_path().
ProjectionPath* create_projection_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
PathTarget * | target | ||
) |
Definition at line 2644 of file pathnode.c.
References Assert(), RelOptInfo::consider_parallel, PathTarget::cost, cpu_tuple_cost, ProjectionPath::dummypp, equal(), PathTarget::exprs, is_parallel_safe(), is_projection_capable_path(), IsA, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, ProjectionPath::path, Path::pathkeys, Path::pathtype, QualCost::per_tuple, Path::rows, QualCost::startup, Path::startup_cost, subpath(), ProjectionPath::subpath, and Path::total_cost.
Referenced by add_paths_with_pathkeys_for_rel(), adjust_paths_for_srfs(), apply_projection_to_path(), apply_scanjoin_target_to_paths(), and recurse_set_operations().
RecursiveUnionPath* create_recursiveunion_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | leftpath, | ||
Path * | rightpath, | ||
PathTarget * | target, | ||
List * | distinctList, | ||
int | wtParam, | ||
double | numGroups | ||
) |
Definition at line 3573 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_recursive_union(), RecursiveUnionPath::distinctList, RecursiveUnionPath::leftpath, makeNode, NIL, RecursiveUnionPath::numGroups, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, RecursiveUnionPath::path, Path::pathkeys, Path::pathtype, RecursiveUnionPath::rightpath, and RecursiveUnionPath::wtParam.
Referenced by generate_recursion_path().
Path* create_resultscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer | ||
) |
Definition at line 2167 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_resultscan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by reparameterize_path(), and set_result_pathlist().
Path* create_samplescan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer | ||
) |
Definition at line 954 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_samplescan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by reparameterize_path(), and set_tablesample_rel_pathlist().
Path* create_seqscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer, | ||
int | parallel_workers | ||
) |
Definition at line 929 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_seqscan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by create_plain_partial_paths(), plan_cluster_use_sort(), reparameterize_path(), and set_plain_rel_pathlist().
ProjectSetPath* create_set_projection_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
PathTarget * | target | ||
) |
Definition at line 2841 of file pathnode.c.
References RelOptInfo::consider_parallel, PathTarget::cost, cpu_tuple_cost, expression_returns_set_rows(), PathTarget::exprs, is_parallel_safe(), lfirst, makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, ProjectSetPath::path, Path::pathkeys, Path::pathtype, QualCost::per_tuple, Path::rows, QualCost::startup, Path::startup_cost, subpath(), ProjectSetPath::subpath, and Path::total_cost.
Referenced by adjust_paths_for_srfs().
SetOpPath* create_setop_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
SetOpCmd | cmd, | ||
SetOpStrategy | strategy, | ||
List * | distinctList, | ||
AttrNumber | flagColIdx, | ||
int | firstFlag, | ||
double | numGroups, | ||
double | outputRows | ||
) |
Definition at line 3511 of file pathnode.c.
References SetOpPath::cmd, RelOptInfo::consider_parallel, cpu_operator_cost, SetOpPath::distinctList, SetOpPath::firstFlag, SetOpPath::flagColIdx, list_length(), makeNode, NIL, SetOpPath::numGroups, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, SetOpPath::path, Path::pathkeys, Path::pathtype, Path::rows, SETOP_SORTED, Path::startup_cost, SetOpPath::strategy, subpath(), SetOpPath::subpath, and Path::total_cost.
Referenced by generate_nonunion_paths().
SortPath* create_sort_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
List * | pathkeys, | ||
double | limit_tuples | ||
) |
Definition at line 2959 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_sort(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, SortPath::path, Path::pathkeys, Path::pathtype, subpath(), SortPath::subpath, and work_mem.
Referenced by add_paths_to_grouping_rel(), add_paths_with_pathkeys_for_rel(), create_final_distinct_paths(), create_one_window_path(), create_ordered_paths(), create_partial_distinct_paths(), create_partial_grouping_paths(), gather_grouping_paths(), generate_nonunion_paths(), generate_useful_gather_paths(), and make_union_unique().
SubqueryScanPath* create_subqueryscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
bool | trivial_pathtarget, | ||
List * | pathkeys, | ||
Relids | required_outer | ||
) |
Definition at line 2008 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_subqueryscan(), get_baserel_parampathinfo(), makeNode, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, SubqueryScanPath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, subpath(), and SubqueryScanPath::subpath.
Referenced by recurse_set_operations(), reparameterize_path(), and set_subquery_pathlist().
Path* create_tablefuncscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer | ||
) |
Definition at line 2064 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_tablefuncscan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by set_tablefunc_pathlist().
TidRangePath* create_tidrangescan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | tidrangequals, | ||
Relids | required_outer | ||
) |
Definition at line 1210 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_tidrangescan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, TidRangePath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, and TidRangePath::tidrangequals.
Referenced by create_tidscan_paths().
TidPath* create_tidscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
List * | tidquals, | ||
Relids | required_outer | ||
) |
Definition at line 1181 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_tidscan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, TidPath::path, Path::pathkeys, Path::pathtype, RelOptInfo::reltarget, and TidPath::tidquals.
Referenced by BuildParameterizedTidPaths(), and create_tidscan_paths().
UniquePath* create_unique_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
SpecialJoinInfo * | sjinfo | ||
) |
Definition at line 1652 of file pathnode.c.
References AGG_HASHED, Assert(), bms_equal(), RelOptInfo::cheapest_total_path, RelOptInfo::cheapest_unique_path, RelOptInfo::consider_parallel, cost_agg(), cost_sort(), cpu_operator_cost, estimate_num_groups(), get_hash_memory_limit(), GetMemoryChunkContext(), UniquePath::in_operators, JOIN_SEMI, SpecialJoinInfo::jointype, list_length(), makeNode, MemoryContextSwitchTo(), NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, UniquePath::path, Path::pathkeys, Path::pathtype, planner_rt_fetch, query_is_distinct_for(), query_supports_distinctness(), relation_has_unique_index_for(), RelOptInfo::relid, RelOptInfo::relids, RelOptInfo::reltarget, RelOptInfo::rows, Path::rows, RTE_RELATION, RTE_SUBQUERY, RelOptInfo::rtekind, SpecialJoinInfo::semi_can_btree, SpecialJoinInfo::semi_can_hash, SpecialJoinInfo::semi_operators, SpecialJoinInfo::semi_rhs_exprs, Path::startup_cost, subpath(), UniquePath::subpath, RangeTblEntry::subquery, SpecialJoinInfo::syn_righthand, Path::total_cost, translate_sub_tlist(), UniquePath::umethod, UniquePath::uniq_exprs, UNIQUE_PATH_HASH, UNIQUE_PATH_NOOP, UNIQUE_PATH_SORT, and work_mem.
Referenced by consider_parallel_nestloop(), hash_inner_and_outer(), join_is_legal(), match_unsorted_outer(), populate_joinrel_with_paths(), and sort_inner_and_outer().
UpperUniquePath* create_upper_unique_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
int | numCols, | ||
double | numGroups | ||
) |
Definition at line 3062 of file pathnode.c.
References RelOptInfo::consider_parallel, cpu_operator_cost, makeNode, UpperUniquePath::numkeys, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, UpperUniquePath::path, Path::pathkeys, Path::pathtype, Path::rows, Path::startup_cost, subpath(), UpperUniquePath::subpath, and Path::total_cost.
Referenced by create_final_distinct_paths(), create_partial_distinct_paths(), and make_union_unique().
Path* create_valuesscan_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Relids | required_outer | ||
) |
Definition at line 2090 of file pathnode.c.
References RelOptInfo::consider_parallel, cost_valuesscan(), get_baserel_parampathinfo(), makeNode, NIL, Path::parallel_aware, Path::parallel_safe, Path::parallel_workers, Path::pathkeys, Path::pathtype, and RelOptInfo::reltarget.
Referenced by set_values_pathlist().
WindowAggPath* create_windowagg_path | ( | PlannerInfo * | root, |
RelOptInfo * | rel, | ||
Path * | subpath, | ||
PathTarget * | target, | ||
List * | windowFuncs, | ||
WindowClause * | winclause, | ||
List * | qual, | ||
bool | topwindow | ||
) |
Definition at line 3443 of file pathnode.c.