code: def __init__(self, session, proxy_server, charset=None):
      self.session = session
      self.server = proxy_server
  
      self.logger = log.getLogger(__name__)
      self.charset = charset or "utf8"
      self.query = None
      self.columns = []
      self.params = []
      self.data = None
      self.server_status = None
      self.state_track = None
      self.is_executed = False
  
      self.sql = ""
      self.sql_lower = ""
  
      self.command_executor = ExecuteCommands(self.session)
  
imports: from typing import Union
  from mindsdb_sql import parse_sql
  from mindsdb_sql.planner import utils
  from numpy import dtype
  from pandas.api import types
  from mindsdb.api.executor import SQLQuery, Column
  from mindsdb.api.mysql.mysql_proxy.utilities.lightwood_dtype import dtype
  from mindsdb.api.executor.command_executor import ExecuteCommands
  from mindsdb.api.mysql.mysql_proxy.utilities import SqlApiException
  from mindsdb.api.postgres.postgres_proxy.postgres_packets.postgres_fields import POSTGRES_TYPES
  from mindsdb.utilities import log
label_desc: Use image node_id 1 to create a new Executor object  with example: obj = Executor(session, proxy_server, charset)