24#ifndef SQL_RANGE_OPTIMIZER_INDEX_SKIP_SCAN_H_
25#define SQL_RANGE_OPTIMIZER_INDEX_SKIP_SCAN_H_
119 bool Init()
override;
Used to store optimizer cost estimates.
Definition: handler.h:3877
Definition: index_skip_scan.h:66
EQPrefix * eq_prefixes
Definition: index_skip_scan.h:74
bool has_aggregate_function
Definition: index_skip_scan.h:106
uchar *const max_range_key
Definition: index_skip_scan.h:98
bool next_eq_prefix()
Increments cur_prefix and sets what the next equality prefix should be.
Definition: index_skip_scan.cc:195
uchar *const max_search_key
Definition: index_skip_scan.h:100
IndexSkipScanIterator(THD *thd, TABLE *table, KEY *index_info, uint index, uint eq_prefix_len, uint eq_prefix_key_parts, EQPrefix *eq_prefixes, uint used_key_parts, MEM_ROOT *temp_mem_root, bool has_aggregate_function, uchar *min_range_key, uchar *max_range_key, uchar *min_search_key, uchar *max_search_key, uint range_cond_flag, uint range_key_len)
Construct new quick select for queries that can do skip scans.
Definition: index_skip_scan.cc:69
uchar * distinct_prefix
Definition: index_skip_scan.h:84
key_range start_key
Definition: index_skip_scan.h:103
const uint range_cond_flag
Definition: index_skip_scan.h:101
uint distinct_prefix_key_parts
Definition: index_skip_scan.h:86
uchar *const min_range_key
Definition: index_skip_scan.h:97
~IndexSkipScanIterator() override
Definition: index_skip_scan.cc:121
MY_BITMAP column_bitmap
Definition: index_skip_scan.h:70
uint index
Definition: index_skip_scan.h:68
uint max_used_key_length
Definition: index_skip_scan.h:78
int Read() override
Get the next row for skip scan.
Definition: index_skip_scan.cc:262
bool Init() override
Initialize or reinitialize the iterator.
Definition: index_skip_scan.cc:126
const uint eq_prefix_len
Definition: index_skip_scan.h:72
uchar * eq_prefix
Definition: index_skip_scan.h:75
key_range end_key
Definition: index_skip_scan.h:104
bool seen_first_key
Definition: index_skip_scan.h:94
uint distinct_prefix_len
Definition: index_skip_scan.h:85
const uint range_key_len
Definition: index_skip_scan.h:89
uchar *const min_search_key
Definition: index_skip_scan.h:99
uint used_key_parts
Definition: index_skip_scan.h:82
uint eq_prefix_key_parts
Definition: index_skip_scan.h:73
MEM_ROOT * mem_root
Definition: index_skip_scan.h:88
KEY * index_info
Definition: index_skip_scan.h:69
Definition: sql_optimizer.h:133
THD * thd() const
Definition: row_iterator.h:228
A graph of (possible multiple) key ranges, represented as a red-black binary tree.
Definition: tree.h:68
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:167
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Definition: row_iterator.h:234
TABLE * table() const
Definition: row_iterator.h:246
This file follows Google coding style, except for the name MEM_ROOT (which is kept for historical rea...
This file includes constants used by all storage engines.
Some integer typedefs for easier portability.
unsigned char uchar
Definition: my_inttypes.h:52
Definition: index_skip_scan_plan.h:53
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
Definition: my_bitmap.h:43
Definition: my_base.h:1125