diff options
author | drh <drh@noemail.net> | 2010-05-19 19:26:05 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2010-05-19 19:26:05 +0000 |
commit | 9ff27ecdb2de9f010c4ba4bce262a0ea1c96ecdb (patch) | |
tree | 74ecb7012a13b09c887830b0cbb95fd1db5b0257 /src/os_unix.c | |
parent | 4c1cb6ab052377aed62d04eba6da4ac7ee2d3468 (diff) | |
download | sqlite-9ff27ecdb2de9f010c4ba4bce262a0ea1c96ecdb.tar.gz sqlite-9ff27ecdb2de9f010c4ba4bce262a0ea1c96ecdb.zip |
Add the SQLITE_FCNTL_SIZE_HINT operator to sqlite3_file_control() and use it
to give the VFS hints about the ultimate size of a database file when the
file is growing.
FossilOrigin-Name: 2b7e3b4a30d6a7c4a8a4b8e7dd2ed728b565c96d
Diffstat (limited to 'src/os_unix.c')
-rw-r--r-- | src/os_unix.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index 928ee6355..ecdd261d2 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3045,6 +3045,12 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){ *(int*)pArg = ((unixFile*)id)->lastErrno; return SQLITE_OK; } + case SQLITE_FCNTL_SIZE_HINT: { + sqlite3_int64 szFile = *(sqlite3_int64*)pArg; + unixFile *pFile = (unixFile*)id; + ftruncate(pFile->h, szFile); + return SQLITE_OK; + } #ifndef NDEBUG /* The pager calls this method to signal that it has done ** a rollback and that the database is therefore unchanged and |