code: def exec(self, *args, **kwargs):
      # Traverse optimized physical plan, which is commonly supported.
      # Logical plan can be also printed by passing explainable_opr
      # attribute of the node, but is not done for now.
      plan_str = self._exec(self._node.children[0], 0)
      yield Batch(pd.DataFrame([plan_str]))
  
file_path: evadb/evadb/executor/explain_executor.py
imports: import pandas
  from evadb.database import EvaDBDatabase
  from evadb.executor.abstract_executor import AbstractExecutor
  from evadb.models.storage.batch import Batch
  from evadb.plan_nodes.abstract_plan import AbstractPlan
  from evadb.plan_nodes.explain_plan import ExplainPlan
label_desc: Use image node_id 2 for calling the ExplainExecutor obj's underlying member method code with example usage: obj.exec() without return types