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) |
|
AccessPath * | get_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) |
|
◆ check_quick_select()
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 |
|
) |
| |
◆ dbug_dump_range()
◆ get_key_scans_params()
No cost calculation when index dive is skipped.
◆ get_ranges_from_tree()
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 |
|
) |
| |
◆ trace_basic_info_index_range_scan()