24#ifndef SQL_RANGE_OPTIMIZER_REVERSE_INDEX_RANGE_SCAN_H_ 
   25#define SQL_RANGE_OPTIMIZER_REVERSE_INDEX_RANGE_SCAN_H_ 
   45                                double expected_rows, uint 
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:48
 
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:66
 
KEY_PART_INFO * key_part_info
Definition: reverse_index_range_scan.h:77
 
uint m_mrr_flags
Definition: reverse_index_range_scan.h:67
 
int cmp_prev(QUICK_RANGE *range)
Definition: reverse_index_range_scan.cc:273
 
bool DoInit() override
Definition: reverse_index_range_scan.cc:72
 
bool m_using_extended_key_parts
Definition: reverse_index_range_scan.h:81
 
static range_seq_t quick_range_rev_seq_init(void *init_param, uint, uint)
Definition: reverse_index_range_scan.cc:284
 
QUICK_RANGE * last_range
Definition: reverse_index_range_scan.h:73
 
const double m_expected_rows
Definition: reverse_index_range_scan.h:58
 
MEM_ROOT * mem_root
Definition: reverse_index_range_scan.h:61
 
Bounds_checked_array< QUICK_RANGE * > ranges
Definition: reverse_index_range_scan.h:69
 
const uint m_index
Definition: reverse_index_range_scan.h:57
 
bool inited
Definition: reverse_index_range_scan.h:62
 
int current_range_idx
Definition: reverse_index_range_scan.h:74
 
QUICK_RANGE_SEQ_CTX qr_traversal_ctx
Definition: reverse_index_range_scan.h:71
 
bool range_reads_after_key(QUICK_RANGE *range)
Definition: reverse_index_range_scan.cc:260
 
bool m_multi_valued_index
Definition: reverse_index_range_scan.h:84
 
ReverseIndexRangeScanIterator(THD *thd, TABLE *table, ha_rows *examined_rows, double expected_rows, uint 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
 
MY_BITMAP column_bitmap
Definition: reverse_index_range_scan.h:65
 
ha_rows * m_examined_rows
Definition: reverse_index_range_scan.h:59
 
int DoRead() override
Definition: reverse_index_range_scan.cc:124
 
THD * thd() const
Definition: row_iterator.h:255
 
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:267
 
TABLE * table() const
Definition: row_iterator.h:279
 
my_off_t ha_rows
Definition: my_base.h:1217
 
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
 
void * range_seq_t
Definition: handler.h:3973
 
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