23#ifndef SQL_RANGE_OPTIMIZER_GROUP_INDEX_SKIP_SCAN_H_
24#define SQL_RANGE_OPTIMIZER_GROUP_INDEX_SKIP_SCAN_H_
153 bool Init()
override;
Used to store optimizer cost estimates.
Definition: handler.h:3840
Definition: group_index_skip_scan.h:83
GroupIndexSkipScanIterator(THD *thd, TABLE *table_arg, const Mem_root_array< Item_sum * > *min_functions, const Mem_root_array< Item_sum * > *max_functions, bool have_agg_distinct, KEY_PART_INFO *min_max_arg_part, uint group_prefix_len, uint group_key_parts, uint real_key_parts, uint max_used_key_length_arg, KEY *index_info, uint use_index, uint key_infix_len, MEM_ROOT *return_mem_root, bool is_index_scan, const Quick_ranges *prefix_ranges, const Quick_ranges_array *key_infix_ranges, const Quick_ranges *min_max_ranges)
Definition: group_index_skip_scan.cc:79
const Quick_ranges * prefix_ranges
Definition: group_index_skip_scan.h:107
const Quick_ranges_array * key_infix_ranges
Definition: group_index_skip_scan.h:114
bool min_max_keypart_asc
Definition: group_index_skip_scan.h:96
int next_prefix()
Definition: group_index_skip_scan.cc:486
bool append_next_infix()
Definition: group_index_skip_scan.cc:595
bool have_agg_distinct
Definition: group_index_skip_scan.h:91
bool seen_first_key
Definition: group_index_skip_scan.h:92
const Mem_root_array< Item_sum * > * min_functions
Definition: group_index_skip_scan.h:117
const uint group_prefix_len
Definition: group_index_skip_scan.h:88
void update_max_result(bool *reset)
Definition: group_index_skip_scan.cc:1045
uint index
Definition: group_index_skip_scan.h:85
int get_next_prefix(uint prefix_length, uint group_key_parts, uchar *cur_prefix)
Definition: group_index_skip_scan.cc:535
uchar * group_prefix
Definition: group_index_skip_scan.h:87
uint min_max_arg_len
Definition: group_index_skip_scan.h:95
bool seen_all_infix_ranges
Definition: group_index_skip_scan.h:105
KEY * index_info
Definition: group_index_skip_scan.h:86
uint max_used_key_length
Definition: group_index_skip_scan.h:99
unsigned cur_prefix_range_idx
Definition: group_index_skip_scan.h:108
const Quick_ranges * min_max_ranges
Definition: group_index_skip_scan.h:112
void reset_group()
Definition: group_index_skip_scan.cc:643
KEY_PART_INFO * min_max_arg_part
Definition: group_index_skip_scan.h:93
uchar * last_prefix
Definition: group_index_skip_scan.h:90
uint real_key_parts
Definition: group_index_skip_scan.h:116
bool Init() override
Initialize or reinitialize the iterator.
Definition: group_index_skip_scan.cc:142
int next_max()
Definition: group_index_skip_scan.cc:440
MEM_ROOT * mem_root
Definition: group_index_skip_scan.h:125
int next_min()
Definition: group_index_skip_scan.cc:357
int next_max_in_range()
Definition: group_index_skip_scan.cc:902
const Mem_root_array< Item_sum * > * max_functions
Definition: group_index_skip_scan.h:118
uint cur_infix_range_position[MAX_REF_PARTS]
Definition: group_index_skip_scan.h:102
uint group_key_parts
Definition: group_index_skip_scan.h:89
bool is_index_scan
Definition: group_index_skip_scan.h:123
int Read() override
Read a single row.
Definition: group_index_skip_scan.cc:219
QUICK_RANGE * last_prefix_range
Definition: group_index_skip_scan.h:109
uint key_infix_len
Definition: group_index_skip_scan.h:97
int next_min_in_range()
Definition: group_index_skip_scan.cc:774
uint real_prefix_len
Definition: group_index_skip_scan.h:115
bool m_seen_eof
Definition: group_index_skip_scan.h:124
~GroupIndexSkipScanIterator() override
Definition: group_index_skip_scan.cc:116
void update_min_result(bool *reset)
Definition: group_index_skip_scan.cc:1011
bool is_agg_distinct() const
Definition: group_index_skip_scan.h:155
Definition: index_range_scan.h:60
Class Item_sum is the base class used for special expressions that SQL calls 'set functions'.
Definition: item_sum.h:398
Definition: sql_optimizer.h:132
Definition: sql_list.h:573
Definition: sql_list.h:434
Definition: range_optimizer.h:68
THD * thd() const
Definition: row_iterator.h:227
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
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
std::string HARNESS_EXPORT reset()
get 'reset attributes' ESC sequence.
Definition: vt100.cc:36
File containing constants that can be used throughout the server.
constexpr const unsigned int MAX_REF_PARTS
Definition: sql_const.h:46
Our own string classes, used pervasively throughout the executor.
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:82