]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix handling of errors returned by the SQLITE_FCNTL_OMIT_SYNCED file-control.
authordan <dan@noemail.net>
Tue, 10 Dec 2013 16:27:59 +0000 (16:27 +0000)
committerdan <dan@noemail.net>
Tue, 10 Dec 2013 16:27:59 +0000 (16:27 +0000)
FossilOrigin-Name: d9a5f44f4a27336d41e60b6c3791bd018fbbff6f

manifest
manifest.uuid
src/pager.c

index 49f2c98b6817932b6c85c9eb692edd553dff3258..5aed39add38513342160a4fb0e276deb040b993d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Modify\sthe\sway\ssome\sinternal\sfile-controls\sare\sinvoked.\sIn\sorder\sto\ssupport\smulti-file\stransactions\sin\sthe\szipvfs\sextension.
-D 2013-12-09T20:42:03.163
+C Fix\shandling\sof\serrors\sreturned\sby\sthe\sSQLITE_FCNTL_OMIT_SYNCED\sfile-control.
+D 2013-12-10T16:27:59.750
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e1a9b4258bbde53f5636f4e238c65b7e11459e2b
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -207,7 +207,7 @@ F src/os.h 4a46270a64e9193af4a0aaa3bc2c66dc07c29b3f
 F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
 F src/os_unix.c 60a7b3b23e6fcf83a50d1e320b280b551724e11f
 F src/os_win.c 4323dd0bac4f7a7037fc4cf87fb4692d17f0b108
-F src/pager.c b28711af0f595414a7017f6993d4e6f90a3d2114
+F src/pager.c 994fc67f465f4e9159263aa1489cbe608e17d236
 F src/pager.h 6a790b64a9ea79bc2c849bdefdd39e2344bca94a
 F src/parse.y acee1a9958539e21263362b194594c5255ad2fca
 F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
@@ -1146,10 +1146,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P fbfc075a5a3c9c5c98353f396f9da7f7ec7c1c04
-R e8a2a861e9953d868791659025627e6a
-T *branch * zipvfs-multifile-commit
-T *sym-zipvfs-multifile-commit *
-T -sym-trunk *
+P 32fb1784af4594161d954343e3787db702000a4d
+R 821341bcc4c1c23a6ba2875fa8192ed8
 U dan
-Z 19770b8e4b3ab930c64ec8e320e02ae3
+Z 4f103f173d76892892a97e68b335b863
index c4279a2bfeb8696e2087f30aa41940d1e7ebb00b..b73efe0768679b4df8d230fad20c43299fecde63 100644 (file)
@@ -1 +1 @@
-32fb1784af4594161d954343e3787db702000a4d
\ No newline at end of file
+d9a5f44f4a27336d41e60b6c3791bd018fbbff6f
\ No newline at end of file
index 3a59ca29e1fa65e2c3064dae463d7a2cfcd9a963..395fe0070a9d79db6fb2bdda64a67824450c6235 100644 (file)
@@ -6020,7 +6020,7 @@ int sqlite3PagerSync(Pager *pPager, const char *zMaster){
     rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_SYNC_OMITTED, pArg);
     if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;
   }
-  if( !pPager->noSync ){
+  if( rc==SQLITE_OK && !pPager->noSync ){
     assert( !MEMDB );
     rc = sqlite3OsSync(pPager->fd, pPager->syncFlags);
   }
@@ -6350,7 +6350,9 @@ int sqlite3PagerRollback(Pager *pPager){
 
   assert( pPager->eState==PAGER_READER || rc!=SQLITE_OK );
   assert( rc==SQLITE_OK || rc==SQLITE_FULL || rc==SQLITE_CORRUPT
-          || rc==SQLITE_NOMEM || (rc&0xFF)==SQLITE_IOERR );
+          || rc==SQLITE_NOMEM || (rc&0xFF)==SQLITE_IOERR 
+          || rc==SQLITE_CANTOPEN
+  );
 
   /* If an error occurs during a ROLLBACK, we can no longer trust the pager
   ** cache. So call pager_error() on the way out to make any error persistent.