def query(self, sql_query, columns = None, parameters = None):
        """
        If columns evaluates to true, sql_query must contain
        "${columns}" (only once) and this substring will be replaced
        by an SQL representation of the list of columns, correctly
        escaped for the backend.
        The resulting string is passed to the DBAPI2.0 .execute()
        method of the underlying DBAPI2.0 cursor, alongside with
        parameters.
        If ''not columns'', the sql_query string will be passed
        unchanged to the DBAPI2.0 .execute() method.
        """
        tmp_query = self.__preparequery(sql_query, columns)
        if self.__methods[METHOD_MODULE].paramstyle in ('format', 'pyformat'):
            tmp_query = qmark_to_format(tmp_query)
        """
        if self.__methods[METHOD_MODULE].paramstyle == "qmark":
            if parameters is not None:
                tmp_query = tmp_query % parameters
                parameters = None
        """

        try:
            if parameters is None:
                self.__dbapi2_cursor.execute(tmp_query)
            else:
                self.__dbapi2_cursor.execute(tmp_query, parameters)
        except Exception, e:
            # try to reconnect
            self.__connection.reconnect(tmp_query, self.__log_reconnect)
            self.__dbapi2_cursor = self.__connection._get_raw_cursor()

            if parameters is None:
                self.__dbapi2_cursor.execute(tmp_query)
            else:
                self.__dbapi2_cursor.execute(tmp_query, parameters)
If columns evaluates to true, sql_query must contain
        "${columns}" (only once) and this substring will be replaced
        by an SQL representation of the list of columns, correctly
        escaped for the backend.
        The resulting string is passed to the DBAPI2.0 .execute()
        method of the underlying DBAPI2.0 cursor, alongside with
        parameters.
        If ''not columns'', the sql_query string will be passed
        unchanged to the DBAPI2.0 .execute() method.