mirror of https://github.com/sqlite/sqlite
Omit unnecessary fstat() calls for determining the database file size,
resulting in smaller and faster code. FossilOrigin-Name: dd61c736775c53450821327495276485dced7935d0b4b5ebd17662731afc8adb
This commit is contained in:
commit
1e669f02bc
13
manifest
13
manifest
|
@ -1,5 +1,5 @@
|
|||
C Fix\san\sissue\swith\sOPT_FEATURE_FLAGS\sin\sconfigure.ac.
|
||||
D 2017-05-29T17:43:06.652
|
||||
C Omit\sunnecessary\sfstat()\scalls\sfor\sdetermining\sthe\sdatabase\sfile\ssize,\nresulting\sin\ssmaller\sand\sfaster\scode.
|
||||
D 2017-05-29T17:59:29.162
|
||||
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 14f6982c470c05b8e85575c69e9c1712010602e20400f8670d8699e21283e0e4
|
||||
F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa
|
||||
F src/parse.y 0513387ce02fea97897d8caef82d45f347818593f24f1bdc48e0c530a8af122d
|
||||
F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870
|
||||
|
@ -1581,7 +1581,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P cb29b838886769afe866b1172e3d5d7e36387149b79c51f91cf59da3f4a5f25b
|
||||
R e2b3a41fccdb38a48dfac65495552f5e
|
||||
P 43ce3bd3a4b41ea757e308e563d6c1bf7f9c09f10e4766c536d0bf1042c45613 6c3476b513965df22d648f9a1b99733af753b44d51163cc7d42a69bf562300e1
|
||||
R 2857f5fe46b44ce298433361a62d485f
|
||||
T +closed 6c3476b513965df22d648f9a1b99733af753b44d51163cc7d42a69bf562300e1
|
||||
U drh
|
||||
Z 85ccc059a781b6d7bc65af64c2ca8af5
|
||||
Z 051ef5e7e86a2fe2010357685cc35b1c
|
||||
|
|
|
@ -1 +1 @@
|
|||
43ce3bd3a4b41ea757e308e563d6c1bf7f9c09f10e4766c536d0bf1042c45613
|
||||
dd61c736775c53450821327495276485dced7935d0b4b5ebd17662731afc8adb
|
41
src/pager.c
41
src/pager.c
|
@ -3304,23 +3304,21 @@ static int pagerOpenWalIfPresent(Pager *pPager){
|
|||
|
||||
if( !pPager->tempFile ){
|
||||
int isWal; /* True if WAL file exists */
|
||||
Pgno nPage; /* Size of the database file */
|
||||
|
||||
rc = pagerPagecount(pPager, &nPage);
|
||||
if( rc ) return rc;
|
||||
if( nPage==0 ){
|
||||
rc = sqlite3OsDelete(pPager->pVfs, pPager->zWal, 0);
|
||||
if( rc==SQLITE_IOERR_DELETE_NOENT ) rc = SQLITE_OK;
|
||||
isWal = 0;
|
||||
}else{
|
||||
rc = sqlite3OsAccess(
|
||||
pPager->pVfs, pPager->zWal, SQLITE_ACCESS_EXISTS, &isWal
|
||||
);
|
||||
}
|
||||
rc = sqlite3OsAccess(
|
||||
pPager->pVfs, pPager->zWal, SQLITE_ACCESS_EXISTS, &isWal
|
||||
);
|
||||
if( rc==SQLITE_OK ){
|
||||
if( isWal ){
|
||||
testcase( sqlite3PcachePagecount(pPager->pPCache)==0 );
|
||||
rc = sqlite3PagerOpenWal(pPager, 0);
|
||||
Pgno nPage; /* Size of the database file */
|
||||
|
||||
rc = pagerPagecount(pPager, &nPage);
|
||||
if( rc ) return rc;
|
||||
if( nPage==0 ){
|
||||
rc = sqlite3OsDelete(pPager->pVfs, pPager->zWal, 0);
|
||||
}else{
|
||||
testcase( sqlite3PcachePagecount(pPager->pPCache)==0 );
|
||||
rc = sqlite3PagerOpenWal(pPager, 0);
|
||||
}
|
||||
}else if( pPager->journalMode==PAGER_JOURNALMODE_WAL ){
|
||||
pPager->journalMode = PAGER_JOURNALMODE_DELETE;
|
||||
}
|
||||
|
@ -5263,19 +5261,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));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue