docstr: Returns a new Relation with an alias set.
  
  Args:
      alias (str): an alias name to be set for the Relation.
  
  Returns:
      EvaDBQuery: Aliased Relation.
  
  Examples:
      >>> relation = cursor.table("sample_table")
      >>> relation.alias('table')
docstr_tok: ["Returns","a","new","Relation","with","an","alias","set",".","Args",":","alias","(","str",")",":","an","alias","name","to","be","set","for","the","Relation",".","Returns",":","EvaDBQuery",":","Aliased","Relation",".","Examples",":",">",">",">","relation","=","cursor.table","(","``","sample_table","''",")",">",">",">","relation.alias","(","'table","'",")"]
code: def alias(self, alias: str) -> "EvaDBQuery":
      """Returns a new Relation with an alias set.
  
      Args:
          alias (str): an alias name to be set for the Relation.
  
      Returns:
          EvaDBQuery: Aliased Relation.
  
      Examples:
          >>> relation = cursor.table("sample_table")
          >>> relation.alias('table')
      """
      self._alias = Alias(alias)
  
imports: from typing import Union
  import pandas
  from evadb.database import EvaDBDatabase
  from evadb.interfaces.relational.utils import create_limit_expression, create_star_expression, handle_select_clause, sql_predicate_to_expresssion_tree, sql_string_to_expresssion_list, string_to_lateral_join, try_binding
  from evadb.models.storage.batch import Batch
  from evadb.parser.alias import Alias
  from evadb.parser.select_statement import SelectStatement
  from evadb.parser.statement import AbstractStatement
  from evadb.parser.table_ref import JoinNode, TableRef
  from evadb.parser.types import JoinType
  from evadb.parser.utils import parse_sql_orderby_expr
  from evadb.server.command_handler import execute_statement
label_desc: Use image node_id 2 for calling the EvaDBQuery obj's underlying member method code with example usage: obj.alias(alias) without return types