Quite Fascinating! Here is the transcript (it is running the Windows SQLITE.EXE
which I have in a different location in the path, so slightly modified the
script):
KMedcalf at WYNPCLLT3 ~
$ rm -rf t1.db*
KMedcalf at WYNPCLLT3 ~
$ sqlite t1.db <<\EOF
> PRAGMA journal_mode=WAL;
> CREATE TABLE t1(a,b,c);
> INSERT INTO t1 VALUES(1,2,3),(4,5,6);
> EOF
wal
KMedcalf at WYNPCLLT3 ~
$ ls -l t1.db*
-rw-r--r-- 1 KMedcalf Administrators 8192 Aug 15 13:12 t1.db
KMedcalf at WYNPCLLT3 ~
$ echo '*******************'
*******************
KMedcalf at WYNPCLLT3 ~
$ sqlite 'file:t1.db?mode=ro' <<\EOF
> SELECT * FROM t1;
> PRAGMA journal_mode;
> .exit 1
> EOF
1|2|3
4|5|6
wal
KMedcalf at WYNPCLLT3 ~
$ ls -l t1.db
-rw-r--r-- 1 KMedcalf Administrators 8192 Aug 15 13:12 t1.db
KMedcalf at WYNPCLLT3 ~
$
Doing similar under CMD.EXE as the shell however results in the following (same
executable run):
2015-08-15 13:15:15 [D:\Temp]
>sqlite file:test.db?mode=ro
SQLite version 3.8.12 2015-08-15 16:32:50
Enter ".help" for usage hints.
sqlite> select * from test;
1
2
3
sqlite> pragma journal_mode;
wal
sqlite> .exit
2015-08-15 13:15:54 [D:\Temp]
>dir
Volume in drive D is DATA
Volume Serial Number is 343E-C7BF
Directory of D:\Temp
2015-08-15 13:15 <DIR> .
2015-08-15 13:15 <DIR> ..
2015-08-15 12:13 <DIR> old
2015-08-15 12:34 1,836,032 sqlite3.exe
2015-08-15 12:29 8,192 test.db
2015-08-15 13:15 32,768 test.db-shm
2015-08-15 13:15 0 test.db-wal
2015-08-15 12:11 151 test.py
2015-08-15 12:12 137 test.sql
2015-08-15 12:16 124 test2.py
7 File(s) 1,877,404 bytes
3 Dir(s) 157,980,798,976 bytes free
> -----Original Message-----
> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users-
> bounces at mailinglists.sqlite.org] On Behalf Of Richard Hipp
> Sent: Saturday, 15 August, 2015 12:41
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] journal files not always removed
>
> On 8/15/15, Keith Medcalf <kmedcalf at dessus.com> wrote:
> >
> > This is something changed in SQLITE itself. These tests are on Windows
> 10
> > using the current MinGW compiler with the same configuration and windows
> > headers.
> >
>
> Do you also have MSYS installed? If so can you run the following
> shell script and see if it demonstrates the problem on Win10? It does
> not on my Win7 and Win8 boxes.
>
> rm -rf t1.db*
> ./sqlite3 t1.db <<\EOF
> PRAGMA journal_mode=WAL;
> CREATE TABLE t1(a,b,c);
> INSERT INTO t1 VALUES(1,2,3),(4,5,6);
> EOF
> ls -l t1.db*
> echo '*******************'
> ./sqlite3 'file:t1.db?mode=ro' <<\EOF
> SELECT * FROM t1;
> PRAGMA journal_mode;
> .exit 1
> EOF
> ls -l t1.db
>
>
> --
> D. Richard Hipp
> drh at sqlite.org
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users