1#ifndef SQL_ITERATORS_WINDOW_ITERATORS_H_
2#define SQL_ITERATORS_WINDOW_ITERATORS_H_
104 m_source->SetNullRowFlag(is_null_row);
109 m_source->EndPSIBatchModeIfStarted();
210 bool Init()
override;
215 m_source->SetNullRowFlag(is_null_row);
220 m_source->EndPSIBatchModeIfStarted();
BufferingWindowIterator is like WindowIterator, but deals with window functions that need to buffer r...
Definition: window_iterators.h:203
void UnlockRow() override
Definition: window_iterators.h:223
JOIN * m_join
The join we are a part of.
Definition: window_iterators.h:240
bool Init() override
Initialize or reinitialize the iterator.
Definition: window_iterators.cc:1569
Temp_table_param * m_temp_table_param
Parameters for the temporary table we are outputting to.
Definition: window_iterators.h:234
int m_input_slice
The slice we will be using when reading rows.
Definition: window_iterators.h:243
int Read() override
Read a single row.
Definition: window_iterators.cc:1585
int ReadBufferedRow(bool new_partition_or_eof)
Definition: window_iterators.cc:1681
void StartPSIBatchMode() override
Start performance schema batch mode, if supported (otherwise ignored).
Definition: window_iterators.h:218
bool m_eof
Whether we have seen the last input row.
Definition: window_iterators.h:258
int m_output_slice
The slice we will be using when outputting rows.
Definition: window_iterators.h:246
bool m_possibly_buffered_rows
If true, we may have more buffered rows to process that need to be checked for before reading more ro...
Definition: window_iterators.h:250
unique_ptr_destroy_only< RowIterator > const m_source
The iterator we are reading from.
Definition: window_iterators.h:231
Window * m_window
The window function itself.
Definition: window_iterators.h:237
void EndPSIBatchModeIfStarted() override
Ends performance schema batch mode, if started.
Definition: window_iterators.h:219
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: window_iterators.h:214
bool m_last_input_row_started_new_partition
Whether the last input row started a new partition, and was tucked away to finalize the previous part...
Definition: window_iterators.h:255
BufferingWindowIterator(THD *thd, unique_ptr_destroy_only< RowIterator > source, Temp_table_param *temp_table_param, JOIN *join, int output_slice)
Definition: window_iterators.cc:1557
Definition: sql_optimizer.h:132
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
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
Object containing parameters used when creating and using temporary tables.
Definition: temp_table_param.h:94
Definition: window_iterators.h:93
int m_output_slice
The slice we will be using when outputting rows.
Definition: window_iterators.h:133
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: window_iterators.h:103
void StartPSIBatchMode() override
Start performance schema batch mode, if supported (otherwise ignored).
Definition: window_iterators.h:107
JOIN * m_join
The join we are a part of.
Definition: window_iterators.h:127
WindowIterator(THD *thd, unique_ptr_destroy_only< RowIterator > source, Temp_table_param *temp_table_param, JOIN *join, int output_slice)
Definition: window_iterators.cc:1509
unique_ptr_destroy_only< RowIterator > const m_source
The iterator we are reading from.
Definition: window_iterators.h:118
bool Init() override
Initialize or reinitialize the iterator.
Definition: window_iterators.cc:1522
void EndPSIBatchModeIfStarted() override
Ends performance schema batch mode, if started.
Definition: window_iterators.h:108
Temp_table_param * m_temp_table_param
Parameters for the temporary table we are outputting to.
Definition: window_iterators.h:121
int Read() override
Read a single row.
Definition: window_iterators.cc:1534
void UnlockRow() override
Definition: window_iterators.h:112
int m_input_slice
The slice we will be using when reading rows.
Definition: window_iterators.h:130
Window * m_window
The window function itself.
Definition: window_iterators.h:124
Represents the (explicit) window of a SQL 2003 section 7.11 <window clause>, or the implicit (inlined...
Definition: window.h:104
This file follows Google coding style, except for the name MEM_ROOT (which is kept for historical rea...
std::unique_ptr< T, Destroy_only< T > > unique_ptr_destroy_only
std::unique_ptr, but only destroying.
Definition: my_alloc.h:488
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
repeated Source source
Definition: replication_asynchronous_connection_failover.proto:41