CUBRID Engine  latest
qo_plan Struct Reference

#include <query_planner.h>

Collaboration diagram for qo_plan:
Collaboration graph

Public Attributes

QO_INFOinfo
 
int refcount
 
bool top_rooted
 
bool well_rooted
 
double fixed_cpu_cost
 
double fixed_io_cost
 
double variable_cpu_cost
 
double variable_io_cost
 
BITSET sarged_terms
 
QO_EQCLASSorder
 
PT_NODEiscan_sort_list
 
BITSET subqueries
 
QO_PLANTYPE plan_type
 
QO_PLAN_VTBLvtbl
 
union {
   struct {
      QO_PLAN *   link
 
   }   free
 
   struct {
      QO_SCANMETHOD   scan_method
 
      QO_NODE *   node
 
      BITSET   terms
 
      BITSET   kf_terms
 
      bool   index_equi
 
      bool   index_cover
 
      bool   index_iss
 
      bool   index_loose
 
      QO_NODE_INDEX_ENTRY *   index
 
      BITSET   multi_col_range_segs
 
      BITSET   hash_terms
 
   }   scan
 
   struct {
      SORT_TYPE   sort_type
 
      QO_PLAN *   subplan
 
      xasl_node *   xasl
 
   }   sort
 
   struct {
      JOIN_TYPE   join_type
 
      QO_JOINMETHOD   join_method
 
      QO_PLAN *   outer
 
      QO_PLAN *   inner
 
      BITSET   join_terms
 
      BITSET   during_join_terms
 
      BITSET   other_outer_join_terms
 
      BITSET   after_join_terms
 
      BITSET   hash_terms
 
   }   join
 
   struct {
      QO_PLAN *   head
 
      QO_TERM *   path
 
   }   follow
 
plan_un
 
QO_PLAN_ULTI_RANGE_OPT_USE multi_range_opt_use
 
cubxasl::analytic_eval_typeanalytic_eval_list
 
bool has_sort_limit
 
bool use_iscan_descending
 

Detailed Description

Definition at line 99 of file query_planner.h.

Member Data Documentation

BITSET qo_plan::after_join_terms

Definition at line 188 of file query_planner.h.

BITSET qo_plan::during_join_terms

Definition at line 186 of file query_planner.h.

struct { ... } qo_plan::free
BITSET qo_plan::hash_terms

Definition at line 158 of file query_planner.h.

QO_PLAN* qo_plan::head

Definition at line 194 of file query_planner.h.

QO_NODE_INDEX_ENTRY* qo_plan::index

Definition at line 156 of file query_planner.h.

bool qo_plan::index_cover

Definition at line 153 of file query_planner.h.

bool qo_plan::index_equi

Definition at line 152 of file query_planner.h.

bool qo_plan::index_iss

Definition at line 154 of file query_planner.h.

bool qo_plan::index_loose

Definition at line 155 of file query_planner.h.

QO_INFO* qo_plan::info

Definition at line 101 of file query_planner.h.

Referenced by gen_outer(), make_namelist_from_projected_segs(), planner_nodeset_join_cost(), preserve_info(), pt_set_limit_optimization_flags(), qo_add_hq_iterations_access_spec(), qo_check_groupby_skip_descending(), qo_check_iscan_for_multi_range_opt(), qo_check_join_for_multi_range_opt(), qo_check_orderby_skip_descending(), qo_check_parent_eq_class_for_multi_range_opt(), qo_check_plan_index_for_multi_range_opt(), qo_check_subplan_join_cond_for_multi_range_opt(), qo_check_subqueries_for_multi_range_opt(), qo_check_terms_for_multiple_range_opt(), qo_combine_partitions(), qo_find_best_nljoin_inner_plan_on_info(), qo_follow_cost(), qo_follow_new(), qo_is_index_covering_scan(), qo_is_index_iss_scan(), qo_is_index_loose_scan(), qo_is_index_mro_scan(), qo_join_fprint(), qo_join_info(), qo_join_new(), qo_mjoin_cost(), qo_nljoin_cost(), qo_plan_add_to_free_list(), qo_plan_cmp(), qo_plan_compute_cost(), qo_plan_compute_iscan_sort_list(), qo_plan_discard(), qo_plan_is_orderby_skip_candidate(), qo_plan_multi_range_opt(), qo_plan_order_by(), qo_plan_print_costs(), qo_plan_print_outer_join_terms(), qo_plan_print_projected_segs(), qo_plan_print_sarged_terms(), qo_plan_print_sort_spec(), qo_plan_scan_print_json(), qo_plan_scan_print_text(), qo_scan_fprint(), qo_scan_info(), qo_scan_new(), qo_search_planner(), qo_sort_cost(), qo_sort_fprint(), qo_sort_info(), qo_sort_new(), qo_to_xasl(), qo_top_plan_new(), qo_unset_multi_range_optimization(), qo_validate_indexes_for_orderby(), and qo_worst_new().

QO_PLAN* qo_plan::inner

Definition at line 184 of file query_planner.h.

QO_JOINMETHOD qo_plan::join_method

Definition at line 182 of file query_planner.h.

BITSET qo_plan::join_terms

Definition at line 185 of file query_planner.h.

JOIN_TYPE qo_plan::join_type

Definition at line 181 of file query_planner.h.

BITSET qo_plan::kf_terms

Definition at line 151 of file query_planner.h.

QO_PLAN* qo_plan::link

Definition at line 143 of file query_planner.h.

BITSET qo_plan::multi_col_range_segs

Definition at line 157 of file query_planner.h.

QO_NODE* qo_plan::node

Definition at line 149 of file query_planner.h.

BITSET qo_plan::other_outer_join_terms

Definition at line 187 of file query_planner.h.

QO_PLAN* qo_plan::outer

Definition at line 183 of file query_planner.h.

QO_TERM* qo_plan::path

Definition at line 195 of file query_planner.h.

union { ... } qo_plan::plan_un

Referenced by add_access_spec(), add_sort_spec(), gen_inner(), gen_outer(), init_class_scan_proc(), make_fetch_proc(), make_mergelist_proc(), make_pred_from_plan(), make_sort_limit_proc(), planner_nodeset_join_cost(), pt_instnum_to_key_limit(), pt_ordbynum_to_key_limit_multiple_ranges(), qo_add_hq_iterations_access_spec(), qo_check_iscan_for_multi_range_opt(), qo_check_join_for_multi_range_opt(), qo_check_new_best_plan_on_info(), qo_check_parent_eq_class_for_multi_range_opt(), qo_check_plan_index_for_multi_range_opt(), qo_check_plan_on_info(), qo_check_seg_belongs_to_range_term(), qo_check_subplan_join_cond_for_multi_range_opt(), qo_check_subplans_for_multi_range_opt(), qo_check_subqueries_for_multi_range_opt(), qo_check_terms_for_multiple_range_opt(), qo_combine_partitions(), qo_find_best_nljoin_inner_plan_on_info(), qo_find_subplan_using_multi_range_opt(), qo_follow_cost(), qo_follow_fprint(), qo_follow_info(), qo_follow_new(), qo_follow_walk(), qo_generate_join_index_scan(), qo_get_key_limit_from_instnum(), qo_get_multi_col_range_segs(), qo_get_xasl_index_info(), qo_group_by_skip_plans_cmp(), qo_has_sort_limit_subplan(), qo_index_covering_plans_cmp(), qo_index_scan_new(), qo_is_all_unique_index_columns_are_equi_terms(), qo_is_index_covering_scan(), qo_is_index_iss_scan(), qo_is_index_loose_scan(), qo_is_index_mro_scan(), qo_is_iscan(), qo_is_iscan_from_groupby(), qo_is_iscan_from_orderby(), qo_is_seq_scan(), qo_is_sort_limit(), qo_iscan_cost(), qo_join_fprint(), qo_join_free(), qo_join_info(), qo_join_new(), qo_join_walk(), qo_mjoin_cost(), qo_multi_range_opt_plans_cmp(), qo_nljoin_cost(), qo_order_by_skip_plans_cmp(), qo_plan_add_to_free_list(), qo_plan_cmp(), qo_plan_cmp_prefer_covering_index(), qo_plan_compute_iscan_sort_list(), qo_plan_follow_print_json(), qo_plan_follow_print_text(), qo_plan_iscan_terms_cmp(), qo_plan_join_print_json(), qo_plan_join_print_text(), qo_plan_malloc(), qo_plan_multi_range_opt(), qo_plan_print_outer_join_terms(), qo_plan_print_sort_spec(), qo_plan_scan_print_json(), qo_plan_scan_print_text(), qo_plan_skip_groupby(), qo_plan_skip_orderby(), qo_plan_sort_print_json(), qo_plan_sort_print_text(), qo_plans_teardown(), qo_scan_fprint(), qo_scan_free(), qo_scan_info(), qo_scan_new(), qo_search_planner(), qo_seq_scan_new(), qo_set_orderby_skip(), qo_set_use_desc(), qo_sort_cost(), qo_sort_fprint(), qo_sort_info(), qo_sort_new(), qo_sort_walk(), qo_sscan_cost(), qo_top_plan_new(), qo_unset_multi_range_optimization(), qo_validate_indexes_for_orderby(), and qo_walk_plan_tree().

struct { ... } qo_plan::scan

Referenced by add_access_spec(), gen_outer(), init_class_scan_proc(), make_pred_from_plan(), pt_instnum_to_key_limit(), pt_ordbynum_to_key_limit_multiple_ranges(), qo_add_hq_iterations_access_spec(), qo_check_iscan_for_multi_range_opt(), qo_check_parent_eq_class_for_multi_range_opt(), qo_check_plan_index_for_multi_range_opt(), qo_check_plan_on_info(), qo_check_seg_belongs_to_range_term(), qo_check_subplan_join_cond_for_multi_range_opt(), qo_check_subqueries_for_multi_range_opt(), qo_check_terms_for_multiple_range_opt(), qo_generate_join_index_scan(), qo_get_multi_col_range_segs(), qo_get_xasl_index_info(), qo_group_by_skip_plans_cmp(), qo_index_covering_plans_cmp(), qo_index_scan_new(), qo_is_all_unique_index_columns_are_equi_terms(), qo_is_index_covering_scan(), qo_is_index_iss_scan(), qo_is_index_loose_scan(), qo_is_index_mro_scan(), qo_is_iscan(), qo_is_iscan_from_groupby(), qo_is_iscan_from_orderby(), qo_is_seq_scan(), qo_iscan_cost(), qo_join_new(), qo_multi_range_opt_plans_cmp(), qo_nljoin_cost(), qo_order_by_skip_plans_cmp(), qo_plan_cmp(), qo_plan_cmp_prefer_covering_index(), qo_plan_compute_iscan_sort_list(), qo_plan_iscan_terms_cmp(), qo_plan_multi_range_opt(), qo_plan_scan_print_json(), qo_plan_scan_print_text(), qo_plan_skip_groupby(), qo_scan_fprint(), qo_scan_free(), qo_scan_info(), qo_scan_new(), qo_search_planner(), qo_seq_scan_new(), qo_set_orderby_skip(), qo_set_use_desc(), qo_sort_cost(), qo_sscan_cost(), qo_top_plan_new(), qo_unset_multi_range_optimization(), and qo_validate_indexes_for_orderby().

QO_SCANMETHOD qo_plan::scan_method

Definition at line 148 of file query_planner.h.

SORT_TYPE qo_plan::sort_type

Definition at line 171 of file query_planner.h.

QO_PLAN* qo_plan::subplan

Definition at line 175 of file query_planner.h.

BITSET qo_plan::terms

Definition at line 150 of file query_planner.h.

xasl_node* qo_plan::xasl

Definition at line 176 of file query_planner.h.


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