mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
When rolling back a savepoint, reset the changeCountDone flag.
FossilOrigin-Name: fb62f4e3a7ceaa60ff6af2196ccf35b48759307e
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
|||||||
C When\susing\sMSVC\sto\sbuild\stest\scode,\ssuppress\sthe\spopup\sdialog\swhen\sabort\sis\scalled\sfrom\sthe\ssqlite_abort()\stest\sfunction.
|
C When\srolling\sback\sa\ssavepoint,\sreset\sthe\schangeCountDone\sflag.
|
||||||
D 2010-07-07T16:51:36
|
D 2010-07-07T17:53:52
|
||||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||||
F Makefile.in c4270a1cd7cd70a263b7e96a258aa90e9c3618eb
|
F Makefile.in c4270a1cd7cd70a263b7e96a258aa90e9c3618eb
|
||||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||||
@@ -156,7 +156,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
|
|||||||
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
|
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
|
||||||
F src/os_unix.c c6112f0ae34f23ae5ca0189a685e084befbdcf26
|
F src/os_unix.c c6112f0ae34f23ae5ca0189a685e084befbdcf26
|
||||||
F src/os_win.c f0a56db57896466b25c82d224131a2b095352555
|
F src/os_win.c f0a56db57896466b25c82d224131a2b095352555
|
||||||
F src/pager.c 39f61b5161191bae00bdef32aab84338d3ab9342
|
F src/pager.c 1ef321efa5839ebc9e563ace6fce30bfa5bdb661
|
||||||
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
||||||
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
|
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
|
||||||
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
|
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
|
||||||
@@ -559,7 +559,7 @@ F test/rollback.test 1a83118ea6db4e7d8c10eaa63871b5e90502ffdc
|
|||||||
F test/rowhash.test 0bc1d31415e4575d10cacf31e1a66b5cc0f8be81
|
F test/rowhash.test 0bc1d31415e4575d10cacf31e1a66b5cc0f8be81
|
||||||
F test/rowid.test e58e0acef38b527ed1b0b70d3ada588f804af287
|
F test/rowid.test e58e0acef38b527ed1b0b70d3ada588f804af287
|
||||||
F test/rtree.test fb372aff108d4371bd0b5e63e106947587ff4310
|
F test/rtree.test fb372aff108d4371bd0b5e63e106947587ff4310
|
||||||
F test/savepoint.test 14f78c2c2538764850b38446957048113cc24f75
|
F test/savepoint.test 7a3f04addd4bd3e0dcca288542c31aece5c14f47
|
||||||
F test/savepoint2.test 9b8543940572a2f01a18298c3135ad0c9f4f67d7
|
F test/savepoint2.test 9b8543940572a2f01a18298c3135ad0c9f4f67d7
|
||||||
F test/savepoint3.test e328085853b14898d78ceea00dfe7db18bb6a9ec
|
F test/savepoint3.test e328085853b14898d78ceea00dfe7db18bb6a9ec
|
||||||
F test/savepoint4.test c8f8159ade6d2acd9128be61e1230f1c1edc6cc0
|
F test/savepoint4.test c8f8159ade6d2acd9128be61e1230f1c1edc6cc0
|
||||||
@@ -831,7 +831,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
|||||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
P b951c8675df3e719c30a1dd94200b7c04252a3ea
|
P 55d3d39f1c653627fc4c048e12fdd8c4444b6de7
|
||||||
R 43e991ee321ad55068675a2f623b21b2
|
R 468894c7f6d156cd246fd3471bd6d3a8
|
||||||
U shaneh
|
U dan
|
||||||
Z 68697bcc7d9a7e89050452dac7565276
|
Z 7eb5028e0ecc11263cd317ca187b4b40
|
||||||
|
@@ -1 +1 @@
|
|||||||
55d3d39f1c653627fc4c048e12fdd8c4444b6de7
|
fb62f4e3a7ceaa60ff6af2196ccf35b48759307e
|
@@ -2546,6 +2546,7 @@ static int pagerPlaybackSavepoint(Pager *pPager, PagerSavepoint *pSavepoint){
|
|||||||
** being reverted was opened.
|
** being reverted was opened.
|
||||||
*/
|
*/
|
||||||
pPager->dbSize = pSavepoint ? pSavepoint->nOrig : pPager->dbOrigSize;
|
pPager->dbSize = pSavepoint ? pSavepoint->nOrig : pPager->dbOrigSize;
|
||||||
|
pPager->changeCountDone = pPager->tempFile;
|
||||||
|
|
||||||
if( !pSavepoint && pagerUseWal(pPager) ){
|
if( !pSavepoint && pagerUseWal(pPager) ){
|
||||||
return pagerRollbackWal(pPager);
|
return pagerRollbackWal(pPager);
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
set testdir [file dirname $argv0]
|
set testdir [file dirname $argv0]
|
||||||
source $testdir/tester.tcl
|
source $testdir/tester.tcl
|
||||||
|
source $testdir/lock_common.tcl
|
||||||
|
source $testdir/malloc_common.tcl
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
# The following tests - savepoint-1.* - test that the SAVEPOINT, RELEASE
|
# The following tests - savepoint-1.* - test that the SAVEPOINT, RELEASE
|
||||||
@@ -906,4 +908,62 @@ if {[wal_is_wal_mode]==0} {
|
|||||||
} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16}
|
} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db close
|
||||||
|
file delete test.db
|
||||||
|
do_multiclient_test tn {
|
||||||
|
do_test savepoint-14.$tn.1 {
|
||||||
|
sql1 {
|
||||||
|
CREATE TABLE foo(x);
|
||||||
|
INSERT INTO foo VALUES(1);
|
||||||
|
INSERT INTO foo VALUES(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
sql2 {
|
||||||
|
BEGIN;
|
||||||
|
SELECT * FROM foo;
|
||||||
|
}
|
||||||
|
} {1 2}
|
||||||
|
do_test savepoint-14.$tn.2 {
|
||||||
|
sql1 {
|
||||||
|
SAVEPOINT one;
|
||||||
|
INSERT INTO foo VALUES(1);
|
||||||
|
}
|
||||||
|
csql1 { RELEASE one }
|
||||||
|
} {1 {database is locked}}
|
||||||
|
do_test savepoint-14.$tn.3 {
|
||||||
|
sql1 { ROLLBACK TO one }
|
||||||
|
sql2 { COMMIT }
|
||||||
|
sql1 { RELEASE one }
|
||||||
|
} {}
|
||||||
|
|
||||||
|
do_test savepoint-14.$tn.4 {
|
||||||
|
sql2 {
|
||||||
|
BEGIN;
|
||||||
|
SELECT * FROM foo;
|
||||||
|
}
|
||||||
|
} {1 2}
|
||||||
|
do_test savepoint-14.$tn.5 {
|
||||||
|
sql1 {
|
||||||
|
SAVEPOINT one;
|
||||||
|
INSERT INTO foo VALUES(1);
|
||||||
|
}
|
||||||
|
csql1 { RELEASE one }
|
||||||
|
} {1 {database is locked}}
|
||||||
|
do_test savepoint-14.$tn.6 {
|
||||||
|
sql2 { COMMIT }
|
||||||
|
sql1 {
|
||||||
|
ROLLBACK TO one;
|
||||||
|
INSERT INTO foo VALUES(3);
|
||||||
|
INSERT INTO foo VALUES(4);
|
||||||
|
INSERT INTO foo VALUES(5);
|
||||||
|
RELEASE one;
|
||||||
|
}
|
||||||
|
} {}
|
||||||
|
|
||||||
|
do_test savepoint-14.$tn.7 {
|
||||||
|
sql2 { CREATE INDEX fooidx ON foo(x); }
|
||||||
|
sql3 { PRAGMA integrity_check }
|
||||||
|
} {ok}
|
||||||
|
}
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
Reference in New Issue
Block a user