Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Interrupt A Long-Running Query

void sqlite3_interrupt(sqlite3*);

This function causes any pending database operation to abort and return at its earliest opportunity. This routine is typically called in response to a user action such as pressing "Cancel" or Ctrl-C where the user wants a long query operation to halt immediately.

It is safe to call this routine from a thread different from the thread that is currently running the database operation. But it is not safe to call this routine with a database connection that is closed or might close before sqlite3_interrupt() returns.

If an SQL operation is very nearly finished at the time when sqlite3_interrupt() is called, then it might not have an opportunity to be interrupted and might continue to completion.

An SQL operation that is interrupted will return SQLITE_INTERRUPT. If the interrupted SQL operation is an INSERT, UPDATE, or DELETE that is inside an explicit transaction, then the entire transaction will be rolled back automatically.

A call to sqlite3_interrupt() has no effect on SQL statements that are started after sqlite3_interrupt() returns.

Invariants:

H12271 The sqlite3_interrupt() interface will force all running SQL statements associated with the same database connection to halt after processing at most one additional row of data.
H12272 Any SQL statement that is interrupted by sqlite3_interrupt() will return SQLITE_INTERRUPT.

Assumptions:

A12279 If the database connection closes while sqlite3_interrupt() is running then bad things will likely happen.

See also lists of Objects, Constants, and Functions.


This page last modified 2008/12/09 18:44:04 UTC