-C Cause\sthe\smmap_size\sPRAGMA\sto\simmediately\schange\sthe\smmap\sspace\sif\sthe\ndatabase\sconnection\sis\salready\sactive.\s\sIn\sparticular,\sreducing\smmap_size\nwill\simmediately\sfree\sup\sprocess\saddress\sspace.
-D 2013-05-23T01:40:53.974
+C Avoid\sunnecessary\scalls\sto\sFCNTL_SIZE_HINT.\sReturn\san\serror\sto\sthe\suser\sif\sthe\sfile-control\sinvoked\sby\s"PRAGMA\smmap_size"\sreturns\sa\svalue\sother\sthan\sSQLITE_OK\sor\sSQLITE_NOTFOUND.
+D 2013-05-23T10:13:18.105
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in f6b58b7bdf6535f0f0620c486dd59aa4662c0b4f
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
F src/os_unix.c 42c9b8b7c61c9fa3561258f523be5749e52ed0e0
F src/os_win.c 5f018dbd4cec25c5b47e11432b946a7d2ccee60b
-F src/pager.c 49e23f9898113ddfe90942bdf1c1ef57955d0921
+F src/pager.c 3709c5c9e2eb566fffba6348508b7212c4d06ca3
F src/pager.h 5cb78b8e1adfd5451e600be7719f5a99d87ac3b1
F src/parse.y 9708365594eea519cdc8504dee425c0a41c79502
F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
F src/pcache.h a5e4f5d9f5d592051d91212c5949517971ae6222
F src/pcache1.c 9fd22671c270b35131ef480bbc00392b8b5f8ab9
-F src/pragma.c 8779308bc1ea1901c4bc94dfe9a83d436f73f52c
+F src/pragma.c 8bf4bfaef7975abff45e55230ed1033b5f208d11
F src/prepare.c 743e484233c51109666d402f470523553b41797c
F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P 118a3b35693b134d56ebd780123b7fd6f1497668
-R 743f49e6500daee258364b50095b5869
-U drh
-Z 8b8fce9c808b567d366ba2a76c063d60
+P 761177927cb51e4f5e66061ca39cf37edbe8346b
+R f79c1bfda6a2029cdca9b19f9c8cc1f9
+U dan
+Z 2a86c7dc006c06bc92b2aaaf78345975
*/
assert( rc!=SQLITE_OK || isOpen(pPager->fd) );
if( rc==SQLITE_OK
- && (pList->pDirty ? pPager->dbSize : pList->pgno+1)>pPager->dbHintSize
+ && pPager->dbHintSize<pPager->dbSize
+ && (pList->pDirty || pList->pgno>pPager->dbHintSize)
){
sqlite3_int64 szFile = pPager->pageSize * (sqlite3_int64)pPager->dbSize;
sqlite3OsFileControlHint(pPager->fd, SQLITE_FCNTL_SIZE_HINT, &szFile);
}
}
sz = -1;
- if( sqlite3_file_control(db,zDb,SQLITE_FCNTL_MMAP_SIZE,&sz)==SQLITE_OK ){
+ rc = sqlite3_file_control(db, zDb, SQLITE_FCNTL_MMAP_SIZE, &sz);
#if SQLITE_MAX_MMAP_SIZE==0
- sz = 0;
+ sz = 0;
#endif
+ if( rc==SQLITE_OK ){
returnSingleInt(pParse, "mmap_size", sz);
+ }else if( rc!=SQLITE_NOTFOUND ){
+ pParse->nErr++;
+ pParse->rc = rc;
}
}else