code: def get_columns_in_predicate(
      predicate: AbstractExpression,
  ) -> Set[str]:
      """Get columns accessed in the predicate
  
      Args:
          predicate (AbstractExpression): input predicate
  
      Returns:
          Set[str]: list of column aliases used in the predicate
      """
      if isinstance(predicate, TupleValueExpression):
          return set([predicate.col_alias])
      cols = set()
      for child in predicate.children:
          child_cols = get_columns_in_predicate(child)
          if len(child_cols):
              cols.update(child_cols)
      return cols
  
file_path: evadb/evadb/expression/expression_utils.py
imports: from typing import List, Set
  from evadb.expression.abstract_expression import AbstractExpression, ExpressionType
  from evadb.expression.comparison_expression import ComparisonExpression
  from evadb.expression.constant_value_expression import ConstantValueExpression
  from evadb.expression.logical_expression import LogicalExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
label_desc: Use image node_id 5 for calling a global function with example usage: get_columns_in_predicate(predicate) and returns: cols, set