]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
For the --pagecache option of the CLI, if the SIZE parameter is a
authordrh <>
Mon, 25 Aug 2025 13:04:26 +0000 (13:04 +0000)
committerdrh <>
Mon, 25 Aug 2025 13:04:26 +0000 (13:04 +0000)
power-of-two, automatically round it up to using the PCACHE_HDRSZ.

FossilOrigin-Name: e7a2ba842cb571df66d204b8d5989ecdc78be7205fdaf1de1783c63c9118d465

manifest
manifest.uuid
src/shell.c.in

index 6562db4cff8f0bbf33af04a97adb3078fdc56cfa..80507fe6664b4ad26409436cc3c790ae548326c3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Small\ssimplification\sto\sthe\squery\sflattener\slogic.
-D 2025-08-23T18:18:03.949
+C For\sthe\s--pagecache\soption\sof\sthe\sCLI,\sif\sthe\sSIZE\sparameter\sis\sa\s\npower-of-two,\sautomatically\sround\sit\sup\sto\susing\sthe\sPCACHE_HDRSZ.
+D 2025-08-25T13:04:26.201
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -742,7 +742,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c 62855ca3335dfb1fec366b5b646a9e98bd920aa4d6499698d74520cec08986a6
-F src/shell.c.in 0636915df0dbac6c780f04959f5d1055f206fb281b2c8fc8b113fe7bfc7d44ef
+F src/shell.c.in 51c8452b3e6b9a0dfa3df853dd16f147e5e4ae2002deb775cf8a2fccf01c3c6c
 F src/sqlite.h.in ebfc0358de0e18aabee7fa918f2f846894e23bebc74160fbe265c99046ee61b8
 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
 F src/sqlite3ext.h 0bfd049bb2088cc44c2ad54f2079d1c6e43091a4e1ce8868779b75f6c1484f1e
@@ -2169,9 +2169,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b6f8f086dacd11f57bdb0eef79f25bce209816a0748f16009372c62dc3edd5ae 953ea637d51192a6fb9c2ae84e097ae14e8a9c7fa7c98db90a39819b5f97f60e
-R 28e8a355765b7de9dedf350dc172fb64
-T +closed 953ea637d51192a6fb9c2ae84e097ae14e8a9c7fa7c98db90a39819b5f97f60e
+P cbfe3f0c84eecef4308e1904cce4fe013ee1986ab6c85e82f92736fc80c0a358
+R 9b5fbc0daf59889f2a8705fd1220d675
 U drh
-Z d899009af7c6cd5eeaf562d9512dda24
+Z 3f67a9398a32d1ae32eddf16e111ec42
 # Remove this line to create a well-formed Fossil manifest.
index 3cd7a4ab755fa671046cbfc580af20b05aaf9f19..1c684edc62d94b977786e2534975b052d483c957 100644 (file)
@@ -1 +1 @@
-cbfe3f0c84eecef4308e1904cce4fe013ee1986ab6c85e82f92736fc80c0a358
+e7a2ba842cb571df66d204b8d5989ecdc78be7205fdaf1de1783c63c9118d465
index dae0431996bc333ce833b438280a51d89aea6df8..f408304a9250901a4649ebe3a2d2b4726bba144c 100644 (file)
@@ -13240,12 +13240,20 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
     }else if( cli_strcmp(z,"-pagecache")==0 ){
       sqlite3_int64 n, sz;
       sz = integerValue(cmdline_option_value(argc,argv,++i));
-      if( sz>70000 ) sz = 70000;
+      if( sz>65536 ) sz = 65536;
       if( sz<0 ) sz = 0;
       n = integerValue(cmdline_option_value(argc,argv,++i));
       if( sz>0 && n>0 && 0xffffffffffffLL/sz<n ){
         n = 0xffffffffffffLL/sz;
       }
+      if( sz>0 && (sz & (sz-1))==0 ){
+        /* If SIZE is a power of two, round it up by the PCACHE_HDRSZ */
+        int szHdr = 0;
+        sqlite3_config(SQLITE_CONFIG_PCACHE_HDRSZ, &szHdr);
+        sz += szHdr;
+        sqlite3_fprintf(stdout, "Page cache size increased to %d to accommodate"
+                        " the %d-byte headers\n", (int)sz, szHdr);
+      }
       verify_uninitialized();
       sqlite3_config(SQLITE_CONFIG_PAGECACHE,
                     (n>0 && sz>0) ? malloc(n*sz) : 0, sz, n);