class_docstr: Used for building Physical Plan from Logical Plan.
class_docstr_tok: ["Used","for","building","Physical","Plan","from","Logical","Plan","."]
code: def execute_task_stack(self, task_stack: OptimizerTaskStack):
      while not task_stack.empty():
          task = task_stack.pop()
          task.execute()
  
file_path: evadb/evadb/optimizer/plan_generator.py
imports: from evadb.database import EvaDBDatabase
  from evadb.optimizer.cost_model import CostModel
  from evadb.optimizer.operators import Operator
  from evadb.optimizer.optimizer_context import OptimizerContext
  from evadb.optimizer.optimizer_task_stack import OptimizerTaskStack
  from evadb.optimizer.optimizer_tasks import BottomUpRewrite, OptimizeGroup, TopDownRewrite
  from evadb.optimizer.property import PropertyType
  from evadb.optimizer.rules.rules_manager import RulesManager
label_desc: Use image node_id 2 for calling the PlanGenerator obj's underlying member method code with example usage: obj.execute_task_stack(task_stack) without return types