Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ensure batch inserts on SQLite run in a transaction
While it's safe for us to do the inserts one query at a time, due to the lack of round-trip time on SQLite, there's still a significant performance difference if done outside of a transaction. If we're not in a transaction, SQLite will perform table locking, and file IO for each query individually. This also means that batch insert on SQLite will have the same semantics on failure as the other backends. While I previously thought that we did not want a savepoint here if we were already in a transaction, it's actually important that we create one in order to match the semantics of other backends on failure. Fixes #1177.
- Loading branch information