diff options
author | drh <drh@noemail.net> | 2015-01-08 20:06:06 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-01-08 20:06:06 +0000 |
commit | f7af7a17b9a8a1e623604972399711271e1b903a (patch) | |
tree | 7656a69ced731eb4d2893d404db332aaab62cda0 /src/os_unix.c | |
parent | c8ae34dc6a0d3a04ef127696c2fb8ac39a618271 (diff) | |
parent | 32e1f27960f62d5f193e59ad9d213442cb5e3041 (diff) | |
download | sqlite-f7af7a17b9a8a1e623604972399711271e1b903a.tar.gz sqlite-f7af7a17b9a8a1e623604972399711271e1b903a.zip |
Merge recent enhancements from trunk, including test scripts enhancements and
the removal of limits on the number of terms in a VALUES clause.
FossilOrigin-Name: 5a2dec55bfadc328b430a5231a037b37831a5530
Diffstat (limited to 'src/os_unix.c')
-rw-r--r-- | src/os_unix.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index f802d9cd1..3fcb0cff2 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3717,6 +3717,7 @@ static int fcntlSizeHint(unixFile *pFile, i64 nByte){ ** that do not have a real fallocate() call. */ int nBlk = buf.st_blksize; /* File-system block size */ + int nWrite = 0; /* Number of bytes written by seekAndWrite */ i64 iWrite; /* Next offset to write to */ iWrite = ((buf.st_size + 2*nBlk - 1)/nBlk)*nBlk-1; @@ -3724,11 +3725,11 @@ static int fcntlSizeHint(unixFile *pFile, i64 nByte){ assert( (iWrite/nBlk)==((buf.st_size+nBlk-1)/nBlk) ); assert( ((iWrite+1)%nBlk)==0 ); for(/*no-op*/; iWrite<nSize; iWrite+=nBlk ){ - int nWrite = seekAndWrite(pFile, iWrite, "", 1); + nWrite = seekAndWrite(pFile, iWrite, "", 1); if( nWrite!=1 ) return SQLITE_IOERR_WRITE; } - if( nSize%nBlk ){ - int nWrite = seekAndWrite(pFile, nSize-1, "", 1); + if( nWrite==0 || (nSize%nBlk) ){ + nWrite = seekAndWrite(pFile, nSize-1, "", 1); if( nWrite!=1 ) return SQLITE_IOERR_WRITE; } #endif |