Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | In the winMremap VFS function, unmap the region prior to attempting to truncate the file. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | experimental-mmap |
Files: | files | file ages | folders |
SHA1: |
8870c4cc6cda07154936644f7df25bd8 |
User & Date: | mistachkin 2013-03-23 12:15:27.020 |
Context
2013-03-23
| ||
14:20 | Fix a case where a checkpoint operation could write to an invalid part of a memory mapped region. (check-in: 8dbe89d05c user: dan tags: experimental-mmap) | |
12:15 | In the winMremap VFS function, unmap the region prior to attempting to truncate the file. (check-in: 8870c4cc6c user: mistachkin tags: experimental-mmap) | |
10:09 | Do not unmap the mapped file region in winTruncate as there may be outstanding pointers to it. (check-in: f57a9c91e9 user: mistachkin tags: experimental-mmap) | |
Changes
Changes to src/os_win.c.
︙ | ︙ | |||
3556 3557 3558 3559 3560 3561 3562 | ** mapping (nNew bytes) may be greater than the size of the database file. ** If this is the case, extend the file on disk using ftruncate(). */ assert( nNewRnd>0 || (flags & SQLITE_MREMAP_EXTEND)==0 ); if( flags & SQLITE_MREMAP_EXTEND ){ sqlite3_int64 oldSz; rc = winFileSize(id, &oldSz); if( rc==SQLITE_OK && nNewRnd>oldSz ){ | > > | > | 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 | ** mapping (nNew bytes) may be greater than the size of the database file. ** If this is the case, extend the file on disk using ftruncate(). */ assert( nNewRnd>0 || (flags & SQLITE_MREMAP_EXTEND)==0 ); if( flags & SQLITE_MREMAP_EXTEND ){ sqlite3_int64 oldSz; rc = winFileSize(id, &oldSz); if( rc==SQLITE_OK && nNewRnd>oldSz ){ rc = winUnmap(id); /* Cannot truncate the file with an open mapping. */ if( rc==SQLITE_OK ){ rc = winTruncate(id, nNewRnd); } } if( rc!=SQLITE_OK ) return rc; } /* If we get this far, unmap any old mapping. */ rc = winUnmap(id); if( rc!=SQLITE_OK ) return rc; |
︙ | ︙ |