1#ifndef SQL_ITERATORS_BASIC_ROW_ITERATORS_H_
2#define SQL_ITERATORS_BASIC_ROW_ITERATORS_H_
75template <
bool Reverse>
91 double expected_rows,
ha_rows *examined_rows);
125template <
bool Packed_addon_fields>
135 bool Init()
override;
173 bool ignore_not_found_rows,
bool has_null_flags,
176 bool Init()
override;
202template <
bool Packed_addon_fields>
211 bool Init()
override {
return false; }
245 IO_CACHE *tempfile,
bool ignore_not_found_rows,
246 bool has_null_flags,
ha_rows *examined_rows);
249 bool Init()
override;
295 assert(!is_null_row);
347 bool Init()
override {
return false; }
349 int Read()
override {
return -1; }
421 bool Init()
override;
481 bool Init()
override;
Definition: basic_row_iterators.h:271
int Read() override
Read a single row.
Definition: basic_row_iterators.h:282
void UnlockRow() override
Definition: basic_row_iterators.h:298
bool m_has_row
Definition: basic_row_iterators.h:301
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:302
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.h:277
FakeSingleRowIterator(THD *thd, ha_rows *examined_rows)
Definition: basic_row_iterators.h:274
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...
Definition: basic_row_iterators.h:294
A class wrapping misc buffers used for sorting.
Definition: sql_sort.h:188
FollowTailIterator is a special version of TableScanIterator that is used as part of WITH RECURSIVE q...
Definition: basic_row_iterators.h:414
bool RepositionCursorAfterSpillToDisk()
Signal to the iterator that the underlying table was closed and replaced with an InnoDB table with th...
Definition: basic_row_iterators.cc:382
FollowTailIterator(THD *thd, TABLE *table, double expected_rows, ha_rows *examined_rows)
Definition: basic_row_iterators.cc:243
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:448
unsigned m_recursive_iteration_count
Definition: basic_row_iterators.h:451
const double m_expected_rows
Definition: basic_row_iterators.h:447
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.cc:257
bool m_inited
Definition: basic_row_iterators.h:445
uchar *const m_record
Definition: basic_row_iterators.h:446
ha_rows * m_stored_rows
Definition: basic_row_iterators.h:454
ha_rows m_read_rows
Definition: basic_row_iterators.h:449
int Read() override
Read a single row.
Definition: basic_row_iterators.cc:307
void set_stored_rows_pointer(ha_rows *stored_rows)
Signal where we can expect to find the number of generated rows for this materialization (this points...
Definition: basic_row_iterators.h:431
~FollowTailIterator() override
Definition: basic_row_iterators.cc:251
ha_rows m_end_of_current_iteration
Definition: basic_row_iterators.h:450
Perform a full index scan along an index.
Definition: basic_row_iterators.h:76
const int m_idx
Definition: basic_row_iterators.h:99
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:102
int Read() override
Read a single row.
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.cc:76
IndexScanIterator(THD *thd, TABLE *table, int idx, bool use_order, double expected_rows, ha_rows *examined_rows)
Definition: basic_row_iterators.cc:57
uchar *const m_record
Definition: basic_row_iterators.h:98
~IndexScanIterator() override
Definition: basic_row_iterators.cc:69
const bool m_use_order
Definition: basic_row_iterators.h:100
const double m_expected_rows
Definition: basic_row_iterators.h:101
bool m_first
Definition: basic_row_iterators.h:103
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:802
Definition: sql_optimizer.h:125
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:421
A context for reading through a single table using a chosen access method: index read,...
Definition: row_iterator.h:81
THD * thd() const
Definition: row_iterator.h:227
Fetch the record IDs from a memory buffer, but the records themselves from the table on disk.
Definition: basic_row_iterators.h:162
uchar * m_cache_end
Definition: basic_row_iterators.h:189
bool m_has_null_flags
Definition: basic_row_iterators.h:191
SortBufferIndirectIterator(THD *thd, Mem_root_array< TABLE * > tables, Sort_result *sort_result, bool ignore_not_found_rows, bool has_null_flags, ha_rows *examined_rows)
Definition: sorting_iterator.cc:309
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:188
bool m_ignore_not_found_rows
Definition: basic_row_iterators.h:190
void UnlockRow() override
Definition: basic_row_iterators.h:182
bool Init() override
Initialize or reinitialize the iterator.
Definition: sorting_iterator.cc:329
Mem_root_array< TABLE * > m_tables
Definition: basic_row_iterators.h:186
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:178
uint m_sum_ref_length
Definition: basic_row_iterators.h:187
Sort_result *const m_sort_result
Definition: basic_row_iterators.h:185
uchar * m_cache_pos
Definition: basic_row_iterators.h:189
~SortBufferIndirectIterator() override
Definition: sorting_iterator.cc:319
int Read() override
Read a single row.
Definition: sorting_iterator.cc:362
Fetch the records from a memory buffer.
Definition: basic_row_iterators.h:126
void UnlockRow() override
Definition: basic_row_iterators.h:137
bool Init() override
Initialize or reinitialize the iterator.
Definition: sorting_iterator.cc:271
unsigned m_unpack_counter
Definition: basic_row_iterators.h:147
Sort_result *const m_sort_result
Definition: basic_row_iterators.h:146
~SortBufferIterator() override
Definition: sorting_iterator.cc:265
int Read() override
Read a result set record from a buffer after sorting.
Definition: sorting_iterator.cc:295
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:138
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:148
SortBufferIterator(THD *thd, Mem_root_array< TABLE * > tables, Filesort_info *sort, Sort_result *sort_result, ha_rows *examined_rows)
Definition: sorting_iterator.cc:255
Mem_root_array< TABLE * > m_tables
Definition: basic_row_iterators.h:149
Filesort_info *const m_sort
Definition: basic_row_iterators.h:145
Fetch the record IDs from a temporary file, then the records themselves from the table on disk.
Definition: basic_row_iterators.h:237
int Read() override
Read a single row.
Definition: sorting_iterator.cc:156
IO_CACHE * m_io_cache
Definition: basic_row_iterators.h:258
~SortFileIndirectIterator() override
Definition: sorting_iterator.cc:96
Mem_root_array< TABLE * > m_tables
Definition: basic_row_iterators.h:260
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:259
bool m_has_null_flags
Definition: basic_row_iterators.h:263
bool m_ignore_not_found_rows
Definition: basic_row_iterators.h:262
SortFileIndirectIterator(THD *thd, Mem_root_array< TABLE * > tables, IO_CACHE *tempfile, bool ignore_not_found_rows, bool has_null_flags, ha_rows *examined_rows)
Definition: sorting_iterator.cc:86
void UnlockRow() override
Definition: basic_row_iterators.h:255
uint m_sum_ref_length
Definition: basic_row_iterators.h:265
bool Init() override
Initialize or reinitialize the iterator.
Definition: sorting_iterator.cc:105
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:251
uchar * m_ref_pos
Definition: basic_row_iterators.h:261
Fetch the records from a tempoary file.
Definition: basic_row_iterators.h:203
int Read() override
Read a result set record from a temporary file after sorting.
Definition: sorting_iterator.cc:228
const uint m_buf_length
Definition: basic_row_iterators.h:221
void UnlockRow() override
Definition: basic_row_iterators.h:213
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:225
uchar *const m_rec_buf
Definition: basic_row_iterators.h:220
IO_CACHE *const m_io_cache
Definition: basic_row_iterators.h:223
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:214
Filesort_info *const m_sort
Definition: basic_row_iterators.h:224
SortFileIterator(THD *thd, Mem_root_array< TABLE * > tables, IO_CACHE *tempfile, Filesort_info *sort, ha_rows *examined_rows)
Definition: sorting_iterator.cc:195
Mem_root_array< TABLE * > m_tables
Definition: basic_row_iterators.h:222
~SortFileIterator() override
Definition: sorting_iterator.cc:207
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.h:211
Definition: sql_sort.h:155
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:922
Definition: row_iterator.h:233
TABLE * table() const
Definition: row_iterator.h:245
Scan a table from beginning to end.
Definition: basic_row_iterators.h:55
const double m_expected_rows
Definition: basic_row_iterators.h:70
uchar *const m_record
Definition: basic_row_iterators.h:69
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:71
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.cc:190
TableScanIterator(THD *thd, TABLE *table, double expected_rows, ha_rows *examined_rows)
Definition: basic_row_iterators.cc:176
~TableScanIterator() override
Definition: basic_row_iterators.cc:184
int Read() override
Read a single row.
Definition: basic_row_iterators.cc:212
TableValueConstructor is the iterator for the table value constructor case of a query_primary (i....
Definition: basic_row_iterators.h:474
const mem_root_deque< mem_root_deque< Item * > * > & m_row_value_list
Contains the row values that are part of a VALUES clause.
Definition: basic_row_iterators.h:494
mem_root_deque< mem_root_deque< Item * > * >::const_iterator m_row_it
Definition: basic_row_iterators.h:495
int Read() override
Read a single row.
Definition: ref_row_iterators.cc:948
bool Init() override
Initialize or reinitialize the iterator.
Definition: ref_row_iterators.cc:943
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:484
mem_root_deque< Item * > *const m_output_refs
References to the row we currently want to output.
Definition: basic_row_iterators.h:500
TableValueConstructorIterator(THD *thd, ha_rows *examined_rows, const mem_root_deque< mem_root_deque< Item * > * > &row_value_list, mem_root_deque< Item * > *join_fields)
Definition: ref_row_iterators.cc:932
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:489
void UnlockRow() override
Definition: basic_row_iterators.h:486
An iterator for unqualified COUNT(*) (ie., no WHERE, no join conditions, etc.), taking a special fast...
Definition: basic_row_iterators.h:312
int Read() override
Read a single row.
Definition: ref_row_iterators.cc:874
void UnlockRow() override
Definition: basic_row_iterators.h:326
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.h:317
UnqualifiedCountIterator(THD *thd, JOIN *join)
Definition: basic_row_iterators.h:314
bool m_has_row
Definition: basic_row_iterators.h:329
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:324
JOIN *const m_join
Definition: basic_row_iterators.h:330
Like ZeroRowsIterator, but produces a single output row, since there are aggregation functions presen...
Definition: basic_row_iterators.h:367
int Read() override
Read a single row.
Definition: ref_row_iterators.cc:903
JOIN *const m_join
Definition: basic_row_iterators.h:386
bool m_has_row
Definition: basic_row_iterators.h:385
ha_rows *const m_examined_rows
Definition: basic_row_iterators.h:387
ZeroRowsAggregatedIterator(THD *thd, JOIN *join, ha_rows *examined_rows)
Definition: basic_row_iterators.h:370
void UnlockRow() override
Definition: basic_row_iterators.h:382
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.h:373
void SetNullRowFlag(bool) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: basic_row_iterators.h:380
A simple iterator that takes no input and produces zero output rows.
Definition: basic_row_iterators.h:343
bool Init() override
Initialize or reinitialize the iterator.
Definition: basic_row_iterators.h:347
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...
Definition: basic_row_iterators.cc:232
int Read() override
Read a single row.
Definition: basic_row_iterators.h:349
void UnlockRow() override
Definition: basic_row_iterators.h:353
ZeroRowsIterator(THD *thd, Mem_root_array< TABLE * > pruned_tables)
Definition: basic_row_iterators.cc:228
const Mem_root_array< TABLE * > m_pruned_tables
Definition: basic_row_iterators.h:356
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:109
This file includes constants used by all storage engines.
my_off_t ha_rows
Definition: my_base.h:1139
Some integer typedefs for easier portability.
unsigned char uchar
Definition: my_inttypes.h:51
std::string join(Container cont, const std::string &delim)
join elements of an container into a string separated by a delimiter.
Definition: string.h:150
unsigned int uint
Definition: uca-dump.cc:29