class_docstr: Sort the frames which satisfy the condition
  
  Arguments:
      node (AbstractPlan): The OrderBy Plan
code: def exec(self, *args, **kwargs) -> Iterator[Batch]:
      child_executor = self.children[0]
      aggregated_batch_list = []
  
      # aggregates the batches into one large batch
      for batch in child_executor.exec(**kwargs):
          self.batch_sizes.append(len(batch))
          aggregated_batch_list.append(batch)
      aggregated_batch = Batch.concat(aggregated_batch_list, copy=False)
  
      # nothing to order by
      if not len(aggregated_batch):
          return
  
      # Column can be a functional expression, so if it
      # is not in columns, it needs to be re-evaluated.
      merge_batch_list = [aggregated_batch]
      for col in self._columns:
          col_name_list = self._extract_column_name(col)
          for col_name in col_name_list:
              if col_name not in aggregated_batch.columns:
                  batch = col.evaluate(aggregated_batch)
                  merge_batch_list.append(batch)
      if len(merge_batch_list) > 1:
          aggregated_batch = Batch.merge_column_wise(merge_batch_list)
  
      # sorts the batch
      try:
          aggregated_batch.sort_orderby(
              by=self.extract_column_names(),
              sort_type=self.extract_sort_types(),
          )
      except KeyError:
          # raise ExecutorError(str(e))
          pass
  
      # split the aggregated batch into smaller ones based
      #  on self.batch_sizes which holds the input batches sizes
      index = 0
      for i in self.batch_sizes:
          batch = aggregated_batch[index : index + i]
          batch.reset_index()
          index += i
          yield batch
  
file_path: evadb/evadb/executor/orderby_executor.py
imports: from typing import Iterator
  from evadb.database import EvaDBDatabase
  from evadb.executor.abstract_executor import AbstractExecutor
  from evadb.executor.executor_utils import ExecutorError
  from evadb.expression.function_expression import FunctionExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.models.storage.batch import Batch
  from evadb.parser.types import ParserOrderBySortType
  from evadb.plan_nodes.orderby_plan import OrderByPlan
label_desc: Use image node_id 5 for calling the OrderByExecutor obj's underlying member method code with example usage: obj.exec() without return types