id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	branch_state	votes
4369	sqlite 3 view: use 'immutable=1' URI parameter to prevent leaving wal/shm files after viewing sqlite database	karlicoss	andrew_b	"The problem I often had with viewing .sqlite files with mc is that exiting the view mode mid-way may leave .wal/.shm files in the database directory.
This never caused any actual issues, but a bit annoying, since leftover .wal files are often a sign that the program working with the database exited ungracefully.    
This effectively reproduces mc's behaviour:  
        /tmp/testsqlite $ rm -f *-wal *-shm && sqlite3 ""/tmp/testsqlite/db file.sqlite"" .dump | head >/dev/null && ls -1 /tmp/testsqlite/
        'db file.sqlite'
        'db file.sqlite-shm'
        'db file.sqlite-wal'
    
After the change -- no shm/wal files:  
        /tmp/testsqlite $ rm -f *-wal *-shm && sqlite3 ""file:/tmp/testsqlite/db file.sqlite?immutable=1"" .dump | head >/dev/null && ls -1 /tmp/testsqlite/
        'db file.sqlite'
    
You can find the docs on immutable mode here https://www.sqlite.org/uri.html#uriimmutable
Immutable mode has been supported in sqlite since 2014: https://www.sqlite.org/changes.html#version_3_8_5
In case user's sqlite installation is older, the mode is just quietly ignored, so the change is backwards compatible.
"	enhancement	closed	major	4.8.29	mc-core	master	fixed	sqlite				no branch	committed-master
