I realize that
dbGetQuery comes with a default implementation that calls dbSendQuery, then dbFetch, ensuring that the result is always freed by dbClearResult.
and
dbClearResult frees all resources (local and remote) associated with a result set. In some cases (e.g., very large result sets) this can be a critical step to avoid exhausting resources (memory, file descriptors, etc.)
But my team just experienced a locked table that we went into MySQL to kill pid
and I'm wondering - is there a way to timeout a query submitted using the DBI
package?
I'm looking for and can't find the equivalent of
dbGetQuery(conn = connection, 'select stuff from that_table', timeout = 90)
I tried this, and profiled the function with and without the parameter set and it doesn't appear it does anything; why would it, if dbClearResult
is always in play?
Sys.time()
in the main thread followed bytools::pskill()
if it takes too long. – Durban