Public Member Functions |
void | init (JOIN_TAB *s, table_map remaining_tables, bool in_dups_producing_range, bool is_sjm_nest) |
void | next_ref_key () |
void | add_keyuse (table_map remaining_tables, Key_use *keyuse) |
bool | have_a_case () |
void | check_ref_access_part1 (JOIN_TAB *s, uint key, Key_use *start_key, key_part_map bound_keyparts) |
void | check_ref_access_part2 (uint key, Key_use *start_key, double records, double read_time) |
void | check_range_access (JOIN *join, uint idx, QUICK_SELECT_I *quick) |
void | save_to_position (JOIN_TAB *tab, POSITION *pos) |
Detailed Description
Definition at line 67 of file sql_planner.cc.
Member Function Documentation
void Loose_scan_opt::check_ref_access_part1 |
( |
JOIN_TAB * |
s, |
|
|
uint |
key, |
|
|
Key_use * |
start_key, |
|
|
key_part_map |
bound_keyparts |
|
) |
| |
|
inline |
Check if an index can be used for LooseScan, part 1
- Parameters
-
s | The join_tab we are checking |
key | The key being checked for the associated table |
start_key | First applicable keyuse for this key. |
bound_keyparts | The key columns determined for this index, ie. found in earlier tables in plan. |
Definition at line 207 of file sql_planner.cc.
void Loose_scan_opt::check_ref_access_part2 |
( |
uint |
key, |
|
|
Key_use * |
start_key, |
|
|
double |
records, |
|
|
double |
read_time |
|
) |
| |
|
inline |
Check if ref access can be used for LooseScan, part 2
Record this LooseScan index if it is cheaper than the currently cheapest LooseScan index.
- Note
- Actually ref access is not used by LooseScan: JOIN::set_access_methods() always sets up a index/range scan.
- Parameters
-
key | The key being checked for the associated table |
start_key | First applicable keyuse for this key. |
records | Row count estimate for this index access |
read_time | Cost of access using this index |
Definition at line 298 of file sql_planner.cc.
The documentation for this class was generated from the following file: