MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Loose_scan_opt Class Reference

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
sThe join_tab we are checking
keyThe key being checked for the associated table
start_keyFirst applicable keyuse for this key.
bound_keypartsThe key columns determined for this index, ie. found in earlier tables in plan.

Definition at line 207 of file sql_planner.cc.

Here is the call graph for this function:

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
keyThe key being checked for the associated table
start_keyFirst applicable keyuse for this key.
recordsRow count estimate for this index access
read_timeCost 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: