]> git.ipfire.org Git - thirdparty/sqlite.git/commit
Refactoring the mmap interface. The controlling pragma is now "mmap_size"
authordrh <drh@noemail.net>
Mon, 15 Apr 2013 17:03:42 +0000 (17:03 +0000)
committerdrh <drh@noemail.net>
Mon, 15 Apr 2013 17:03:42 +0000 (17:03 +0000)
commit9b4c59fa1b591e4474ca458a4af239dd9c1d540d
tree1e329bf7d55f1d7148916b170b2f873e340d3f37
parenta1710cc2ea2ed88207b8b4f7ae52c7e95e96b2c4
Refactoring the mmap interface.  The controlling pragma is now "mmap_size"
instead of "mmap_limit".  Also change SQLITE_CONFIG_MMAP_LIMIT and
SQLITE_FCNTL_MMAP_LIMIT to SQLITE_CONFIG_MMAP_SIZE and
SQLITE_FCNTL_MMAP_SIZE, respecctively.
The default mmap_size is now always 0, meaning that
memory mapped I/O is off by default.  There is a new compile-time option
SQLITE_MAX_MMAP_SIZE that determines a hard upper bound on the mmap_size.
Setting SQLITE_MAX_MMAP_SIZE to zero disables the memory-mapped I/O logic
and causes it to be omitted from the build.  An extra argument is added
to SQLITE_CONFIG_MMAP_SIZE that can optionally lower the SQLITE_MAX_MMAP_SIZE
at start-time. The SQLITE_MAX_MMAP_SIZE is zero for platforms where we
know that it does not work, meaning that it cannot be turned on by mistake
on those platforms.

FossilOrigin-Name: ea1404a10abd7f68e1f8e0708c8a3199d1f79665
31 files changed:
manifest
manifest.uuid
mptest/config01.test
mptest/config02.test
src/btree.c
src/ctime.c
src/global.c
src/main.c
src/os.c
src/os_unix.c
src/os_win.c
src/pager.c
src/pragma.c
src/shell.c
src/sqlite.h.in
src/sqliteInt.h
src/sqliteLimit.h
src/test_config.c
test/dbstatus2.test
test/exclusive2.test
test/func.test
test/incrblob.test
test/mmap1.test
test/pager1.test
test/pagerfault.test
test/pageropt.test
test/permutations.test
test/sysfault.test
test/wal.test
test/wal5.test
test/win32lock.test