def execute_query(**kwargs):
    """
      Executes a query against the connected db using pymapd
      https://pymapd.readthedocs.io/en/latest/usage.html#querying

      Kwargs:
        query_name(str): Name of query
        query_mapdql(str): Query to run
        iteration(int): Iteration number

      Returns:
        query_execution(dict):::
          result_count(int): Number of results returned
          execution_time(float): Time (in ms) that pymapd reports
                                 backend spent on query.
          connect_time(float): Time (in ms) for overhead of query, calculated
                               by subtracting backend execution time
                               from time spent on the execution function.
          results_iter_time(float): Time (in ms) it took to for
                                    pymapd.fetchone() to iterate through all
                                    of the results.
          total_time(float): Time (in ms) from adding all above times.
        False(bool): The query failed. Exception should be logged.
    """
    start_time = timeit.default_timer()
    try:
        # Run the query
        query_result = con.execute(kwargs["query_mapdql"])
        logging.debug(
            "Completed iteration "
            + str(kwargs["iteration"])
            + " of query "
            + kwargs["query_name"]
        )
    except (pymapd.exceptions.ProgrammingError, pymapd.exceptions.Error):
        logging.exception(
            "Error running query "
            + kwargs["query_name"]
            + " during iteration "
            + str(kwargs["iteration"])
        )
        return False

    # Calculate times
    query_elapsed_time = (timeit.default_timer() - start_time) * 1000
    execution_time = query_result._result.execution_time_ms
    connect_time = round((query_elapsed_time - execution_time), 1)

    # Iterate through each result from the query
    logging.debug(
        "Counting results from query"
        + kwargs["query_name"]
        + " iteration "
        + str(kwargs["iteration"])
    )
    result_count = 0
    start_time = timeit.default_timer()
    while query_result.fetchone():
        result_count += 1
    results_iter_time = round(
        ((timeit.default_timer() - start_time) * 1000), 1
    )

    query_execution = {
        "result_count": result_count,
        "execution_time": execution_time,
        "connect_time": connect_time,
        "results_iter_time": results_iter_time,
        "total_time": execution_time + connect_time + results_iter_time,
    }
    logging.debug(
        "Execution results for query"
        + kwargs["query_name"]
        + " iteration "
        + str(kwargs["iteration"])
        + ": "
        + str(query_execution)
    )
    return query_execution
def execute_query ( ** kwargs ) : start_time = timeit . default_timer ( ) try : query_result = con . execute ( kwargs [ "query_mapdql" ] ) logging . debug ( "Completed iteration " + str ( kwargs [ "iteration" ] ) + " of query " + kwargs [ "query_name" ] ) except ( pymapd . exceptions . ProgrammingError , pymapd . exceptions . Error ) : logging . exception ( "Error running query " + kwargs [ "query_name" ] + " during iteration " + str ( kwargs [ "iteration" ] ) ) return False query_elapsed_time = ( timeit . default_timer ( ) - start_time ) * 1000 execution_time = query_result . _result . execution_time_ms connect_time = round ( ( query_elapsed_time - execution_time ) , 1 ) logging . debug ( "Counting results from query" + kwargs [ "query_name" ] + " iteration " + str ( kwargs [ "iteration" ] ) ) result_count = 0 start_time = timeit . default_timer ( ) while query_result . fetchone ( ) : result_count += 1 results_iter_time = round ( ( ( timeit . default_timer ( ) - start_time ) * 1000 ) , 1 ) query_execution = { "result_count" : result_count , "execution_time" : execution_time , "connect_time" : connect_time , "results_iter_time" : results_iter_time , "total_time" : execution_time + connect_time + results_iter_time , } logging . debug ( "Execution results for query" + kwargs [ "query_name" ] + " iteration " + str ( kwargs [ "iteration" ] ) + ": " + str ( query_execution ) ) return query_execution
Executes a query against the connected db using pymapd
      https://pymapd.readthedocs.io/en/latest/usage.html#querying

      Kwargs:
        query_name(str): Name of query
        query_mapdql(str): Query to run
        iteration(int): Iteration number

      Returns:
        query_execution(dict):::
          result_count(int): Number of results returned
          execution_time(float): Time (in ms) that pymapd reports
                                 backend spent on query.
          connect_time(float): Time (in ms) for overhead of query, calculated
                               by subtracting backend execution time
                               from time spent on the execution function.
          results_iter_time(float): Time (in ms) it took to for
                                    pymapd.fetchone() to iterate through all
                                    of the results.
          total_time(float): Time (in ms) from adding all above times.
        False(bool): The query failed. Exception should be logged.