diff options
-rw-r--r-- | manifest | 16 | ||||
-rw-r--r-- | manifest.uuid | 2 | ||||
-rw-r--r-- | src/btree.c | 9 | ||||
-rw-r--r-- | test/incrvacuum.test | 11 | ||||
-rw-r--r-- | test/vacuum2.test | 23 |
5 files changed, 44 insertions, 17 deletions
@@ -1,5 +1,5 @@ -C Move\sthe\stext\sof\sC-API\srequirements\sout\sof\sthe\ssqlite.h.in\ssource\sfile\sand\ninto\sseparate\sfiles\sin\sthe\s"docsrc"\sCM\ssystem.\s\sComment\schanges\sonly\s-\sno\nchanges\sto\scode.\s(CVS\s6303) -D 2009-02-18T18:37:59 +C Make\ssure\sthe\sauto_vacuum=INCREMENTAL\ssetting\sis\spreserved\sacross\sa\sVACUUM.\nTicket\s#3663.\s(CVS\s6304) +D 2009-02-18T20:31:18 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 1d83fa2b1fd326b9e121012bd1ff9740537e12b3 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -104,7 +104,7 @@ F src/auth.c c8b2ab5c8bad4bd90ed7c294694f48269162c627 F src/backup.c 2d3f31148d7b086c5c72d9edcd04fc2751b0aa6e F src/bitvec.c 44f7059ac1f874d364b34af31b9617e52223ba75 F src/btmutex.c 63c5cc4ad5715690767ffcb741e185d7bc35ec1a -F src/btree.c 71f30e74389aa7ae51421592dfaf69511152677c +F src/btree.c 086fdb4505aa00275d6873829aeb51bf57da8d16 F src/btree.h 4eab72af6adf95f0b08b61a72ef9781bdb0bf63f F src/btreeInt.h 0a4884e6152d7cae9c741e91b830064c19fd2c05 F src/build.c a394b2511c5c768f14a9d7c1c31606b9fa569f1b @@ -393,7 +393,7 @@ F test/in4.test f795d65cbcb402d3e5c016ada8f9521d6119eca8 F test/incrblob.test 4b9437bbb38724343dadbbcca6356bc2a9b435d1 F test/incrblob2.test 5cca1c3cb29064c504b3b0cc3e2cd43e8053cfdf F test/incrblob_err.test c577c91d4ed9e8336cdb188b15d6ee2a6fe9604e -F test/incrvacuum.test 39518fb7afbccc435be5d99f0b786d2396d7335c +F test/incrvacuum.test d0fb6ef6d747ef5c5ebe878aafa72dd3e178856b F test/incrvacuum2.test 46ef65f377e3937cfd1ba66e818309dab46f590d F test/incrvacuum_ioerr.test 57d2f5777ab13fa03b87b262a4ea1bad5cfc0291 F test/index.test cbf301cdb2da43e4eac636c3400c2439af1834ad @@ -645,7 +645,7 @@ F test/unique.test 0253c4227a5dc533e312202ce21ecfad18058d18 F test/update.test 8bc86fd7ef1a00014f76dc6a6a7c974df4aef172 F test/utf16align.test 54cd35a27c005a9b6e7815d887718780b6a462ae F test/vacuum.test 68e39b2228b4b772166debef4a82accf6ddd32f3 -F test/vacuum2.test fd87eec0ed72c6cc0809f7867929e2895affed92 +F test/vacuum2.test ec57f21d394b7b72249b11f8e4b5d487bab56539 F test/vacuum3.test f39ad1428347c5808cd2da7578c470f186a4d0ce F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102 F test/veryquick.test e265401afefa994cdf2fe4b6f286b1e87c2f9b9d @@ -701,7 +701,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P fb281950c51ef81797f93d797113d328d66a7cb0 -R 0effd0f4f2c789818b4f05af2f9c8611 +P 419eb48b6b4238526850091eef28af503b6c4579 +R 379eb6edfb0135905a7c816f1113ae71 U drh -Z bc5849ca8532d7fbaa4a8dd8511ed496 +Z bfca2c680cc89c0b0c6a5ad192f03b32 diff --git a/manifest.uuid b/manifest.uuid index a51f95d86..61fbf41b3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -419eb48b6b4238526850091eef28af503b6c4579
\ No newline at end of file +ded04f12f41504e4a3ecd5164f0d4cbbde5e16f7
\ No newline at end of file diff --git a/src/btree.c b/src/btree.c index c4bb5346a..5fb0306f4 100644 --- a/src/btree.c +++ b/src/btree.c @@ -9,7 +9,7 @@ ** May you share freely, never taking more than you give. ** ************************************************************************* -** $Id: btree.c,v 1.565 2009/02/04 01:49:30 shane Exp $ +** $Id: btree.c,v 1.566 2009/02/18 20:31:18 drh Exp $ ** ** This file implements a external (disk-based) database using BTrees. ** See the header comment on "btreeInt.h" for additional information. @@ -1774,13 +1774,14 @@ int sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum){ #else BtShared *pBt = p->pBt; int rc = SQLITE_OK; - u8 av = autoVacuum ?1:0; + u8 av = (u8)autoVacuum; sqlite3BtreeEnter(p); - if( pBt->pageSizeFixed && av!=pBt->autoVacuum ){ + if( pBt->pageSizeFixed && (av ?1:0)!=pBt->autoVacuum ){ rc = SQLITE_READONLY; }else{ - pBt->autoVacuum = av; + pBt->autoVacuum = av ?1:0; + pBt->incrVacuum = av==2 ?1:0; } sqlite3BtreeLeave(p); return rc; diff --git a/test/incrvacuum.test b/test/incrvacuum.test index e1c920377..fe10acb3d 100644 --- a/test/incrvacuum.test +++ b/test/incrvacuum.test @@ -14,7 +14,7 @@ # Note: There are also some tests for incremental vacuum and IO # errors in incrvacuum_ioerr.test. # -# $Id: incrvacuum.test,v 1.22 2009/01/30 05:47:15 shane Exp $ +# $Id: incrvacuum.test,v 1.23 2009/02/18 20:31:18 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -673,9 +673,14 @@ do_test incrvacuum-12.2 { do_test incrvacuum-12.3 { execsql { ROLLBACK; } db2 execsql { PRAGMA auto_vacuum } -} {1} +} {2} ;# Still 2 because PRAGMA auto_vacuum setting held in case of vacuum +do_test incrvacuum-12.4 { + db close + sqlite3 db test.db + execsql { PRAGMA auto_vacuum } +} {1} ;# Revert to 1 because the database file did not change -do_test incrvacuum-12.3 { +do_test incrvacuum-12.5 { execsql { SELECT * FROM sqlite_master } execsql { PRAGMA auto_vacuum } } {1} diff --git a/test/vacuum2.test b/test/vacuum2.test index b96fbdec7..3cd616536 100644 --- a/test/vacuum2.test +++ b/test/vacuum2.test @@ -11,7 +11,7 @@ # This file implements regression tests for SQLite library. The # focus of this file is testing the VACUUM statement. # -# $Id: vacuum2.test,v 1.9 2008/11/10 18:20:16 shane Exp $ +# $Id: vacuum2.test,v 1.10 2009/02/18 20:31:18 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -155,10 +155,31 @@ ifcapable autovacuum { } } {ok} do_test vacuum2-4.4 { + db close + sqlite3 db test.db execsql { pragma auto_vacuum; } } {1} + do_test vacuum2-4.5 { # Ticket #3663 + execsql { + pragma auto_vacuum=2; + vacuum; + pragma auto_vacuum; + } + } {2} + do_test vacuum2-4.6 { + execsql { + pragma integrity_check + } + } {ok} + do_test vacuum2-4.7 { + db close + sqlite3 db test.db + execsql { + pragma auto_vacuum; + } + } {2} } finish_test |