1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Rearrange some code in OP_JournalMode to avoid incorrect returns from subsequent invocations of "PRAGMA journal_mode" following an IO error.

FossilOrigin-Name: ce0a4a9b5f981d066822a9ae63740c91b35bfc60
This commit is contained in:
dan
2010-06-18 16:13:45 +00:00
parent 83acd423a1
commit d956efebea
4 changed files with 28 additions and 30 deletions

View File

@ -124,46 +124,48 @@ do_test walmode-4.5 {
# from WAL to rollback mode because a second connection has the database
# open. Or from rollback to WAL.
#
do_test walmode-4.1 {
do_test walmode-4.6 {
sqlite3 db2 test.db
execsql { PRAGMA main.journal_mode } db2
} {delete}
do_test walmode-4.2 {
do_test walmode-4.7 {
execsql { PRAGMA main.journal_mode = wal } db
} {wal}
do_test walmode-4.3 {
do_test walmode-4.8 {
execsql { SELECT * FROM t1 } db2
} {1 2}
do_test walmode-4.4 {
do_test walmode-4.9 {
catchsql { PRAGMA journal_mode = delete } db
} {1 {database is locked}}
do_test walmode-4.5 {
do_test walmode-4.10 {
execsql { PRAGMA main.journal_mode } db
} {wal}
do_test walmode-4.6 {
do_test walmode-4.11 {
db2 close
execsql { PRAGMA journal_mode = delete } db
} {delete}
do_test walmode-4.7 {
do_test walmode-4.12 {
execsql { PRAGMA main.journal_mode } db
} {delete}
do_test walmode-4.8 {
do_test walmode-4.13 {
list [file exists test.db-journal] [file exists test.db-wal]
} {0 0}
do_test walmode-4.9 {
do_test walmode-4.14 {
sqlite3 db2 test.db
execsql {
BEGIN;
SELECT * FROM t1;
} db2
} {1 2}
do_test walmode-4.11 {
execsql { PRAGMA main.journal_mode } db
} {delete}
do_test walmode-4.10 {
do_test walmode-4.16 { execsql { PRAGMA main.journal_mode } db } {delete}
do_test walmode-4.17 { execsql { PRAGMA main.journal_mode } db2 } {delete}
do_test walmode-4.17 {
catchsql { PRAGMA main.journal_mode = wal } db
} {1 {database is locked}}
do_test walmode-4.11 {
do_test walmode-4.18 {
execsql { PRAGMA main.journal_mode } db
} {delete}
catch { db close }
@ -180,7 +182,6 @@ do_test walmode-5.1.1 {
sqlite3 db :memory:
execsql { PRAGMA main.journal_mode }
} {memory}
breakpoint
do_test walmode-5.1.2 {
execsql { PRAGMA main.journal_mode = wal }
} {memory}