-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
Details for the issue
What did you do?
Change pragmas on Edit Pragmas tab or via SQL.
What did you expect to see?
-
Modified values set for pragmas when Pragmas tab's Save button are clicked are persisted to database and appear when closed reopened. The Write Changes button does not enable in this case.
-
Modified values set for pragmas via the Execute SQL tab are persisted to database and appear when closed and reopened. The Write Changes button does not enable in this case either, though, it does enable if a query only pragma is issued rather than a write pragma (e.g. pragma temp_store rather than pragma temp_store = memory).
What did you see instead?
Original pragma values under both pathways described above. This affects attempts to specify at least
Auto Vacuum = Incremental
Synchronous = Normal
Temp Store = Memory
WAL Auto Checkpoint = <any value besides 1000>
Setting Journal Mode = WAL roundtrips successfully.
Useful extra information
The info below often helps, please fill it out if you're able to. :)
What operating system are you using?
Windows 10
What is your DB4S version?
3.10.1
Did you also
- Try out the latest nightly version: https://github.com/sqlitebrowser/sqlitebrowser#nightly-builds
- Search for an existing similar issue: https://github.com/sqlitebrowser/sqlitebrowser/issues?utf8=%E2%9C%93&q=is%3Aissue%20
Review of the SQLite documentation at https://www.sqlite.org/pragma.html suggests that, in the case of pragma auto_vacuum the DB Browser may not be issuing the subsequent vacuum command required to change pragma to or from none in a database with existing tables. In this case, a workaround for this issue is to execute both the pragma change and vacuum commands in the Execute SQL tab.
Some experimentation with the current SQLite nuget (https://www.nuget.org/packages/System.Data.SQLite.Core/) suggests pragma temp_store may be scoped to a specific connection rather than to the database and therefore non-durable. It also appears auto_vacuum and journal_mode are sensitive to whether SQLite's caller includes them within a transaction. The SQLite documentation appears unclear on these points.