class_docstr: An abstract class for the executor engine
  Arguments:
      node (AbstractPlan): Plan node corresponding to this executor
class_docstr_tok: ["An","abstract","class","for","the","executor","engine","Arguments",":","node","(","AbstractPlan",")",":","Plan","node","corresponding","to","this","executor"]
docstr: Returns a generator which visits all the nodes in execution tree and yields one that matches the passed `execution_type`.
  
  Args:
      execution_type (Any): execution type to match with
  
  Returns:
      the generator object.
docstr_tok: ["Returns","a","generator","which","visits","all","the","nodes","in","execution","tree","and","yields","one","that","matches","the","passed","`","execution_type","`",".","Args",":","execution_type","(","Any",")",":","execution","type","to","match","with","Returns",":","the","generator","object","."]
code: def find_all(self, execution_type: Any):
      """Returns a generator which visits all the nodes in execution tree and yields one that matches the passed `execution_type`.
  
      Args:
          execution_type (Any): execution type to match with
  
      Returns:
          the generator object.
      """
  
      for node in self.bfs():
          if isinstance(node, execution_type):
              yield node
  
file_path: evadb/evadb/executor/abstract_executor.py
imports: from abc import ABC, abstractmethod
  from collections import deque
  from typing import TYPE_CHECKING, Any, Generator, Iterable, List, TypeVar
  from evadb.database import EvaDBDatabase
  from evadb.models.storage.batch import Batch
  from evadb.plan_nodes.abstract_plan import AbstractPlan
label_desc: Use image node_id 11 for calling the AbstractExecutor obj's underlying member method code with example usage: obj.find_all(execution_type) without return types