24#ifndef SQL_RANGE_OPTIMIZER_REVERSE_INDEX_RANGE_SCAN_H_
25#define SQL_RANGE_OPTIMIZER_REVERSE_INDEX_RANGE_SCAN_H_
45 double expected_rows,
int index,
46 MEM_ROOT *return_mem_root, uint mrr_flags,
48 bool using_extended_key_parts);
A wrapper class which provides array bounds checking.
Definition: sql_array.h:47
Definition: range_optimizer.h:69
An iterator much like IndexRangeScanIterator, but it scans in the reverse order.
Definition: reverse_index_range_scan.h:42
~ReverseIndexRangeScanIterator() override
Definition: reverse_index_range_scan.cc:65
KEY_PART_INFO * key_part_info
Definition: reverse_index_range_scan.h:76
uint m_mrr_flags
Definition: reverse_index_range_scan.h:66
int cmp_prev(QUICK_RANGE *range)
Definition: reverse_index_range_scan.cc:272
bool m_using_extended_key_parts
Definition: reverse_index_range_scan.h:80
static range_seq_t quick_range_rev_seq_init(void *init_param, uint, uint)
Definition: reverse_index_range_scan.cc:282
QUICK_RANGE * last_range
Definition: reverse_index_range_scan.h:72
MEM_ROOT * mem_root
Definition: reverse_index_range_scan.h:60
Bounds_checked_array< QUICK_RANGE * > ranges
Definition: reverse_index_range_scan.h:68
int Read() override
Read a single row.
Definition: reverse_index_range_scan.cc:123
const uint m_index
Definition: reverse_index_range_scan.h:56
ha_rows m_expected_rows
Definition: reverse_index_range_scan.h:57
bool inited
Definition: reverse_index_range_scan.h:61
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:35
int current_range_idx
Definition: reverse_index_range_scan.h:73
QUICK_RANGE_SEQ_CTX qr_traversal_ctx
Definition: reverse_index_range_scan.h:70
bool range_reads_after_key(QUICK_RANGE *range)
Definition: reverse_index_range_scan.cc:259
MY_BITMAP column_bitmap
Definition: reverse_index_range_scan.h:64
ha_rows * m_examined_rows
Definition: reverse_index_range_scan.h:58
bool Init() override
Initialize or reinitialize the iterator.
Definition: reverse_index_range_scan.cc:71
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
TABLE * table() const
Definition: row_iterator.h:246
my_off_t ha_rows
Definition: my_base.h:1141
void * range_seq_t
Definition: handler.h:3810
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
Definition: my_bitmap.h:43
Definition: index_range_scan.h:51
Definition: gen_lex_token.cc:149