MySQL 8.0.39
Source Code Documentation
|
Classes | |
struct | QueryBlock |
A query block to be materialized by MaterializeIterator. More... | |
Functions | |
RowIterator * | CreateIterator (THD *thd, Mem_root_array< materialize_iterator::QueryBlock > query_blocks_to_materialize, const MaterializePathParameters *path_params, unique_ptr_destroy_only< RowIterator > table_iterator, JOIN *join) |
Create an iterator that materializes a set of row into a temporary table and sets up a (pre-existing) iterator to access that. More... | |
RowIterator * materialize_iterator::CreateIterator | ( | THD * | thd, |
Mem_root_array< materialize_iterator::QueryBlock > | query_blocks_to_materialize, | ||
const MaterializePathParameters * | path_params, | ||
unique_ptr_destroy_only< RowIterator > | table_iterator, | ||
JOIN * | join | ||
) |
Create an iterator that materializes a set of row into a temporary table and sets up a (pre-existing) iterator to access that.
thd | Thread handler. |
query_blocks_to_materialize | List of query blocks to materialize. |
path_params | MaterializePath settings. |
table_iterator | Iterator used for accessing the temporary table after materialization. |
join | When materializing within the same JOIN (e.g., into a temporary table before sorting), as opposed to a derived table or a CTE, we may need to change the slice on the join before returning rows from the result table. If so, join and ref_slice would need to be set, and query_blocks_to_materialize should contain only one member, with the same join. |