How would one go about cancelling execution of a query statement using pyscopg2 (the python Postgres driver)?
As an example, let's say I have the following code:
import psycopg2
cnx_string = "something_appropriate"
conn = psycopg2.connect(cnx_string)
cur = conn.cursor()
cur.execute("long_running_query")
Then I want to cancel the execution of that long running query from another thread - what method would I have to call on the connection/cursor objects to do this?
You can cancel a query by calling the pg_cancel_backend(pid)
PostgreSQL function in a separate connection.
You can know the PID of the backend to cancel from the connection.get_backend_pid()
method of psycopg2 (available from version 2.0.8).