code: def do_execute(self):
      self.logger.info("%s.do_execute", self.__class__.__name__)
      # it can be already run at prepare state
      if self.is_executed:
          return
  
      ret = self.command_executor.execute_command(self.query)
  
      self.is_executed = True
  
      self.data = ret.data
      self.server_status = ret.status
      if ret.columns is not None:
          self.columns = ret.columns
  
      self.state_track = ret.state_track
  
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 6 for calling the Executor obj's underlying member method code with example usage: obj.do_execute() without return types