code: def select(self, query: ast.Select) -> pd.DataFrame:
      self.handler.connect()
  
      conditions = extract_comparison_conditions(query.where)
      allowed_keys = set(["event_id"])
  
      params = {}
      filters = []
      for op, arg1, arg2 in conditions:
          if op == "or":
              raise NotImplementedError("OR is not supported")
          elif op == "=" and arg1 in allowed_keys:
              params[arg1] = arg2
          elif op != "=":
              raise NotImplementedError(f"Unknown op: {op}")
          else:
              filters.append([op, arg1, arg2])
  
      if query.limit is not None:
          params["max_results"] = query.limit.value
  
      if "event_id" not in params:
          # search not works without searchQuery, use 'London'
          params["event_id"] = "717926867587"
  
      event_details = self.handler.api.get_event(params["event_id"])
  
      # Normalize event data
      flat_event_details = flatten(event_details)
      result = pd.DataFrame([flat_event_details])
  
      for col in ["name", "description", "start", "end", "logo"]:
          if col in result.columns:
              result = pd.concat(
                  [
                      result,
                      result[col]
                      .apply(pd.Series)
                      .add_prefix(f"{col}_"),
                  ],
                  axis=1,
              )
              result = result.drop([col], axis=1)
  
      # filter targets
      columns = []
      for target in query.targets:
          if isinstance(target, ast.Star):
              columns = []
              break
          elif isinstance(target, ast.Identifier):
              columns.append(target.parts[-1])
          else:
              raise NotImplementedError
  
      if len(columns) == 0:
          columns = self.get_columns()
  
      # columns to lower case
      columns = [name.lower() for name in columns]
  
      if len(result) == 0:
          result = pd.DataFrame([], columns=columns)
      else:
          # add absent columns
          for col in set(columns) & set(result.columns) ^ set(columns):
              result[col] = None
  
          # filter by columns
          result = result[columns]
      return result
  
imports: import pandas
  import collections
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
  from mindsdb.integrations.handlers.utilities.query_utilities import SELECTQueryParser, SELECTQueryExecutor
label_desc: Use image node_id 1 for calling the EventbriteEventDetailsTable obj's underlying member method code with example usage: obj.select(query) and returns: result