Open roji opened 1 year ago
On a very related, we may want to consider making CommandTimeout actually cancel statements which run for too long; SQLite doesn't have the networking problems other databases do, but severely un-optimized queries can still run "forever".
This is probably also related to making SqliteCommand.Cancel() actually cancel the currently-running command (and possibly also the cancellation token argument of the async execution APIs).
The current timeout mechanism on SqliteDataReader aggregates time spent across all invocations of NextResult(); we can consider making the timeout not aggregate, i.e. specific to each invocation instead. This would align the behavior with most other ADO.NET drivers, and may make more sense.
See conversation in https://github.com/dotnet/efcore/pull/31348#discussion_r1273343845