![]()  | 
  
    MySQL 8.4.7
    
   Source Code Documentation 
   | 
 
Classes | |
| struct | IteratorToBeCreated | 
Functions | |
| bool | ShouldEnableBatchMode (AccessPath *path) | 
| bool | FinalizeMaterializedSubqueries (THD *thd, JOIN *join, AccessPath *path) | 
| If the path is a FILTER path marked that subqueries are to be materialized, do so.  More... | |
| void | SetupJobsForChildren (MEM_ROOT *mem_root, AccessPath *child, JOIN *join, bool eligible_for_batch_mode, IteratorToBeCreated *job, Mem_root_array< IteratorToBeCreated > *todo) | 
| void | SetupJobsForChildren (MEM_ROOT *mem_root, AccessPath *outer, AccessPath *inner, JOIN *join, bool inner_eligible_for_batch_mode, IteratorToBeCreated *job, Mem_root_array< IteratorToBeCreated > *todo) | 
| bool anonymous_namespace{access_path.cc}::FinalizeMaterializedSubqueries | ( | THD * | thd, | 
| JOIN * | join, | ||
| AccessPath * | path | ||
| ) | 
If the path is a FILTER path marked that subqueries are to be materialized, do so.
If not, do nothing.
It is important that this is not called until the entire plan is ready; not just when planning a single query block. The reason is that a query block A with materializable subqueries may itself be part of a materializable subquery B, so if one calls this when planning A, the subqueries in A will irrevocably be materialized, even if that is not the optimal plan given B. Thus, this is done when creating iterators.
| void anonymous_namespace{access_path.cc}::SetupJobsForChildren | ( | MEM_ROOT * | mem_root, | 
| AccessPath * | child, | ||
| JOIN * | join, | ||
| bool | eligible_for_batch_mode, | ||
| IteratorToBeCreated * | job, | ||
| Mem_root_array< IteratorToBeCreated > * | todo | ||
| ) | 
| void anonymous_namespace{access_path.cc}::SetupJobsForChildren | ( | MEM_ROOT * | mem_root, | 
| AccessPath * | outer, | ||
| AccessPath * | inner, | ||
| JOIN * | join, | ||
| bool | inner_eligible_for_batch_mode, | ||
| IteratorToBeCreated * | job, | ||
| Mem_root_array< IteratorToBeCreated > * | todo | ||
| ) | 
| bool anonymous_namespace{access_path.cc}::ShouldEnableBatchMode | ( | AccessPath * | path | ) |