]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Restore the size information in the BtShared structure when a transaction
authordrh <drh@noemail.net>
Thu, 1 Apr 2010 02:22:19 +0000 (02:22 +0000)
committerdrh <drh@noemail.net>
Thu, 1 Apr 2010 02:22:19 +0000 (02:22 +0000)
rolls back.

FossilOrigin-Name: 802aeb30c9baf4059fa84f4693f290f80d3a4085

manifest
manifest.uuid
src/btree.c

index 57a1433a5e2b39edb1e495d2366182aa55bee76c..c1d2d40f0f634e43748f602e0f629bb54dd28de0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Make\ssure\san\sOOM\serror\son\ssqlite3PagerPagecount()\sis\sdetected\sand\sreported\nout\sto\sthe\sinterface.
-D 2010-03-31T23:20:04
+C Restore\sthe\ssize\sinformation\sin\sthe\sBtShared\sstructure\swhen\sa\stransaction\nrolls\sback.
+D 2010-04-01T02:22:20
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -112,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 02ad0060d00a05dd167a3b60e1c9abb8f4679cb3
+F src/btree.c 639a8ca0656708e1448d60757a7ac4342ddddcf8
 F src/btree.h ad6cff92286f9b02ec32f0b97136e9a544249f37
 F src/btreeInt.h 22447d259639271774a931cbf66aa55112846681
 F src/build.c 11100b66fb97638d2d874c1d34d8db90650bb1d7
@@ -797,14 +797,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P a91db0b1cd0b0fbadc5c8fe2eb8863629b411d87
-R d0cfacaf286f70607c801b2627e3ae09
+P 8aecf302a5aac66e43a8cc6c4e0d917f74e9e0de
+R bd1d919e84a4b353ebc0e7345ab0655f
 U drh
-Z c3eaed996d3d32543d54fe382e9d282d
+Z ed0dff6d70629b6b387b9571deb31dbc
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFLs9ipoxKgR168RlERAoJtAJ0e7fA4jGclTUv0A6kz2i9Ci2nJlwCferWu
-1xFYT/N/pXTWZeYe5uezcH0=
-=FDGP
+iD8DBQFLtANfoxKgR168RlERArNuAJ9P3VmiLa1914Cr4qg4M+NSrvdCAQCfSUDl
+h2MNlBC2RVGWwOilTcrxl34=
+=m3P9
 -----END PGP SIGNATURE-----
index 123704951ad4c3db55f3e2020fbb8815ef4c7248..907a91f57ce74def9834b63cd2bbdf89341d5f58 100644 (file)
@@ -1 +1 @@
-8aecf302a5aac66e43a8cc6c4e0d917f74e9e0de
\ No newline at end of file
+802aeb30c9baf4059fa84f4693f290f80d3a4085
\ No newline at end of file
index 0b60a78977c551989b6055843ae05599e74c1d82..0a3d4a2aa7da1d5936df48347a4bcbf7641f983b 100644 (file)
@@ -3198,6 +3198,11 @@ int sqlite3BtreeRollback(Btree *p){
     ** call btreeGetPage() on page 1 again to make
     ** sure pPage1->aData is set correctly. */
     if( btreeGetPage(pBt, 1, &pPage1, 0)==SQLITE_OK ){
+      int nPage = get4byte(28+(u8*)pPage1->aData);
+      testcase( nPage==0 );
+      if( nPage==0 ) sqlite3PagerPagecount(pBt->pPager, &nPage);
+      testcase( pBt->nPage!=nPage );
+      pBt->nPage = nPage;
       releasePage(pPage1);
     }
     assert( countWriteCursors(pBt)==0 );