#include <group_index_skip_scan.h>
|
| | 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) |
| |
| | ~GroupIndexSkipScanIterator () override |
| |
| bool | Init () override |
| | Initialize or reinitialize the iterator. More...
|
| |
| int | Read () override |
| | Read a single row. More...
|
| |
| bool | is_agg_distinct () const |
| |
| | TableRowIterator (THD *thd, TABLE *table) |
| |
| void | UnlockRow () override |
| | The default implementation of unlock-row method of RowIterator, used in all access methods except EQRefIterator. More...
|
| |
| void | SetNullRowFlag (bool is_null_row) override |
| | Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag is true, you'll get only NULLs no matter what is actually in the buffer (typically some old leftover row). More...
|
| |
| void | StartPSIBatchMode () override |
| | Start performance schema batch mode, if supported (otherwise ignored). More...
|
| |
| void | EndPSIBatchModeIfStarted () override |
| | Ends performance schema batch mode, if started. More...
|
| |
| | RowIterator (THD *thd) |
| |
| virtual | ~RowIterator ()=default |
| |
| | RowIterator (const RowIterator &)=delete |
| |
| | RowIterator (RowIterator &&)=default |
| |
| virtual const IteratorProfiler * | GetProfiler () const |
| | Get profiling data for this iterator (for 'EXPLAIN ANALYZE'). More...
|
| |
| virtual void | SetOverrideProfiler (const IteratorProfiler *profiler) |
| |
| virtual RowIterator * | real_iterator () |
| | If this iterator is wrapping a different iterator (e.g. More...
|
| |
| virtual const RowIterator * | real_iterator () const |
| |
◆ GroupIndexSkipScanIterator()
| GroupIndexSkipScanIterator::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 |
|
) |
| |
◆ ~GroupIndexSkipScanIterator()
| GroupIndexSkipScanIterator::~GroupIndexSkipScanIterator |
( |
| ) |
|
|
override |
◆ append_next_infix()
| bool GroupIndexSkipScanIterator::append_next_infix |
( |
| ) |
|
|
private |
◆ get_next_prefix()
| int GroupIndexSkipScanIterator::get_next_prefix |
( |
uint |
prefix_length, |
|
|
uint |
group_key_parts, |
|
|
uchar * |
cur_prefix |
|
) |
| |
|
private |
◆ Init()
| bool GroupIndexSkipScanIterator::Init |
( |
| ) |
|
|
overridevirtual |
Initialize or reinitialize the iterator.
You must always call Init() before trying a Read() (but Init() does not imply Read()).
You can call Init() multiple times; subsequent calls will rewind the iterator (or reposition it, depending on whether the iterator takes in e.g. a Index_lookup) and allow you to read the records anew.
Implements RowIterator.
◆ is_agg_distinct()
| bool GroupIndexSkipScanIterator::is_agg_distinct |
( |
| ) |
const |
|
inline |
◆ next_max()
| int GroupIndexSkipScanIterator::next_max |
( |
| ) |
|
|
private |
◆ next_max_in_range()
| int GroupIndexSkipScanIterator::next_max_in_range |
( |
| ) |
|
|
private |
◆ next_min()
| int GroupIndexSkipScanIterator::next_min |
( |
| ) |
|
|
private |
◆ next_min_in_range()
| int GroupIndexSkipScanIterator::next_min_in_range |
( |
| ) |
|
|
private |
◆ next_prefix()
| int GroupIndexSkipScanIterator::next_prefix |
( |
| ) |
|
|
private |
◆ Read()
| int GroupIndexSkipScanIterator::Read |
( |
| ) |
|
|
overridevirtual |
Read a single row.
The row data is not actually returned from the function; it is put in the table's (or tables', in case of a join) record buffer, ie., table->records[0].
- Return values
-
| 0 | OK |
| -1 | End of records |
| 1 | Error |
Implements RowIterator.
◆ reset_group()
| void GroupIndexSkipScanIterator::reset_group |
( |
| ) |
|
|
private |
◆ update_max_result()
| void GroupIndexSkipScanIterator::update_max_result |
( |
bool * |
reset | ) |
|
|
private |
◆ update_min_result()
| void GroupIndexSkipScanIterator::update_min_result |
( |
bool * |
reset | ) |
|
|
private |
◆ cur_infix_range_position
◆ cur_prefix_range_idx
| unsigned GroupIndexSkipScanIterator::cur_prefix_range_idx |
|
private |
◆ group_key_parts
| uint GroupIndexSkipScanIterator::group_key_parts |
|
private |
◆ group_prefix
| uchar* GroupIndexSkipScanIterator::group_prefix |
|
private |
◆ group_prefix_len
| const uint GroupIndexSkipScanIterator::group_prefix_len |
|
private |
◆ have_agg_distinct
| bool GroupIndexSkipScanIterator::have_agg_distinct |
|
private |
◆ index
| uint GroupIndexSkipScanIterator::index |
|
private |
◆ index_info
| KEY* GroupIndexSkipScanIterator::index_info |
|
private |
◆ is_index_scan
| bool GroupIndexSkipScanIterator::is_index_scan |
|
private |
◆ key_infix_len
| uint GroupIndexSkipScanIterator::key_infix_len |
|
private |
◆ key_infix_ranges
◆ last_prefix
| uchar* GroupIndexSkipScanIterator::last_prefix |
|
private |
◆ last_prefix_range
| QUICK_RANGE* GroupIndexSkipScanIterator::last_prefix_range |
|
private |
◆ m_seen_eof
| bool GroupIndexSkipScanIterator::m_seen_eof |
|
private |
◆ max_functions
◆ max_used_key_length
| uint GroupIndexSkipScanIterator::max_used_key_length |
|
private |
◆ mem_root
| MEM_ROOT* GroupIndexSkipScanIterator::mem_root |
|
private |
◆ min_functions
◆ min_max_arg_len
| uint GroupIndexSkipScanIterator::min_max_arg_len |
|
private |
◆ min_max_arg_part
◆ min_max_keypart_asc
| bool GroupIndexSkipScanIterator::min_max_keypart_asc |
|
private |
◆ min_max_ranges
| const Quick_ranges* GroupIndexSkipScanIterator::min_max_ranges |
|
private |
◆ prefix_ranges
| const Quick_ranges* GroupIndexSkipScanIterator::prefix_ranges |
|
private |
◆ real_key_parts
| uint GroupIndexSkipScanIterator::real_key_parts |
|
private |
◆ real_prefix_len
| uint GroupIndexSkipScanIterator::real_prefix_len |
|
private |
◆ seen_all_infix_ranges
| bool GroupIndexSkipScanIterator::seen_all_infix_ranges |
|
private |
◆ seen_first_key
| bool GroupIndexSkipScanIterator::seen_first_key |
|
private |
The documentation for this class was generated from the following files: