summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Smith <bradster@infinitewarp.com>2023-02-27 11:07:52 -0500
committerNed Batchelder <ned@nedbatchelder.com>2023-03-16 06:41:14 -0400
commit86deccd8e643f7f7ddf60ecd8311e71ecb0d4e09 (patch)
tree6cbf00ecab943a8a566a2339356cc90b81c4496f
parent021a99f3f50eca77abb85e2f25f26af65ad06128 (diff)
downloadpython-coveragepy-git-86deccd8e643f7f7ddf60ecd8311e71ecb0d4e09.tar.gz
fix: Use "journal_mode=memory" if "journal_mode=off" fails.
-rw-r--r--coverage/sqldata.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/coverage/sqldata.py b/coverage/sqldata.py
index 42cf4501..3e47b4d8 100644
--- a/coverage/sqldata.py
+++ b/coverage/sqldata.py
@@ -1133,6 +1133,11 @@ class SqliteDb(AutoReprMixin):
# PyPy needs the .close() calls here, or sqlite gets twisted up:
# https://bitbucket.org/pypy/pypy/issues/2872/default-isolation-mode-is-different-on
self.execute_void("pragma journal_mode=off")
+ if self.execute_one("pragma journal_mode") != "off":
+ # Some instances of Sqlite refuse to disable journal mode.
+ # Switching to memory mode prevents journal files from being written,
+ # even though we lose performance with unecessary rollback protection.
+ self.execute_void("pragma journal_mode=memory")
# This pragma makes writing faster.
self.execute_void("pragma synchronous=off")