docs: def explain(self, sql=None, sql_args=None):
          """
          Runs EXPLAIN on this query
  
          :type sql: str or None
          :param sql: The sql to run EXPLAIN on. If None is specified, the query will
              use ``self.get_sql()``
  
          :type sql_args: dict or None
          :param sql_args: A dictionary of the arguments to be escaped in the query. If None and
              sql is None, the query will use ``self.get_args()``
  
          :rtype: list of str
          :return: list of each line of output from the EXPLAIN statement
          """
          cursor = self.get_cursor()
          if sql is None:
              sql = self.get_sql()
              sql_args = self.get_args()
          elif sql_args is None:
              sql_args = {}
  
          cursor.execute('EXPLAIN {0}'.format(sql), sql_args)
          rows = self._fetch_all_as_dict(cursor)
          return rows