diff options
author | Doron Behar <doron.behar@gmail.com> | 2021-11-03 14:10:16 +0200 |
---|---|---|
committer | Doron Behar <doron.behar@gmail.com> | 2021-11-03 14:19:11 +0200 |
commit | 14fcf1727759f8eaf88a805cbe2251fbe9920edb (patch) | |
tree | bca2321c27b05add50c50529fc09a03ea8fbae37 /src | |
parent | 886ad0055f20ca70247b1290759903f244c27f88 (diff) |
libstore: Use unix-dotfile vfs if useSQLiteWAL is false
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/sqlite.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstore/sqlite.cc b/src/libstore/sqlite.cc index 447b4179b..1d6baf02d 100644 --- a/src/libstore/sqlite.cc +++ b/src/libstore/sqlite.cc @@ -1,4 +1,5 @@ #include "sqlite.hh" +#include "globals.hh" #include "util.hh" #include <sqlite3.h> @@ -27,8 +28,12 @@ namespace nix { SQLite::SQLite(const Path & path, bool create) { + // useSQLiteWAL also indicates what virtual file system we need. Using + // `unix-dotfile` is needed on NFS file systems and on Windows' Subsystem + // for Linux (WSL) where useSQLiteWAL should be false by default. + const char *vfs = settings.useSQLiteWAL ? 0 : "unix-dotfile"; if (sqlite3_open_v2(path.c_str(), &db, - SQLITE_OPEN_READWRITE | (create ? SQLITE_OPEN_CREATE : 0), 0) != SQLITE_OK) + SQLITE_OPEN_READWRITE | (create ? SQLITE_OPEN_CREATE : 0), vfs) != SQLITE_OK) throw Error("cannot open SQLite database '%s'", path); if (sqlite3_busy_timeout(db, 60 * 60 * 1000) != SQLITE_OK) |