docstr: Gets all conversion events from google analytics property.
  
  Args:
      query (ast.Select): SQL query to parse.
  
  Returns:
      Response: Response object containing the results.
docstr_tok: ["Gets","all","conversion","events","from","google","analytics","property",".","Args",":","query","(","ast.Select",")",":","SQL","query","to","parse",".","Returns",":","Response",":","Response","object","containing","the","results","."]
code: def select(self, query: ast.Select) -> pd.DataFrame:
      """
      Gets all conversion events from google analytics property.
  
      Args:
          query (ast.Select): SQL query to parse.
  
      Returns:
          Response: Response object containing the results.
      """
      # Parse the query to get the conditions.
      conditions = extract_comparison_conditions(query.where)
      # Get the page size from the conditions.
      params = {}
      for op, arg1, arg2 in conditions:
          if arg1 == "page_size":
              params[arg1] = arg2
          else:
              raise NotImplementedError
  
      # Get the order by from the query.
      if query.order_by is not None:
          raise NotImplementedError
  
      if query.limit is not None:
          raise NotImplementedError
  
      # Get the conversion events from the Google Analytics Admin API.
      conversion_events = pd.DataFrame(columns=self.get_columns())
      result = self.get_conversion_events(params=params)
      conversion_events_data = self.extract_conversion_events_data(
          result.conversion_events
      )
      events = self.concat_dataframes(
          conversion_events, conversion_events_data
      )
  
      selected_columns = []
      for target in query.targets:
          if isinstance(target, ast.Star):
              selected_columns = self.get_columns()
              break
          elif isinstance(target, ast.Identifier):
              selected_columns.append(target.parts[-1])
          else:
              raise ValueError(f"Unknown query target {type(target)}")
  
      if len(events) == 0:
          events = pd.DataFrame([], columns=selected_columns)
      else:
          events.columns = self.get_columns()
          for col in set(events.columns).difference(
              set(selected_columns)
          ):
              events = events.drop(col, axis=1)
      return events
  
file_path: mindsdb/mindsdb/integrations/handlers/google_analytics_handler/google_analytics_tables.py
imports: import pandas
  from typing import List
  from google.analytics.admin_v1beta import ListConversionEventsRequest, ConversionEvent, CreateConversionEventRequest, UpdateConversionEventRequest, DeleteConversionEventRequest
  from mindsdb_sql import Constant
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
label_desc: Use image node_id 1 for calling the ConversionEventsTable obj's underlying member method code with example usage: obj.select(query) and returns: events