MySQL 8.1.0
Source Code Documentation
index_range_scan_plan.h File Reference

Go to the source code of this file.


bool get_ranges_from_tree (MEM_ROOT *return_mem_root, TABLE *table, KEY_PART *key, uint keyno, SEL_ROOT *key_tree, uint num_key_parts, unsigned *used_key_parts, unsigned *num_exact_key_parts, Quick_ranges *ranges)
AccessPathget_key_scans_params (THD *thd, RANGE_OPT_PARAM *param, SEL_TREE *tree, bool index_read_must_be_used, bool update_tbl_stats, enum_order interesting_order, bool skip_records_in_range, double cost_est, bool ror_only, Key_map *needed_reg)
ha_rows check_quick_select (THD *thd, RANGE_OPT_PARAM *param, uint idx, bool index_only, SEL_ROOT *tree, bool update_tbl_stats, enum_order order_direction, bool skip_records_in_range, uint *mrr_flags, uint *bufsize, Cost_estimate *cost, bool *is_ror_scan, bool *is_imerge_scan)
void dbug_dump_range (int indent, bool verbose, TABLE *table, int index, KEY_PART *used_key_part, Bounds_checked_array< QUICK_RANGE * > ranges)
void trace_basic_info_index_range_scan (THD *thd, const AccessPath *path, const RANGE_OPT_PARAM *param, Opt_trace_object *trace_object)

Function Documentation

◆ check_quick_select()

ha_rows check_quick_select ( THD thd,
uint  idx,
bool  index_only,
SEL_ROOT tree,
bool  update_tbl_stats,
enum_order  order_direction,
bool  skip_records_in_range,
uint *  mrr_flags,
uint *  bufsize,
Cost_estimate cost,
bool *  is_ror_scan,
bool *  is_imerge_scan 

◆ dbug_dump_range()

void dbug_dump_range ( int  indent,
bool  verbose,
TABLE table,
int  index,
KEY_PART used_key_part,
Bounds_checked_array< QUICK_RANGE * >  ranges 

◆ get_key_scans_params()

AccessPath * get_key_scans_params ( THD thd,
SEL_TREE tree,
bool  index_read_must_be_used,
bool  update_tbl_stats,
enum_order  interesting_order,
bool  skip_records_in_range,
double  cost_est,
bool  ror_only,
Key_map needed_reg 

No cost calculation when index dive is skipped.

◆ get_ranges_from_tree()

bool get_ranges_from_tree ( MEM_ROOT return_mem_root,
TABLE table,
uint  keyno,
SEL_ROOT key_tree,
uint  num_key_parts,
unsigned *  used_key_parts,
unsigned *  num_exact_key_parts,
Quick_ranges ranges 

◆ trace_basic_info_index_range_scan()

void trace_basic_info_index_range_scan ( THD thd,
const AccessPath path,
const RANGE_OPT_PARAM param,
Opt_trace_object trace_object