23#ifndef SQL_RANGE_OPTIMIZER_INDEX_SKIP_SCAN_H_
24#define SQL_RANGE_OPTIMIZER_INDEX_SKIP_SCAN_H_
118 bool Init()
override;
Used to store optimizer cost estimates.
Definition: handler.h:3793
Definition: index_skip_scan.h:65
EQPrefix * eq_prefixes
Definition: index_skip_scan.h:73
bool has_aggregate_function
Definition: index_skip_scan.h:105
uchar *const max_range_key
Definition: index_skip_scan.h:97
bool next_eq_prefix()
Increments cur_prefix and sets what the next equality prefix should be.
Definition: index_skip_scan.cc:194
uchar *const max_search_key
Definition: index_skip_scan.h:99
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:68
uchar * distinct_prefix
Definition: index_skip_scan.h:83
key_range start_key
Definition: index_skip_scan.h:102
const uint range_cond_flag
Definition: index_skip_scan.h:100
uint distinct_prefix_key_parts
Definition: index_skip_scan.h:85
uchar *const min_range_key
Definition: index_skip_scan.h:96
~IndexSkipScanIterator() override
Definition: index_skip_scan.cc:120
MY_BITMAP column_bitmap
Definition: index_skip_scan.h:69
uint index
Definition: index_skip_scan.h:67
uint max_used_key_length
Definition: index_skip_scan.h:77
int Read() override
Get the next row for skip scan.
Definition: index_skip_scan.cc:261
bool Init() override
Initialize or reinitialize the iterator.
Definition: index_skip_scan.cc:125
const uint eq_prefix_len
Definition: index_skip_scan.h:71
uchar * eq_prefix
Definition: index_skip_scan.h:74
key_range end_key
Definition: index_skip_scan.h:103
bool seen_first_key
Definition: index_skip_scan.h:93
uint distinct_prefix_len
Definition: index_skip_scan.h:84
const uint range_key_len
Definition: index_skip_scan.h:88
uchar *const min_search_key
Definition: index_skip_scan.h:98
uint used_key_parts
Definition: index_skip_scan.h:81
uint eq_prefix_key_parts
Definition: index_skip_scan.h:72
MEM_ROOT * mem_root
Definition: index_skip_scan.h:87
KEY * index_info
Definition: index_skip_scan.h:68
Definition: sql_optimizer.h:132
THD * thd() const
Definition: row_iterator.h:227
A graph of (possible multiple) key ranges, represented as a red-black binary tree.
Definition: tree.h:67
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
Definition: row_iterator.h:233
TABLE * table() const
Definition: row_iterator.h:245
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:51
Definition: index_skip_scan_plan.h:52
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:82
Definition: my_bitmap.h:42
Definition: my_base.h:1123