From: drh Date: Mon, 29 May 2017 14:57:23 +0000 (+0000) Subject: Avoid unnecessary calls to fstat() to determine the database file size. X-Git-Tag: version-3.20.0~237^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5f5a2d1c3c26554758782cf6c047bda6eca4d8f3;p=thirdparty%2Fsqlite.git Avoid unnecessary calls to fstat() to determine the database file size. FossilOrigin-Name: c733a1dea37e4678e7bd0d3d0ca9b8eae1fbdc28615f75d8f1e5141aa53567d9 --- diff --git a/manifest b/manifest index 563124269d..4ff4f00aa2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\stypo\sin\sa\scomment.\s\sNo\scode\schanges. -D 2017-05-29T14:30:46.634 +C Avoid\sunnecessary\scalls\sto\sfstat()\sto\sdetermine\sthe\sdatabase\sfile\ssize. +D 2017-05-29T14:57:23.932 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 8eeb80162074004e906b53d7340a12a14c471a83743aab975947e95ce061efcc @@ -391,7 +391,7 @@ F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586 F src/os_unix.c 30e2c43e4955db990e5b5a81e901f8aa74cc8820 F src/os_win.c 2a6c73eef01c51a048cc4ddccd57f981afbec18a F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a -F src/pager.c b9e2eac73c63ecb208ed56ce4db30d3ac70d367814a1d55108c1d15805a3e59d +F src/pager.c a656a65be35c03b20513017a2d45c90721ce1de549115d3c524f204603b6c58c F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa F src/parse.y 0513387ce02fea97897d8caef82d45f347818593f24f1bdc48e0c530a8af122d F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870 @@ -1581,7 +1581,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 6854a34ed708259f2280f7ee56cec09f7fc99810dc739dc2814ddeae286aa2c4 -R 51f95c83705d5e49164e8a8e656ed857 +P cb29b838886769afe866b1172e3d5d7e36387149b79c51f91cf59da3f4a5f25b +R bc8c78eb6e446da4e629bd6e66214ab1 +T *branch * io-opt +T *sym-io-opt * +T -sym-trunk * U drh -Z ba73033214a9ed109f3bb3430dcbffef +Z 5a21d8f44598546293f21185a73b0f86 diff --git a/manifest.uuid b/manifest.uuid index f4be47a677..1d262da355 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -cb29b838886769afe866b1172e3d5d7e36387149b79c51f91cf59da3f4a5f25b \ No newline at end of file +c733a1dea37e4678e7bd0d3d0ca9b8eae1fbdc28615f75d8f1e5141aa53567d9 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index cdc5751e81..c2c97d42f8 100644 --- a/src/pager.c +++ b/src/pager.c @@ -5263,19 +5263,14 @@ int sqlite3PagerSharedLock(Pager *pPager){ ** detected. The chance of an undetected change is so small that ** it can be neglected. */ - Pgno nPage = 0; char dbFileVers[sizeof(pPager->dbFileVers)]; - rc = pagerPagecount(pPager, &nPage); - if( rc ) goto failed; - - if( nPage>0 ){ - IOTRACE(("CKVERS %p %d\n", pPager, sizeof(dbFileVers))); - rc = sqlite3OsRead(pPager->fd, &dbFileVers, sizeof(dbFileVers), 24); - if( rc!=SQLITE_OK && rc!=SQLITE_IOERR_SHORT_READ ){ + IOTRACE(("CKVERS %p %d\n", pPager, sizeof(dbFileVers))); + rc = sqlite3OsRead(pPager->fd, &dbFileVers, sizeof(dbFileVers), 24); + if( rc!=SQLITE_OK ){ + if( rc!=SQLITE_IOERR_SHORT_READ ){ goto failed; } - }else{ memset(dbFileVers, 0, sizeof(dbFileVers)); }