Hello,
This simple script:
pragma journal_mode=wal;
CREATE TABLE IF NOT EXISTS sessions (
sid varchar(32) primary key not null
);
begin;
INSERT OR REPLACE INTO sessions values('0123456789abcdef0123456789abcde1');
-- There it fails after insert or replace before commit
commit;
Fails on Cygwin and passess without problems using
windows builds.
With normal build the script reports
unable to open database file
While building with -DSQLITE_DEBUG
it reports an assertion:
assertion "isExclusive==0 || isCreate" failed: file "sqlite3.c", line 34058,
function: winOpen
(Version 3.7.8)
This does not happen on Windows builds of the same sources.
I've attached the script and VDBE traces under cygwin and windows builds.
Cygwin version: 1.7.9(0.237/5/3)
Artyom Beilis
--------------
CppCMS - C++ Web Framework: http://cppcms.sf.net/
CppDB - C++ SQL Connectivity: http://cppcms.sf.net/sql/cppdb/
VDBE Execution Trace:
0 Expire 0 0 0 00
1 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Noop 0 0 0 00
2 Goto 0 12 0 00
12 Transaction 0 0 0 00
13 TableLock 0 1 0 sqlite_master 00
14 Goto 0 3 0 00
3 OpenRead 0 1 0 5 00 sqlite_master
4 Rewind 0 10 0 00
10 Close 0 0 0 00
11 Halt 0 0 0 00
VDBE Execution Trace:
0 JournalMode 0 1 5 00
REG[1] = t3[wal](8)
1 ResultRow 1 1 0 00
REG[1] = t3[wal](8)
wal
2 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Goto 0 48 0 00
48 Transaction 0 1 0 00
49 VerifyCookie 0 0 0 00
50 TableLock 0 1 1 sqlite_master 00
51 Goto 0 2 0 00
2 ReadCookie 0 3 2 00
REG[3] = i:0
3 If 3 8 0 00
REG[3] = i:0
4 Integer 1 3 0 00
REG[3] = i:1
5 SetCookie 0 2 3 00
REG[3] = i:1
6 Integer 1 3 0 00
REG[3] = i:1
7 SetCookie 0 5 3 00
REG[3] = i:1
8 CreateTable 0 2 0 00
REG[2] = i:2
9 OpenWrite 0 1 0 5 00
10 NewRowid 0 1 0 00
REG[1] = i:1
11 Null 0 3 0 00
REG[3] = NULL
12 Insert 0 3 1 08
REG[3] = NULL
REG[1] = i:1
13 Close 0 0 0 00
14 CreateIndex 0 4 0 00
REG[4] = i:3
15 OpenWrite 1 1 0 5 00 sqlite_master
16 NewRowid 1 5 0 00
REG[5] = i:2
17 String8 0 6 0 index 00
REG[6] = t5[index](8)
18 String8 0 7 0 sqlite_autoindex_sessions_1 00
REG[7] = t27[sqlite_autoinde](8)
19 String8 0 8 0 sessions 00
REG[8] = t8[sessions](8)
20 Copy 4 9 0 00
REG[4] = i:3
REG[9] = i:3
REG[9] = i:3
21 Null 0 10 0 00
REG[10] = NULL
22 MakeRecord 6 5 11 aaada 00
REG[11] = z47[0617431D0100696E64657873716C6974..C...indexsqlit](8)
23 Insert 1 11 5 18
REG[11] = z47[0617431D0100696E64657873716C6974..C...indexsqlit](8)
REG[5] = i:2
24 Close 1 0 0 00
25 Close 0 0 0 00
26 Null 0 12 0 00
REG[12] = NULL
27 OpenWrite 2 1 0 5 00 sqlite_master
28 MustBeInt 1 31 0 00
REG[1] = i:1
29 NotExists 2 31 1 00 pk
REG[1] = i:1
30 Rowid 2 12 0 00
REG[12] = i:1
31 NotNull 12 33 0 00
REG[12] = i:1
33 NotExists 2 32 12 00
REG[12] = i:1
34 String8 0 13 0 table 00
REG[13] = t5[table](8)
35 String8 0 14 0 sessions 00
REG[14] = t8[sessions](8)
36 String8 0 15 0 sessions 00
REG[15] = t8[sessions](8)
37 Copy 2 16 0 00
REG[2] = i:2
REG[16] = i:2
REG[16] = i:2
38 String8 0 17 0 CREATE TABLE sessions (
sid varchar(32) primary key not null
) 00
REG[17] = t64[CREATE TABLE se](8)
39 NotExists 2 40 12 00
REG[12] = i:1
40 MakeRecord 13 5 18 aaada 00
REG[18] = z93[07171D1D01810D7461626C6573657373.......tablesess](8)
41 Insert 2 18 12 00
REG[18] = z93[07171D1D01810D7461626C6573657373.......tablesess](8)
REG[12] = i:1
42 Goto 0 32 0 00
32 Goto 0 43 0 00
43 Close 2 0 0 00
44 Integer 1 19 0 00
REG[19] = i:1
45 SetCookie 0 1 19 00
REG[19] = i:1
46 ParseSchema 0 0 0 tbl_name='sessions' 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Noop 0 0 0 00
2 String8 0 1 0 sessions 00
REG[1] = t8[sessions](8)
3 Goto 0 15 0 00
15 Transaction 0 0 0 00
16 TableLock 0 1 0 sqlite_master 00
17 Goto 0 4 0 00
4 OpenRead 0 1 0 5 00 sqlite_master
5 Rewind 0 13 0 00
6 Column 0 2 2 00 sqlite_master.tbl_name
REG[2] = s8[sessions](8)
7 Ne 1 12 2 collseq(BINARY) 69
REG[1] = t8[sessions](8)
REG[2] = s8[sessions](8)
8 Column 0 1 4 00 sqlite_master.name
REG[4] = s8[sessions](8)
9 Column 0 3 5 00 sqlite_master.rootpage
REG[5] = i:2
10 Column 0 4 6 00 sqlite_master.sql
REG[6] = s64[CREATE TABLE se](8)
11 ResultRow 4 3 0 00
REG[4] = s8[sessions](8)
REG[5] = i:2
REG[6] = s64[CREATE TABLE se](8)
12 Next 0 6 0 01
6 Column 0 2 2 00 sqlite_master.tbl_name
REG[2] = s8[sessions](8)
7 Ne 1 12 2 collseq(BINARY) 69
REG[1] = t8[sessions](8)
REG[2] = s8[sessions](8)
8 Column 0 1 4 00 sqlite_master.name
REG[4] = s27[sqlite_autoinde](8)
9 Column 0 3 5 00 sqlite_master.rootpage
REG[5] = i:3
10 Column 0 4 6 00 sqlite_master.sql
REG[6] = NULL
11 ResultRow 4 3 0 00
REG[4] = s27[sqlite_autoinde](8)
REG[5] = i:3
REG[6] = NULL
12 Next 0 6 0 01
13 Close 0 0 0 00
14 Halt 0 0 0 00
47 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 AutoCommit 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Goto 0 23 0 00
23 Transaction 0 1 0 00
24 VerifyCookie 0 1 0 00
25 TableLock 0 2 1 sessions 00
26 Goto 0 2 0 00
2 OpenWrite 0 2 0 1 00 sessions
3 OpenWrite 1 3 0 keyinfo(1,BINARY) 00
sqlite_autoindex_sessions_1
4 NewRowid 0 2 0 00
REG[2] = i:1
5 String8 0 3 0 0123456789abcdef0123456789abcde1 00
REG[3] = t32[0123456789abcde](8)
6 HaltIfNull 19 2 3 sessions.sid may not be NULL 00
REG[3] = t32[0123456789abcde](8)
7 SCopy 3 4 0 00
REG[3] = t32[0123456789abcde](8)
REG[4] = t32[0123456789abcde](8)
REG[4] = t32[0123456789abcde](8)
8 SCopy 2 5 0 00
REG[2] = i:1
REG[5] = i:1
REG[5] = i:1
9 MakeRecord 4 2 1 ab 00
REG[1] = z36[034D0130313233343536373839616263.M.0123456789abc](8)
10 SCopy 2 6 0 00
REG[2] = i:1
REG[6] = i:1
REG[6] = i:1
11 IsUnique 1 17 6 4 00
REG[6] = i:1
17 IdxInsert 1 1 0 00
assertion "isExclusive==0 || isCreate" failed: file "sqlite3.c", line 34058,
function: winOpen
VDBE Execution Trace:
0 Expire 0 0 0 00
1 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Noop 0 0 0 00
2 Goto 0 12 0 00
12 Transaction 0 0 0 00
13 TableLock 0 1 0 sqlite_master 00
14 Goto 0 3 0 00
3 OpenRead 0 1 0 5 00 sqlite_master
4 Rewind 0 10 0 00
10 Close 0 0 0 00
11 Halt 0 0 0 00
VDBE Execution Trace:
0 JournalMode 0 1 5 00
REG[1] = t3[wal](8)
1 ResultRow 1 1 0 00
REG[1] = t3[wal](8)
wal
2 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Goto 0 48 0 00
48 Transaction 0 1 0 00
49 VerifyCookie 0 0 0 00
50 TableLock 0 1 1 sqlite_master 00
51 Goto 0 2 0 00
2 ReadCookie 0 3 2 00
REG[3] = i:0
3 If 3 8 0 00
REG[3] = i:0
4 Integer 1 3 0 00
REG[3] = i:1
5 SetCookie 0 2 3 00
REG[3] = i:1
6 Integer 1 3 0 00
REG[3] = i:1
7 SetCookie 0 5 3 00
REG[3] = i:1
8 CreateTable 0 2 0 00
REG[2] = i:2
9 OpenWrite 0 1 0 5 00
10 NewRowid 0 1 0 00
REG[1] = i:1
11 Null 0 3 0 00
REG[3] = NULL
12 Insert 0 3 1 08
REG[3] = NULL
REG[1] = i:1
13 Close 0 0 0 00
14 CreateIndex 0 4 0 00
REG[4] = i:3
15 OpenWrite 1 1 0 5 00 sqlite_master
16 NewRowid 1 5 0 00
REG[5] = i:2
17 String8 0 6 0 index 00
REG[6] = t5[index](8)
18 String8 0 7 0 sqlite_autoindex_sessions_1 00
REG[7] = t27[sqlite_autoinde](8)
19 String8 0 8 0 sessions 00
REG[8] = t8[sessions](8)
20 Copy 4 9 0 00
REG[4] = i:3
REG[9] = i:3
REG[9] = i:3
21 Null 0 10 0 00
REG[10] = NULL
22 MakeRecord 6 5 11 aaada 00
REG[11] = z47[0617431D0100696E64657873716C6974..C...indexsqlit](8)
23 Insert 1 11 5 18
REG[11] = z47[0617431D0100696E64657873716C6974..C...indexsqlit](8)
REG[5] = i:2
24 Close 1 0 0 00
25 Close 0 0 0 00
26 Null 0 12 0 00
REG[12] = NULL
27 OpenWrite 2 1 0 5 00 sqlite_master
28 MustBeInt 1 31 0 00
REG[1] = i:1
29 NotExists 2 31 1 00 pk
REG[1] = i:1
30 Rowid 2 12 0 00
REG[12] = i:1
31 NotNull 12 33 0 00
REG[12] = i:1
33 NotExists 2 32 12 00
REG[12] = i:1
34 String8 0 13 0 table 00
REG[13] = t5[table](8)
35 String8 0 14 0 sessions 00
REG[14] = t8[sessions](8)
36 String8 0 15 0 sessions 00
REG[15] = t8[sessions](8)
37 Copy 2 16 0 00
REG[2] = i:2
REG[16] = i:2
REG[16] = i:2
38 String8 0 17 0 CREATE TABLE sessions (
sid varchar(32) primary key not null
) 00
REG[17] = t64[CREATE TABLE se](8)
39 NotExists 2 40 12 00
REG[12] = i:1
40 MakeRecord 13 5 18 aaada 00
REG[18] = z93[07171D1D01810D7461626C6573657373.......tablesess](8)
41 Insert 2 18 12 00
REG[18] = z93[07171D1D01810D7461626C6573657373.......tablesess](8)
REG[12] = i:1
42 Goto 0 32 0 00
32 Goto 0 43 0 00
43 Close 2 0 0 00
44 Integer 1 19 0 00
REG[19] = i:1
45 SetCookie 0 1 19 00
REG[19] = i:1
46 ParseSchema 0 0 0 tbl_name='sessions' 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Noop 0 0 0 00
2 String8 0 1 0 sessions 00
REG[1] = t8[sessions](8)
3 Goto 0 15 0 00
15 Transaction 0 0 0 00
16 TableLock 0 1 0 sqlite_master 00
17 Goto 0 4 0 00
4 OpenRead 0 1 0 5 00 sqlite_master
5 Rewind 0 13 0 00
6 Column 0 2 2 00 sqlite_master.tbl_name
REG[2] = s8[sessions](8)
7 Ne 1 12 2 collseq(BINARY) 69
REG[1] = t8[sessions](8)
REG[2] = s8[sessions](8)
8 Column 0 1 4 00 sqlite_master.name
REG[4] = s8[sessions](8)
9 Column 0 3 5 00 sqlite_master.rootpage
REG[5] = i:2
10 Column 0 4 6 00 sqlite_master.sql
REG[6] = s64[CREATE TABLE se](8)
11 ResultRow 4 3 0 00
REG[4] = s8[sessions](8)
REG[5] = i:2
REG[6] = s64[CREATE TABLE se](8)
12 Next 0 6 0 01
6 Column 0 2 2 00 sqlite_master.tbl_name
REG[2] = s8[sessions](8)
7 Ne 1 12 2 collseq(BINARY) 69
REG[1] = t8[sessions](8)
REG[2] = s8[sessions](8)
8 Column 0 1 4 00 sqlite_master.name
REG[4] = s27[sqlite_autoinde](8)
9 Column 0 3 5 00 sqlite_master.rootpage
REG[5] = i:3
10 Column 0 4 6 00 sqlite_master.sql
REG[6] = NULL
11 ResultRow 4 3 0 00
REG[4] = s27[sqlite_autoinde](8)
REG[5] = i:3
REG[6] = NULL
12 Next 0 6 0 01
13 Close 0 0 0 00
14 Halt 0 0 0 00
47 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 AutoCommit 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Goto 0 23 0 00
23 Transaction 0 1 0 00
24 VerifyCookie 0 1 0 00
25 TableLock 0 2 1 sessions 00
26 Goto 0 2 0 00
2 OpenWrite 0 2 0 1 00 sessions
3 OpenWrite 1 3 0 keyinfo(1,BINARY) 00
sqlite_autoindex_sessions_1
4 NewRowid 0 2 0 00
REG[2] = i:1
5 String8 0 3 0 0123456789abcdef0123456789abcde1 00
REG[3] = t32[0123456789abcde](8)
6 HaltIfNull 19 2 3 sessions.sid may not be NULL 00
REG[3] = t32[0123456789abcde](8)
7 SCopy 3 4 0 00
REG[3] = t32[0123456789abcde](8)
REG[4] = t32[0123456789abcde](8)
REG[4] = t32[0123456789abcde](8)
8 SCopy 2 5 0 00
REG[2] = i:1
REG[5] = i:1
REG[5] = i:1
9 MakeRecord 4 2 1 ab 00
REG[1] = z36[034D0130313233343536373839616263.M.0123456789abc](8)
10 SCopy 2 6 0 00
REG[2] = i:1
REG[6] = i:1
REG[6] = i:1
11 IsUnique 1 17 6 4 00
REG[6] = i:1
17 IdxInsert 1 1 0 00
REG[1] = z36[034D0130313233343536373839616263.M.0123456789abc](8)
18 MakeRecord 3 1 6 a 00
REG[6] = z34[024D3031323334353637383961626364.M0123456789abcd](8)
19 Insert 0 6 2 sessions 0B
REG[6] = z34[024D3031323334353637383961626364.M0123456789abcd](8)
REG[2] = i:1
20 Close 0 0 0 00
21 Close 1 0 0 00
22 Halt 0 0 0 00
VDBE Execution Trace:
0 Trace 0 0 0 00
1 AutoCommit 1 0 0 00
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users