23#ifndef SQL_RANGE_OPTIMIZER_REVERSE_INDEX_RANGE_SCAN_H_
24#define SQL_RANGE_OPTIMIZER_REVERSE_INDEX_RANGE_SCAN_H_
44 double expected_rows,
int index,
45 MEM_ROOT *return_mem_root, uint mrr_flags,
47 bool using_extended_key_parts);
A wrapper class which provides array bounds checking.
Definition: sql_array.h:46
Definition: range_optimizer.h:68
An iterator much like IndexRangeScanIterator, but it scans in the reverse order.
Definition: reverse_index_range_scan.h:41
~ReverseIndexRangeScanIterator() override
Definition: reverse_index_range_scan.cc:64
KEY_PART_INFO * key_part_info
Definition: reverse_index_range_scan.h:75
uint m_mrr_flags
Definition: reverse_index_range_scan.h:65
int cmp_prev(QUICK_RANGE *range)
Definition: reverse_index_range_scan.cc:271
bool m_using_extended_key_parts
Definition: reverse_index_range_scan.h:79
static range_seq_t quick_range_rev_seq_init(void *init_param, uint, uint)
Definition: reverse_index_range_scan.cc:281
QUICK_RANGE * last_range
Definition: reverse_index_range_scan.h:71
MEM_ROOT * mem_root
Definition: reverse_index_range_scan.h:59
Bounds_checked_array< QUICK_RANGE * > ranges
Definition: reverse_index_range_scan.h:67
int Read() override
Read a single row.
Definition: reverse_index_range_scan.cc:122
const uint m_index
Definition: reverse_index_range_scan.h:55
ha_rows m_expected_rows
Definition: reverse_index_range_scan.h:56
bool inited
Definition: reverse_index_range_scan.h:60
ReverseIndexRangeScanIterator(THD *thd, TABLE *table, ha_rows *examined_rows, double expected_rows, int index, MEM_ROOT *return_mem_root, uint mrr_flags, Bounds_checked_array< QUICK_RANGE * > ranges, bool using_extended_key_parts)
Definition: reverse_index_range_scan.cc:34
int current_range_idx
Definition: reverse_index_range_scan.h:72
QUICK_RANGE_SEQ_CTX qr_traversal_ctx
Definition: reverse_index_range_scan.h:69
bool range_reads_after_key(QUICK_RANGE *range)
Definition: reverse_index_range_scan.cc:258
MY_BITMAP column_bitmap
Definition: reverse_index_range_scan.h:63
ha_rows * m_examined_rows
Definition: reverse_index_range_scan.h:57
bool Init() override
Initialize or reinitialize the iterator.
Definition: reverse_index_range_scan.cc:70
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:33
Definition: row_iterator.h:233
TABLE * table() const
Definition: row_iterator.h:245
my_off_t ha_rows
Definition: my_base.h:1139
void * range_seq_t
Definition: handler.h:3697
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: index_range_scan.h:50
Definition: gen_lex_token.cc:148