docstr: Projects a set of expressions and returns a new EvaDBQuery.
  
  Parameters:
      exprs (Union[str, List[str]]): The expression(s) to be selected. If '*' is provided, it expands to all columns in the current EvaDBQuery.
  
  Returns:
      EvaDBQuery: A EvaDBQuery with subset (or all) of columns.
  
  Examples:
      >>> relation = cursor.table("sample_table")
  
      Select all columns in the EvaDBQuery.
  
      >>> relation.select("*")
  
      Select all subset of columns in the EvaDBQuery.
  
      >>> relation.select("col1")
      >>> relation.select("col1, col2")
docstr_tok: ["Projects","a","set","of","expressions","and","returns","a","new","EvaDBQuery",".","Parameters",":","exprs","(","Union","[","str",",","List","[","str","]","]",")",":","The","expression","(","s",")","to","be","selected",".","If","'","*","'","is","provided",",","it","expands","to","all","columns","in","the","current","EvaDBQuery",".","Returns",":","EvaDBQuery",":","A","EvaDBQuery","with","subset","(","or","all",")","of","columns",".","Examples",":",">",">",">","relation","=","cursor.table","(","``","sample_table","''",")","Select","all","columns","in","the","EvaDBQuery",".",">",">",">","relation.select","(","``","*","''",")","Select","all","subset","of","columns","in","the","EvaDBQuery",".",">",">",">","relation.select","(","``","col1","''",")",">",">",">","relation.select","(","``","col1",",","col2","''",")"]
code: def select(self, expr: str) -> "EvaDBQuery":
      """
      Projects a set of expressions and returns a new EvaDBQuery.
  
      Parameters:
          exprs (Union[str, List[str]]): The expression(s) to be selected. If '*' is provided, it expands to all columns in the current EvaDBQuery.
  
      Returns:
          EvaDBQuery: A EvaDBQuery with subset (or all) of columns.
  
      Examples:
          >>> relation = cursor.table("sample_table")
  
          Select all columns in the EvaDBQuery.
  
          >>> relation.select("*")
  
          Select all subset of columns in the EvaDBQuery.
  
          >>> relation.select("col1")
          >>> relation.select("col1, col2")
      """
  
      parsed_exprs = sql_string_to_expresssion_list(expr)
  
      self._query_node = handle_select_clause(
          self._query_node, self._alias, "target_list", parsed_exprs
      )
  
      try_binding(self._evadb.catalog, self._query_node)
  
      return self
  
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 9 for calling the EvaDBQuery obj's underlying member method code with example usage: obj.select(expr) and returns: self