1#ifndef SQL_ITERATORS_ROW_ITERATOR_H_
2#define SQL_ITERATORS_ROW_ITERATOR_H_
128 }
else if (
error == -1) {
An iterator that switches between another iterator (typically a RefIterator or similar) and a TableSc...
Definition: ref_row_iterators.h:263
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:928
Profiling data for an iterator, needed by 'EXPLAIN ANALYZE'.
Definition: row_iterator.h:41
virtual uint64_t GetNumRows() const =0
The number of rows fetched.
virtual uint64_t GetNumInitCalls() const =0
The number of loops (i.e number of iterator->Init() calls.
virtual ~IteratorProfiler()=default
virtual double GetLastRowMs() const =0
Time (in ms) spent fetching the remaining rows.
virtual double GetFirstRowMs() const =0
Time (in ms) spent fetching the first row.
Definition: sql_optimizer.h:133
A context for reading through a single table using a chosen access method: index read,...
Definition: row_iterator.h:82
THD * thd() const
Definition: row_iterator.h:255
uint64_t num_rows() const
Returns the number of times Read() has returned a row successfully from this iterator.
Definition: row_iterator.h:248
virtual const IteratorProfiler * GetProfiler() const
Get profiling data for this iterator (for 'EXPLAIN ANALYZE').
Definition: row_iterator.h:172
virtual void SetNullRowFlag(bool is_null_row)=0
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
virtual void StartPSIBatchMode()
Start performance schema batch mode, if supported (otherwise ignored).
Definition: row_iterator.h:222
virtual void SetOverrideProfiler(const IteratorProfiler *profiler)
Definition: row_iterator.h:182
bool Init()
Initialize or reinitialize the iterator.
Definition: row_iterator.h:105
uint64_t m_num_rows
Definition: row_iterator.h:263
uint64_t num_init_calls() const
Returns the number of times Init() has been called on this iterator.
Definition: row_iterator.h:244
virtual void UnlockRow()=0
RowIterator(const RowIterator &)=delete
uint64_t num_full_reads() const
Returns the number of times the iterator has been fully read.
Definition: row_iterator.h:252
virtual ~RowIterator()=default
virtual const RowIterator * real_iterator() const
Definition: row_iterator.h:241
RowIterator(RowIterator &&)=default
virtual void EndPSIBatchModeIfStarted()
Ends performance schema batch mode, if started.
Definition: row_iterator.h:233
RowIterator(THD *thd)
Definition: row_iterator.h:86
uint64_t m_num_init_calls
Definition: row_iterator.h:262
int Read()
Read a single row.
Definition: row_iterator.h:124
THD *const m_thd
Definition: row_iterator.h:261
virtual RowIterator * real_iterator()
If this iterator is wrapping a different iterator (e.g.
Definition: row_iterator.h:240
uint64_t m_num_full_reads
Definition: row_iterator.h:264
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
void UnlockRow() override
The default implementation of unlock-row method of RowIterator, used in all access methods except EQR...
Definition: basic_row_iterators.cc:199
int HandleError(int error)
Definition: basic_row_iterators.cc:209
void EndPSIBatchModeIfStarted() override
Ends performance schema batch mode, if started.
Definition: basic_row_iterators.cc:232
void PrintError(int error)
Definition: basic_row_iterators.cc:224
TABLE * table() const
Definition: row_iterator.h:279
TableRowIterator(THD *thd, TABLE *table)
Definition: row_iterator.h:269
void StartPSIBatchMode() override
Start performance schema batch mode, if supported (otherwise ignored).
Definition: basic_row_iterators.cc:228
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:201
TABLE *const m_table
Definition: row_iterator.h:282