mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Do not attempt to open a WAL file for an in-memory or temporary database. Even if the database header suggests that it is a WAL database.
FossilOrigin-Name: 0fd809243652256d83ddcb58cf4890080654c667
This commit is contained in:
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Change\scode\sin\sOP_Rewind\sto\savoid\sa\svalgrind\swarning\sfollowing\san\serror\sin\sthe\sbtree\slayer.\sThis\schange\sdoes\snot\sfix\sany\sbug,\sjust\sa\swarning.
|
||||
D 2010-07-03T05:56:09
|
||||
C Do\snot\sattempt\sto\sopen\sa\sWAL\sfile\sfor\san\sin-memory\sor\stemporary\sdatabase.\sEven\sif\sthe\sdatabase\sheader\ssuggests\sthat\sit\sis\sa\sWAL\sdatabase.
|
||||
D 2010-07-03T08:01:25
|
||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||
F Makefile.in a5cad1f8f3e021356bfcc6c77dc16f6f1952bbc3
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@ -156,7 +156,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
|
||||
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
|
||||
F src/os_unix.c d7910391a4c9fa6898f7c9abbbb821d5d7edb78f
|
||||
F src/os_win.c dd4c6f238fe464e01dab5e4bc9158187ae305fe8
|
||||
F src/pager.c b75a7fa96ecc8bef91bb014499f77a8f5f705252
|
||||
F src/pager.c 52afdedf4516cf772f3e99cec16635c1e2a2edcf
|
||||
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
||||
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
|
||||
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
|
||||
@ -778,7 +778,7 @@ F test/wal2.test 9f2c2a00358b1466bc38feda85f105a4fb52f251
|
||||
F test/wal3.test bb3bc0be06411c2d147c1d1d636b6208fbe0349d
|
||||
F test/wal4.test 640be93f5422df37203aa5e7c06b24fb5e4a2439
|
||||
F test/wal_common.tcl 875ee2118cd7b292ba22fb9bfa66a984b5226b13
|
||||
F test/walbak.test e5632adde03fbb0533b9928a89468566ef78a710
|
||||
F test/walbak.test 4df1c7369da0301caeb9a48fa45997fd592380e4
|
||||
F test/walcksum.test a37b36375c595e61bdb7e1ec49b5f0979b6fc7ce
|
||||
F test/walcrash.test f6d5fb2bb108876f04848720a488065d9deef69f
|
||||
F test/walcrash2.test 019d60b89d96c1937adb2b30b850ac7e86e5a142
|
||||
@ -830,7 +830,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||
P 15bb62330681a5b2aad95a1d1fc9ab8f6f1bd6b9
|
||||
R 2daf67e2c97f2522d0a641db910c6230
|
||||
P 4f62dbcfc96855f69e71d163bfc051d9db08cca9
|
||||
R f52a1f85e73238582a4b7261462e4b43
|
||||
U dan
|
||||
Z d86c1d42297398b15e19f64ea94bb433
|
||||
Z e8767c792bb517bede02d353e2828146
|
||||
|
@ -1 +1 @@
|
||||
4f62dbcfc96855f69e71d163bfc051d9db08cca9
|
||||
0fd809243652256d83ddcb58cf4890080654c667
|
@ -16,6 +16,7 @@
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
source $testdir/wal_common.tcl
|
||||
source $testdir/malloc_common.tcl
|
||||
|
||||
do_not_use_codec
|
||||
|
||||
@ -25,8 +26,12 @@ ifcapable !wal {finish_test ; return }
|
||||
# Test organization:
|
||||
#
|
||||
# walback-1.*: Simple tests.
|
||||
#
|
||||
# walback-2.*: Test backups when the source db is modified mid-backup.
|
||||
#
|
||||
# walback-3.*: Backup of WAL sources into rollback destinations, and
|
||||
# vice-versa.
|
||||
#
|
||||
|
||||
# Make sure a simple backup from a WAL database works.
|
||||
#
|
||||
@ -181,5 +186,94 @@ do_test walbak-2.12 {
|
||||
string compare [sig db] [sig db2]
|
||||
} {0}
|
||||
db2 close
|
||||
db close
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Run some backup operations to copy back and forth between WAL and:
|
||||
#
|
||||
# walbak-3.1.*: an in-memory database
|
||||
#
|
||||
# walbak-3.2.*: a temporary database
|
||||
#
|
||||
# walbak-3.3.*: a database in rollback mode.
|
||||
#
|
||||
# walbak-3.4.*: a database in rollback mode that (initially) uses a
|
||||
# different page-size.
|
||||
#
|
||||
# Check that this does not confuse any connected clients.
|
||||
#
|
||||
foreach {tn setup} {
|
||||
1 {
|
||||
sqlite3 db test.db
|
||||
sqlite3 db2 :memory:
|
||||
db eval { PRAGMA page_size = 1024 ; PRAGMA journal_mode = WAL }
|
||||
db2 eval { PRAGMA page_size = 1024 }
|
||||
}
|
||||
|
||||
2 {
|
||||
sqlite3 db test.db
|
||||
sqlite3 db2 ""
|
||||
db eval { PRAGMA page_size = 1024 ; PRAGMA journal_mode = WAL }
|
||||
db2 eval { PRAGMA page_size = 1024 }
|
||||
}
|
||||
|
||||
3 {
|
||||
sqlite3 db test.db
|
||||
sqlite3 db2 test.db2
|
||||
db eval { PRAGMA page_size = 1024 ; PRAGMA journal_mode = WAL }
|
||||
db2 eval { PRAGMA page_size = 1024 ; PRAGMA journal_mode = PERSIST }
|
||||
}
|
||||
|
||||
4 {
|
||||
sqlite3 db test.db
|
||||
sqlite3 db2 test.db2
|
||||
db eval { PRAGMA page_size = 1024 ; PRAGMA journal_mode = WAL }
|
||||
db2 eval {
|
||||
PRAGMA page_size = 2048;
|
||||
PRAGMA journal_mode = PERSIST;
|
||||
CREATE TABLE xx(x);
|
||||
}
|
||||
}
|
||||
|
||||
} {
|
||||
foreach f [glob -nocomplain test.db*] { file delete -force $f }
|
||||
|
||||
eval $setup
|
||||
|
||||
do_test walbak-3.$tn.1 {
|
||||
execsql {
|
||||
CREATE TABLE t1(a, b);
|
||||
INSERT INTO t1 VALUES(1, 2);
|
||||
INSERT INTO t1 VALUES(3, 4);
|
||||
SELECT * FROM t1;
|
||||
}
|
||||
} {1 2 3 4}
|
||||
|
||||
do_test walbak-3.$tn.2 {
|
||||
sqlite3_backup B db2 main db main
|
||||
B step 10000
|
||||
B finish
|
||||
execsql { SELECT * FROM t1 } db2
|
||||
} {1 2 3 4}
|
||||
|
||||
do_test walbak-3.$tn.3 {
|
||||
execsql {
|
||||
INSERT INTO t1 VALUES(5, 6);
|
||||
INSERT INTO t1 VALUES(7, 8);
|
||||
SELECT * FROM t1;
|
||||
} db2
|
||||
} {1 2 3 4 5 6 7 8}
|
||||
|
||||
do_test walbak-3.$tn.4 {
|
||||
sqlite3_backup B db main db2 main
|
||||
B step 10000
|
||||
B finish
|
||||
execsql { SELECT * FROM t1 }
|
||||
} {1 2 3 4 5 6 7 8}
|
||||
|
||||
db close
|
||||
db2 close
|
||||
}
|
||||
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user