24#ifndef SQL_RANGE_OPTIMIZER_GROUP_INDEX_SKIP_SCAN_H_
25#define SQL_RANGE_OPTIMIZER_GROUP_INDEX_SKIP_SCAN_H_
154 bool Init()
override;
Used to store optimizer cost estimates.
Definition: handler.h:3865
Definition: group_index_skip_scan.h:84
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:80
const Quick_ranges * prefix_ranges
Definition: group_index_skip_scan.h:108
const Quick_ranges_array * key_infix_ranges
Definition: group_index_skip_scan.h:115
bool min_max_keypart_asc
Definition: group_index_skip_scan.h:97
int next_prefix()
Definition: group_index_skip_scan.cc:487
bool append_next_infix()
Definition: group_index_skip_scan.cc:597
bool have_agg_distinct
Definition: group_index_skip_scan.h:92
bool seen_first_key
Definition: group_index_skip_scan.h:93
const Mem_root_array< Item_sum * > * min_functions
Definition: group_index_skip_scan.h:118
const uint group_prefix_len
Definition: group_index_skip_scan.h:89
void update_max_result(bool *reset)
Definition: group_index_skip_scan.cc:1047
uint index
Definition: group_index_skip_scan.h:86
int get_next_prefix(uint prefix_length, uint group_key_parts, uchar *cur_prefix)
Definition: group_index_skip_scan.cc:536
uchar * group_prefix
Definition: group_index_skip_scan.h:88
uint min_max_arg_len
Definition: group_index_skip_scan.h:96
bool seen_all_infix_ranges
Definition: group_index_skip_scan.h:106
KEY * index_info
Definition: group_index_skip_scan.h:87
uint max_used_key_length
Definition: group_index_skip_scan.h:100
unsigned cur_prefix_range_idx
Definition: group_index_skip_scan.h:109
const Quick_ranges * min_max_ranges
Definition: group_index_skip_scan.h:113
void reset_group()
Definition: group_index_skip_scan.cc:645
KEY_PART_INFO * min_max_arg_part
Definition: group_index_skip_scan.h:94
uchar * last_prefix
Definition: group_index_skip_scan.h:91
uint real_key_parts
Definition: group_index_skip_scan.h:117
bool Init() override
Initialize or reinitialize the iterator.
Definition: group_index_skip_scan.cc:143
int next_max()
Definition: group_index_skip_scan.cc:441
MEM_ROOT * mem_root
Definition: group_index_skip_scan.h:126
int next_min()
Definition: group_index_skip_scan.cc:358
int next_max_in_range()
Definition: group_index_skip_scan.cc:904
const Mem_root_array< Item_sum * > * max_functions
Definition: group_index_skip_scan.h:119
uint cur_infix_range_position[MAX_REF_PARTS]
Definition: group_index_skip_scan.h:103
uint group_key_parts
Definition: group_index_skip_scan.h:90
bool is_index_scan
Definition: group_index_skip_scan.h:124
int Read() override
Read a single row.
Definition: group_index_skip_scan.cc:220
QUICK_RANGE * last_prefix_range
Definition: group_index_skip_scan.h:110
uint key_infix_len
Definition: group_index_skip_scan.h:98
int next_min_in_range()
Definition: group_index_skip_scan.cc:776
uint real_prefix_len
Definition: group_index_skip_scan.h:116
bool m_seen_eof
Definition: group_index_skip_scan.h:125
~GroupIndexSkipScanIterator() override
Definition: group_index_skip_scan.cc:117
void update_min_result(bool *reset)
Definition: group_index_skip_scan.cc:1013
bool is_agg_distinct() const
Definition: group_index_skip_scan.h:156
Definition: index_range_scan.h:61
Class Item_sum is the base class used for special expressions that SQL calls 'set functions'.
Definition: item_sum.h:399
Definition: sql_optimizer.h:133
Definition: sql_list.h:606
Definition: sql_list.h:467
Definition: range_optimizer.h:69
THD * thd() const
Definition: row_iterator.h:228
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
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
std::string HARNESS_EXPORT reset()
get 'reset attributes' ESC sequence.
Definition: vt100.cc:37
File containing constants that can be used throughout the server.
constexpr const unsigned int MAX_REF_PARTS
Definition: sql_const.h:47
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:83