]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When rolling back a savepoint to the beginning of the transaction, make sure
authordrh <drh@noemail.net>
Wed, 7 Apr 2010 20:29:56 +0000 (20:29 +0000)
committerdrh <drh@noemail.net>
Wed, 7 Apr 2010 20:29:56 +0000 (20:29 +0000)
to initialize the database size in the btree layer correctly even if the
database size field of the header is zeroed.

FossilOrigin-Name: a3540c6acf2bb6bdd44c101b63f17ca85e6b68ed

manifest
manifest.uuid
src/btree.c

index 46fde27af63414303a20a36b05b0c55fbdcad715..dc0a0e8fea582b013752b54f1d3a0d547060a414 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,8 @@
-C Add\sfile\stest_demovfs.c,\scontaining\sa\ssimple\sVFS\simplementation\sthat\sdemonstrates\show\swrites\sto\sthe\sjournal\sfile\smay\sbe\ssafely\sbuffered\sby\sthe\sVFS\slayer\sto\simprove\sperformance\son\ssome\sembedded\ssystems.
-D 2010-04-07T07:57:38
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+C When\srolling\sback\sa\ssavepoint\sto\sthe\sbeginning\sof\sthe\stransaction,\smake\ssure\nto\sinitialize\sthe\sdatabase\ssize\sin\sthe\sbtree\slayer\scorrectly\seven\sif\sthe\ndatabase\ssize\sfield\sof\sthe\sheader\sis\szeroed.
+D 2010-04-07T20:29:56
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -109,7 +112,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c e86634da8c48357a759694c9c7c471125cd8d5a8
 F src/bitvec.c 06ad2c36a9c3819c0b9cbffec7b15f58d5d834e0
 F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
-F src/btree.c aa756431f712e4c30af0d0fd4df4d43897471a34
+F src/btree.c 01559397cbd4a5aa62a822e8ca9ac94b6db14743
 F src/btree.h ad6cff92286f9b02ec32f0b97136e9a544249f37
 F src/btreeInt.h 22447d259639271774a931cbf66aa55112846681
 F src/build.c 11100b66fb97638d2d874c1d34d8db90650bb1d7
@@ -795,7 +798,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 8e1d7ef47f643503aa823d9986a931a83c63648b
-R 51bcf35b7373f79d429efbdc98d47286
-U dan
-Z 0d0fcce2f576d5ee2c7b69eff33a7bc0
+P af3b72d94a1b6513f02402af3ada5fb5dd390151
+R f78c9929d17e46d2aa7049123364c764
+U drh
+Z 4bb39b0a9403860754323008ca41f9d2
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQFLvOtHoxKgR168RlERAr6UAJ9fo0g92PB14exEgBW5OrP0Aot84wCfZZHy
+n7PVWjhCjUBrl1g3CQG0QF4=
+=WMyU
+-----END PGP SIGNATURE-----
index ad07ecd44fbe97b37809ad7bac4cf282bd38ac94..27988654644afe8d07d2a5b22862ed1ccd5c2c7e 100644 (file)
@@ -1 +1 @@
-af3b72d94a1b6513f02402af3ada5fb5dd390151
\ No newline at end of file
+a3540c6acf2bb6bdd44c101b63f17ca85e6b68ed
\ No newline at end of file
index 8ee1662695ce1552a4645c4a9c71e01f9ff0a94c..c8810543a17ccc9d6673f03dacec8d317215d960 100644 (file)
@@ -3280,6 +3280,9 @@ int sqlite3BtreeSavepoint(Btree *p, int op, int iSavepoint){
       if( iSavepoint<0 && pBt->initiallyEmpty ) pBt->nPage = 0;
       rc = newDatabase(pBt);
       pBt->nPage = get4byte(28 + pBt->pPage1->aData);
+      if( pBt->nPage==0 ){
+        sqlite3PagerPagecount(pBt->pPager, (int*)&pBt->nPage);
+      }
     }
     sqlite3BtreeLeave(p);
   }