PostgreSQL Source Code  git master
RelOptInfo Struct Reference

#include <pathnodes.h>

Public Member Functions

 pg_node_attr (no_copy_equal, no_read, no_query_jumble) NodeTag type
 
Relids *attr_needed pg_node_attr (read_write_ignore)
 
int32 *attr_widths pg_node_attr (read_write_ignore)
 
struct FdwRoutine *fdwroutine pg_node_attr (read_write_ignore)
 
void *fdw_private pg_node_attr (read_write_ignore)
 
struct RelOptInfo *parent pg_node_attr (read_write_ignore)
 
struct RelOptInfo *top_parent pg_node_attr (read_write_ignore)
 
PartitionScheme part_scheme pg_node_attr (read_write_ignore)
 
struct PartitionBoundInfoData *boundinfo pg_node_attr (read_write_ignore)
 
struct RelOptInfo **part_rels pg_node_attr (read_write_ignore)
 
List **partexprs pg_node_attr (read_write_ignore)
 
List **nullable_partexprs pg_node_attr (read_write_ignore)
 

Data Fields

RelOptKind reloptkind
 
Relids relids
 
Cardinality rows
 
bool consider_startup
 
bool consider_param_startup
 
bool consider_parallel
 
struct PathTargetreltarget
 
Listpathlist
 
Listppilist
 
Listpartial_pathlist
 
struct Pathcheapest_startup_path
 
struct Pathcheapest_total_path
 
struct Pathcheapest_unique_path
 
Listcheapest_parameterized_paths
 
Relids direct_lateral_relids
 
Relids lateral_relids
 
Index relid
 
Oid reltablespace
 
RTEKind rtekind
 
AttrNumber min_attr
 
AttrNumber max_attr
 
Bitmapsetnotnullattnums
 
Relids nulling_relids
 
Listlateral_vars
 
Relids lateral_referencers
 
Listindexlist
 
Liststatlist
 
BlockNumber pages
 
Cardinality tuples
 
double allvisfrac
 
Bitmapseteclass_indexes
 
PlannerInfosubroot
 
Listsubplan_params
 
int rel_parallel_workers
 
uint32 amflags
 
Oid serverid
 
Oid userid
 
bool useridiscurrent
 
Listunique_for_rels
 
Listnon_unique_for_rels
 
Listbaserestrictinfo
 
QualCost baserestrictcost
 
Index baserestrict_min_security
 
Listjoininfo
 
bool has_eclass_joins
 
bool consider_partitionwise_join
 
Relids top_parent_relids
 
int nparts
 
bool partbounds_merged
 
Listpartition_qual
 
Bitmapsetlive_parts
 
Relids all_partrels
 

Detailed Description

Definition at line 844 of file pathnodes.h.

Member Function Documentation

◆ pg_node_attr() [1/12]

RelOptInfo::pg_node_attr ( no_copy_equal  ,
no_read  ,
no_query_jumble   
)

◆ pg_node_attr() [2/12]

Relids* attr_needed RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [3/12]

int32* attr_widths RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [4/12]

struct FdwRoutine* fdwroutine RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [5/12]

void* fdw_private RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [6/12]

struct RelOptInfo* parent RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [7/12]

struct RelOptInfo* top_parent RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [8/12]

PartitionScheme part_scheme RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [9/12]

struct PartitionBoundInfoData* boundinfo RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [10/12]

struct RelOptInfo** part_rels RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [11/12]

List** partexprs RelOptInfo::pg_node_attr ( read_write_ignore  )

◆ pg_node_attr() [12/12]

List** nullable_partexprs RelOptInfo::pg_node_attr ( read_write_ignore  )

Field Documentation

◆ all_partrels

◆ allvisfrac

double RelOptInfo::allvisfrac

◆ amflags

◆ baserestrict_min_security

◆ baserestrictcost

◆ baserestrictinfo

◆ cheapest_parameterized_paths

◆ cheapest_startup_path

◆ cheapest_total_path

◆ cheapest_unique_path

struct Path* RelOptInfo::cheapest_unique_path

◆ consider_parallel

bool RelOptInfo::consider_parallel

Definition at line 872 of file pathnodes.h.

Referenced by add_partial_path(), add_paths_to_append_rel(), apply_scanjoin_target_to_paths(), build_child_join_rel(), build_index_paths(), build_join_rel(), build_simple_rel(), create_agg_path(), create_append_path(), create_bitmap_and_path(), create_bitmap_heap_path(), create_bitmap_or_path(), create_ctescan_path(), create_distinct_paths(), create_foreign_join_path(), create_foreign_upper_path(), create_foreignscan_path(), create_functionscan_path(), create_group_path(), create_group_result_path(), create_groupingsets_path(), create_hashjoin_path(), create_incremental_sort_path(), create_index_path(), create_index_paths(), create_limit_path(), create_material_path(), create_memoize_path(), create_merge_append_path(), create_mergejoin_path(), create_namedtuplestorescan_path(), create_nestloop_path(), create_ordered_paths(), create_partial_distinct_paths(), create_partial_grouping_paths(), create_projection_path(), create_recursiveunion_path(), create_resultscan_path(), create_samplescan_path(), create_seqscan_path(), create_set_projection_path(), create_setop_path(), create_sort_path(), create_subqueryscan_path(), create_tablefuncscan_path(), create_tidrangescan_path(), create_tidscan_path(), create_unique_path(), create_upper_unique_path(), create_valuesscan_path(), create_window_paths(), create_windowagg_path(), create_worktablescan_path(), fetch_upper_rel(), generate_union_paths(), grouping_planner(), hash_inner_and_outer(), make_grouping_rel(), match_unsorted_outer(), query_planner(), recurse_set_operations(), set_append_rel_pathlist(), set_append_rel_size(), set_plain_rel_pathlist(), set_rel_consider_parallel(), set_subquery_pathlist(), sort_inner_and_outer(), and SS_charge_for_initplans().

◆ consider_param_startup

bool RelOptInfo::consider_param_startup

◆ consider_partitionwise_join

◆ consider_startup

bool RelOptInfo::consider_startup

◆ direct_lateral_relids

◆ eclass_indexes

◆ has_eclass_joins

◆ indexlist

◆ joininfo

◆ lateral_referencers

◆ lateral_relids

◆ lateral_vars

◆ live_parts

◆ max_attr

◆ min_attr

◆ non_unique_for_rels

List* RelOptInfo::non_unique_for_rels

Definition at line 960 of file pathnodes.h.

Referenced by build_join_rel(), build_simple_rel(), and innerrel_is_unique_ext().

◆ notnullattnums

Bitmapset* RelOptInfo::notnullattnums

◆ nparts

◆ nulling_relids

◆ pages

◆ partbounds_merged

bool RelOptInfo::partbounds_merged

◆ partial_pathlist

◆ partition_qual

◆ pathlist

◆ ppilist

◆ rel_parallel_workers

int RelOptInfo::rel_parallel_workers

◆ relid

Index RelOptInfo::relid

Definition at line 903 of file pathnodes.h.

Referenced by add_rtes_to_flat_rtable(), approximate_joinrel_size(), bitmap_scan_cost_est(), brincostestimate(), build_child_join_rel(), build_index_paths(), build_join_rel(), build_physical_tlist(), build_simple_rel(), BuildParameterizedTidPaths(), check_index_only(), check_index_predicates(), check_selective_binary_conversion(), cost_bitmap_heap_scan(), cost_ctescan(), cost_functionscan(), cost_index(), cost_namedtuplestorescan(), cost_resultscan(), cost_samplescan(), cost_seqscan(), cost_subqueryscan(), cost_tablefuncscan(), cost_tidrangescan(), cost_tidscan(), cost_valuesscan(), create_foreignscan_plan(), create_index_paths(), create_lateral_join_info(), create_subqueryscan_plan(), create_unique_path(), deparseFromExprForRel(), deparseSelectSql(), dependencies_clauselist_selectivity(), estimate_multivariate_ndistinct(), estimate_path_cost_size(), examine_variable(), extract_restriction_or_clauses(), fileGetForeignPlan(), find_childrel_parents(), find_lateral_references(), find_single_rel_for_clauses(), find_var_for_subquery_tle(), get_actual_variable_range(), get_loop_count(), get_parameterized_baserel_size(), get_rel_all_updated_cols(), get_relation_constraints(), get_relation_foreign_keys(), get_relation_info(), get_relation_statistics(), grouping_planner(), IsBinaryTidClause(), IsCTIDVar(), IsCurrentOfClause(), IsTidEqualAnyClause(), join_clause_is_movable_to(), make_one_rel(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), match_unique_clauses(), mcv_clauselist_selectivity(), postgresGetForeignPaths(), postgresGetForeignPlan(), postgresGetForeignRelSize(), rel_is_distinct_for(), rel_supports_distinctness(), remove_rel_from_query(), remove_self_join_rel(), remove_self_joins_one_group(), remove_unused_subquery_outputs(), set_append_rel_size(), set_base_rel_pathlists(), set_base_rel_sizes(), set_baserel_partition_constraint(), set_baserel_partition_key_exprs(), set_baserel_size_estimates(), set_cte_size_estimates(), set_foreign_size_estimates(), set_function_pathlist(), set_function_size_estimates(), set_namedtuplestore_size_estimates(), set_rel_width(), set_result_size_estimates(), set_subquery_size_estimates(), set_tablefunc_size_estimates(), set_values_size_estimates(), statext_mcv_clauselist_selectivity(), and translate_col_privs_multilevel().

◆ relids

Relids RelOptInfo::relids

Definition at line 856 of file pathnodes.h.

Referenced by add_child_join_rel_equivalences(), add_child_rel_equivalences(), add_join_rel(), add_paths_to_joinrel(), add_placeholders_to_joinrel(), add_vars_to_targetlist(), adjust_appendrel_attrs_multilevel(), adjust_child_relids_multilevel(), apply_scanjoin_target_to_paths(), build_child_join_rel(), build_join_rel(), build_join_rel_hash(), build_joinrel_restrictlist(), build_joinrel_tlist(), build_partition_pathkeys(), build_simple_rel(), calc_joinrel_size_estimate(), check_index_predicates(), clause_sides_match_join(), compute_semi_anti_join_factors(), consider_new_or_clause(), convert_subquery_pathkeys(), create_append_path(), create_append_plan(), create_merge_append_path(), create_merge_append_plan(), create_partial_grouping_paths(), create_partitionwise_grouping_paths(), create_unique_path(), deparseFromExpr(), deparseFromExprForRel(), deparseLockingClause(), deparseRangeTblRef(), deparseVar(), eclass_useful_for_merging(), expand_partitioned_rtentry(), fetch_upper_rel(), find_em_for_rel(), find_join_rel(), foreign_grouping_ok(), foreign_join_ok(), generate_implied_equalities_for_column(), generate_join_implied_equalities(), generate_join_implied_equalities_for_ecs(), generate_nonunion_paths(), generate_recursion_path(), generate_union_paths(), get_appendrel_parampathinfo(), get_baserel_parampathinfo(), get_join_variables(), get_joinrel_parampathinfo(), get_matching_part_pairs(), get_useful_ecs_for_relation(), has_join_restriction(), has_legal_joinclause(), has_relevant_eclass_joinclause(), hash_inner_and_outer(), have_join_order_restriction(), have_partkey_equi_join(), have_relevant_eclass_joinclause(), have_relevant_joinclause(), is_foreign_expr(), is_foreign_param(), is_innerrel_unique_for(), is_safe_restriction_clause_for(), isPlainForeignVar(), join_is_legal(), join_is_removable(), join_search_one_level(), make_grouping_rel(), make_join_rel(), make_one_rel(), make_partitionedrel_pruneinfo(), make_rels_by_clause_joins(), make_rels_by_clauseless_joins(), merge_clump(), populate_joinrel_with_paths(), relation_can_be_sorted_early(), remove_self_joins_one_group(), restriction_is_constant_false(), select_mergejoin_clauses(), select_outer_pathkeys_for_merge(), semijoin_target_ok(), set_function_pathlist(), set_rel_pathlist(), standard_join_search(), subbuild_joinrel_joinlist(), subbuild_joinrel_restrictlist(), try_nestloop_path(), try_partial_nestloop_path(), try_partitionwise_join(), and use_physical_tlist().

◆ reloptkind

◆ reltablespace

◆ reltarget

struct PathTarget* RelOptInfo::reltarget

Definition at line 878 of file pathnodes.h.

Referenced by add_foreign_grouping_paths(), add_paths_to_grouping_rel(), add_placeholders_to_base_rels(), add_placeholders_to_joinrel(), add_vars_to_targetlist(), apply_scanjoin_target_to_paths(), bitmap_scan_cost_est(), build_child_join_rel(), build_child_join_reltarget(), build_join_rel(), build_joinrel_tlist(), build_simple_rel(), build_tlist_to_deparse(), check_index_only(), check_selective_binary_conversion(), create_append_path(), create_bitmap_and_path(), create_bitmap_heap_path(), create_bitmap_or_path(), create_ctescan_path(), create_degenerate_grouping_paths(), create_foreign_join_path(), create_foreign_upper_path(), create_foreignscan_path(), create_foreignscan_plan(), create_functionscan_path(), create_gather_merge_path(), create_group_path(), create_groupingsets_path(), create_hashjoin_path(), create_index_path(), create_material_path(), create_memoize_path(), create_merge_append_path(), create_mergejoin_path(), create_modifytable_path(), create_namedtuplestorescan_path(), create_nestloop_path(), create_partial_distinct_paths(), create_partial_grouping_paths(), create_partitionwise_grouping_paths(), create_resultscan_path(), create_samplescan_path(), create_seqscan_path(), create_subqueryscan_path(), create_tablefuncscan_path(), create_tidrangescan_path(), create_tidscan_path(), create_unique_path(), create_valuesscan_path(), create_worktablescan_path(), deparseRangeTblRef(), deparseSubqueryTargetList(), distribute_row_identity_vars(), estimate_path_cost_size(), estimate_size(), fetch_upper_rel(), find_em_for_rel_target(), find_var_for_subquery_tle(), foreign_grouping_ok(), gather_grouping_paths(), generate_gather_paths(), generate_nonunion_paths(), generate_recursion_path(), generate_union_paths(), generate_useful_gather_paths(), get_memoize_path(), get_relation_column_alias_ids(), grouping_planner(), make_grouping_rel(), plan_cluster_use_sort(), postgresGetForeignJoinPaths(), postgresGetForeignRelSize(), query_planner(), recurse_set_operations(), relation_can_be_sorted_early(), remove_self_join_rel(), remove_unused_subquery_outputs(), semijoin_target_ok(), set_append_rel_size(), set_dummy_rel_pathlist(), set_function_pathlist(), set_rel_consider_parallel(), set_rel_width(), and set_subquery_pathlist().

◆ rows

◆ rtekind

◆ serverid

◆ statlist

◆ subplan_params

List* RelOptInfo::subplan_params

◆ subroot

◆ top_parent_relids

◆ tuples

◆ unique_for_rels

List* RelOptInfo::unique_for_rels

Definition at line 958 of file pathnodes.h.

Referenced by build_join_rel(), build_simple_rel(), and innerrel_is_unique_ext().

◆ userid

◆ useridiscurrent


The documentation for this struct was generated from the following file: