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: This method is implemented by every executor.
  Contains logic for that executor;
  For retrieval based executor : It fetches frame batches from
  child nodes and emits it to parent node.
docstr_tok: ["This","method","is","implemented","by","every","executor",".","Contains","logic","for","that","executor",";","For","retrieval","based","executor",":","It","fetches","frame","batches","from","child","nodes","and","emits","it","to","parent","node","."]
code: def exec(self, *args, **kwargs) -> Iterable[Batch]:
      """
      This method is implemented by every executor.
      Contains logic for that executor;
      For retrieval based executor : It fetches frame batches from
      child nodes and emits it to parent 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 8 for calling the AbstractExecutor obj's underlying member method code with example usage: obj.exec() without return types