You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2022/07/06 22:02:08 UTC

[GitHub] [superset] eschutho commented on issue #17011: SQL Lab queries can't be stopped

eschutho commented on issue #17011:
URL: https://github.com/apache/superset/issues/17011#issuecomment-1176794144

   So this is the flow for the whole flow of running a query to stopping it. It should work with Athena as long as we build out the two required methods `cancel_query` and `get_cancel_query_id` for Athena in the db engine spec: 
   
   ```
   with closing(engine.raw_connection()) as conn:
           # get cursor
           cursor = conn.cursor() 
   
           # fetch cancel query id from  cursor
           cancel_query_id = db_engine_spec.get_cancel_query_id(cursor, query)
   
          # save cursor in metadata on query model
            if cancel_query_id is not None:
               query.set_extra_json_key(cancel_query_key, cancel_query_id)
               session.commit()
   
          ...
          # execute statement (thread is blocked)
                   result_set = execute_sql_statement(
                       statement,
                       query,
                       session,
                       cursor,
                       log_params,
                       apply_ctas,
                   )
   ```
   
   (separate thread after clicking the "STOP" button)
   ```
       @expose("/stop_query/", methods=["POST"])
       ...
       # fetch cancel_query_key from query model metadata
       cancel_query_id = query.extra.get(cancel_query_key)
   
       .....
       # pass the cancel_query_id to the db_engine_spec and cancel the query
               return query.database.db_engine_spec.cancel_query(
                   cursor, query, cancel_query_id
               )
   ```
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org