]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a case where the doNotSyncSpill flag may remain permanently set following aIO...
authordan <dan@noemail.net>
Sat, 26 Jun 2010 17:15:07 +0000 (17:15 +0000)
committerdan <dan@noemail.net>
Sat, 26 Jun 2010 17:15:07 +0000 (17:15 +0000)
FossilOrigin-Name: 56c7d111bf7013be95a4c2a657a4861eee91db91

manifest
manifest.uuid
src/pager.c

index 9e641852d6530c8d00be75a0147e9399eb705498..2266b575499e15ce9073848968eaceb3957ca43a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C When\ssynchronous=NORMAL,\suse\sthe\ssame\sjournal\sfile\sformat\sas\swith\ssynchronous=FULL\s(i.e.\smultiple\sjournal\sheaders\swithin\sthe\sone\sjournal).\sFix\sfor\s[d11f09d36e].
-D 2010-06-26T15:42:34
+C Fix\sa\scase\swhere\sthe\sdoNotSyncSpill\sflag\smay\sremain\spermanently\sset\sfollowing\saIO\serror.
+D 2010-06-26T17:15:08
 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 4b03e5a8a353b51af64ba11ffec85160818b4d89
 F src/os_win.c 48f67798969ba983487fed5691059ade7fff2ef7
-F src/pager.c db0de9e04795c43a5fbedb0472a78421d295a2e2
+F src/pager.c 926ca1019334d53e2c0cf9e44d32ad4564cf8948
 F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
 F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
@@ -826,7 +826,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P bfd563c4714d86805fa09ce9f4f807e5d502a99b
-R 62f97e4de0e91c38030c931babbba997
+P 2eaf5ee0d9338de8a77fb3e06ad2f2b0daa6fcbe
+R e260e1abd33bd4071d904573555c1cd1
 U dan
-Z 9480f3d1537574931a028c718842710f
+Z c6f4d6d31a651c819ae2c4f1cd30dd52
index 40ed6077e624f699639b02e3a6429982ee50c1f4..59633ec45e16b9cb789b0018e144546694c67376 100644 (file)
@@ -1 +1 @@
-2eaf5ee0d9338de8a77fb3e06ad2f2b0daa6fcbe
\ No newline at end of file
+56c7d111bf7013be95a4c2a657a4861eee91db91
\ No newline at end of file
index 8c21a513e544cc90f72fb38a73cc9e9154b405cb..1552f6dcda473743680e977b8d2a3106fe49e073 100644 (file)
@@ -4857,17 +4857,18 @@ int sqlite3PagerWrite(DbPage *pDbPage){
     pg1 = ((pPg->pgno-1) & ~(nPagePerSector-1)) + 1;
 
     rc = sqlite3PagerPagecount(pPager, (int *)&nPageCount);
-    if( rc ) return rc;
-    if( pPg->pgno>nPageCount ){
-      nPage = (pPg->pgno - pg1)+1;
-    }else if( (pg1+nPagePerSector-1)>nPageCount ){
-      nPage = nPageCount+1-pg1;
-    }else{
-      nPage = nPagePerSector;
+    if( rc==SQLITE_OK ){
+      if( pPg->pgno>nPageCount ){
+        nPage = (pPg->pgno - pg1)+1;
+      }else if( (pg1+nPagePerSector-1)>nPageCount ){
+        nPage = nPageCount+1-pg1;
+      }else{
+        nPage = nPagePerSector;
+      }
+      assert(nPage>0);
+      assert(pg1<=pPg->pgno);
+      assert((pg1+nPage)>pPg->pgno);
     }
-    assert(nPage>0);
-    assert(pg1<=pPg->pgno);
-    assert((pg1+nPage)>pPg->pgno);
 
     for(ii=0; ii<nPage && rc==SQLITE_OK; ii++){
       Pgno pg = pg1+ii;