class_docstr: Parses a SELECT query into its component parts.
  
  Parameters
  ----------
  query : ast.Select
      Given SQL SELECT query.
  table : Text
      Name of the table to query.
  columns : List[Text]
      List of columns in the table.
class_docstr_tok: ["Parses","a","SELECT","query","into","its","component","parts",".","Parameters","--","--","--","--","--","query",":","ast.Select","Given","SQL","SELECT","query",".","table",":","Text","Name","of","the","table","to","query",".","columns",":","List","[","Text","]","List","of","columns","in","the","table","."]
docstr: Parses the SELECT (column selection) clause of the query.
docstr_tok: ["Parses","the","SELECT","(","column","selection",")","clause","of","the","query","."]
code: def parse_select_clause(self) -> List[Text]:
      """
      Parses the SELECT (column selection) clause of the query.
      """
      selected_columns = []
      for target in self.query.targets:
          if isinstance(target, ast.Star):
              selected_columns = self.columns
              break
          elif isinstance(target, ast.Identifier):
              selected_columns.append(target.parts[-1])
          else:
              raise ValueError(f"Unknown query target {type(target)}")
  
      return selected_columns
  
imports: import pandas
  from mindsdb_sql.parser import ast
  from typing import Text, List, Dict, Tuple
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.utilities.sql_utils import sort_dataframe
  from mindsdb.integrations.handlers.utilities.query_utilities.base_query_utilities import BaseQueryParser
  from mindsdb.integrations.handlers.utilities.query_utilities.base_query_utilities import BaseQueryExecutor
label_desc: Use image node_id 3 for calling the SELECTQueryParser obj's underlying member method code with example usage: obj.parse_select_clause() and returns: selected_columns