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 nodes in execution tree in
  breadth-first search (BFS) traversal order.
  
  Returns:
      the generator object.
docstr_tok: ["Returns","a","generator","which","visits","all","nodes","in","execution","tree","in","breadth-first","search","(","BFS",")","traversal","order",".","Returns",":","the","generator","object","."]
code: def bfs(self):
      """Returns a generator which visits all nodes in execution tree in
      breadth-first search (BFS) traversal order.
  
      Returns:
          the generator object.
      """
      queue = deque([self])
      while queue:
          node = queue.popleft()
          yield node
          for child in node.children:
              queue.append(child)
  
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 10 for calling the AbstractExecutor obj's underlying member method code with example usage: obj.bfs() without return types