class_docstr: This plan is used for storing information required for creating
  a table from select query.
  Arguments:
      table_info {TableInfo} -- table info for view to be created in storage
      col_list{List[ColumnDefinition]} -- column names in the view
      if_not_exists {bool} -- Whether to override if there is existing view
class_docstr_tok: ["This","plan","is","used","for","storing","information","required","for","creating","a","table","from","select","query",".","Arguments",":","table_info","{","TableInfo","}","--","table","info","for","view","to","be","created","in","storage","col_list","{","List","[","ColumnDefinition","]","}","--","column","names","in","the","view","if_not_exists","{","bool","}","--","Whether","to","override","if","there","is","existing","view"]
code: def __hash__(self) -> int:
      return hash(
          (
              super().__hash__(),
              self.table_info,
              self.if_not_exists,
              tuple(self.column_list),
          )
      )
  
file_path: evadb/evadb/plan_nodes/create_from_select_plan.py
imports: from typing import List
  from evadb.parser.create_statement import ColumnDefinition
  from evadb.parser.table_ref import TableInfo
  from evadb.plan_nodes.abstract_plan import AbstractPlan
  from evadb.plan_nodes.types import PlanOprType
label_desc: Use image node_id 6 for calling the CreateFromSelectPlan obj's underlying member method code with example usage: obj.__hash__() and returns: hash