From: dan Date: Thu, 12 Aug 2021 14:22:30 +0000 (+0000) Subject: By default, do not use memory mapping to access the temporary files used for external... X-Git-Tag: version-3.37.0~280 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0546027cd7ca147197c2e93b0cbec6d5b079fe41;p=thirdparty%2Fsqlite.git By default, do not use memory mapping to access the temporary files used for external sorts. The old behaviour (to use memory mapping by default) may be restored by building with SQLITE_ENABLE_SORTER_MMAP defined. FossilOrigin-Name: 306694dfb462f9d1f128461e7a8f15a0bb9b21fbc696caa1832f4b20749490d1 --- diff --git a/manifest b/manifest index 2c0fb8b457..85a11e2e85 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C During\sDELETE,\sif\san\sindex\sentry\sis\smissing,\sdo\snot\sraise\sthe\nSQLITE_CORRUPT_INDEX\serror\s(added\sby\s[f339f31f9e9a856b])\sif\sin\n"PRAGMA\swritable_schema=ON"\smode. -D 2021-08-11T18:43:54.254 +C By\sdefault,\sdo\snot\suse\smemory\smapping\sto\saccess\sthe\stemporary\sfiles\sused\sfor\sexternal\ssorts.\sThe\sold\sbehaviour\s(to\suse\smemory\smapping\sby\sdefault)\smay\sbe\srestored\sby\sbuilding\swith\sSQLITE_ENABLE_SORTER_MMAP\sdefined. +D 2021-08-12T14:22:30.797 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -508,7 +508,7 @@ F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 F src/insert.c 4ebff642574d3866316439b3dfce165f80e130e8969853c656d71b2afc5dd73c F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa F src/loadext.c 0aa9e7f08e168e3874cb54984408e3976dafdf5616d511952c425b5ac088ea3e -F src/main.c 9abeb9f542008eca3db9eb4d863be6c9eb778a07ff48d97d0af5fe98374055f3 +F src/main.c aab8cefb6bfbdbecc53fd19058fa053c0c5e591b2e5067d883ef999d019dcd29 F src/malloc.c cbc93cdd429c4594912017d92ab656e2579aca64dbd1c6888551275bed46f25b F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de @@ -1297,7 +1297,7 @@ F test/regexp1.test 0c3ff80f66b0eff80e623eb5db7a3dad512095c573d78ac23009785f6d8f F test/regexp2.test 55ed41da802b0e284ac7e2fe944be3948f93ff25abbca0361a609acfed1368b5 F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d F test/releasetest.tcl 6f803ef0b896f8f3f4c26eb072c0399963a5987a509a64d45f5dfbc1ebae2951 x -F test/releasetest_data.tcl f88ed29aa18366ed3956ace36c96ec6868ef5b9ee04cc05d32f4d81031e19e28 +F test/releasetest_data.tcl 1673991f780277748a0c7524969ae9d6f7cfb21d8c790f6081ee5c0d96ea0f28 F test/resetdb.test 8062cf10a09d8c048f8de7711e94571c38b38168db0e5877ba7561789e5eeb2b F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb F test/returning1.test f96c7245f6ac16038e802760cd90b93479369939a8a7a44e2329ee5aed28239c @@ -1920,7 +1920,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P a7ce29a6ef2e0362bbc9b23719d936dce07209b2651153c774682f599bbd888e -R 43c6201fd4576d5a109613a7fb8568cd -U drh -Z c3a9195ab1a5e06373a1e61b14ff61dd +P 19e56291a7344c7aa69e2845f11cb865ee10a6b89a00bbe74b3babbeebe0357b +R 224fc103b7931c8813beab0567c100a0 +U dan +Z fd2758fadab57227710ff616e01294ef diff --git a/manifest.uuid b/manifest.uuid index 80c0cd4ab3..f6522eea2f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -19e56291a7344c7aa69e2845f11cb865ee10a6b89a00bbe74b3babbeebe0357b \ No newline at end of file +306694dfb462f9d1f128461e7a8f15a0bb9b21fbc696caa1832f4b20749490d1 \ No newline at end of file diff --git a/src/main.c b/src/main.c index c34fbcc6cf..e0dcf39230 100644 --- a/src/main.c +++ b/src/main.c @@ -3205,7 +3205,14 @@ static int openDatabase( db->nextAutovac = -1; db->szMmap = sqlite3GlobalConfig.szMmap; db->nextPagesize = 0; +#ifdef SQLITE_ENABLE_SORTER_MMAP + /* Beginning with version 3.37.0, using the VFS xFetch() API to memory-map + ** the temporary files used to do external sorts (see code in vdbesort.c) + ** is disabled. It can still be used either by defining + ** SQLITE_ENABLE_SORTER_MMAP at compile time or by using the + ** SQLITE_TESTCTRL_SORTER_MMAP test-control at runtime. */ db->nMaxSorterMmap = 0x7FFFFFFF; +#endif db->flags |= SQLITE_ShortColNames | SQLITE_EnableTrigger | SQLITE_EnableView diff --git a/test/releasetest_data.tcl b/test/releasetest_data.tcl index 00be202286..d90ae2c74f 100644 --- a/test/releasetest_data.tcl +++ b/test/releasetest_data.tcl @@ -149,6 +149,7 @@ array set ::Configs [strip_comments { -DSQLITE_ENABLE_RBU -DSQLITE_MAX_ATTACHED=125 -DSQLITE_MAX_MMAP_SIZE=12884901888 + -DSQLITE_ENABLE_SORTER_MMAP=1 -DLONGDOUBLE_TYPE=double --enable-session }