From: drh <> Date: Tue, 9 Aug 2022 20:22:01 +0000 (+0000) Subject: Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d250c6c31b4f2dc227b74b59bfed838e725dc81;p=thirdparty%2Fsqlite.git Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans. FossilOrigin-Name: 68d86f2b20ffa815f9f6bc1b402969ce76651a50e5b6f47daa8b6c8f5e696f52 --- diff --git a/manifest b/manifest index 60d7a65d4e..494bccd522 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C (no\scomment) -D 2020-10-22T18:58:33.187 +C Fix\sa\srounding\serror\scaused\sby\sscalar->logarithm->scalar\sconversion\swhen\susing\sstat4\sdata\sto\sestimate\ssome\srange\sscans. +D 2022-08-09T20:22:01.525 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -604,7 +604,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c 9eccc7ebb532a7b0fd3cabc16cff576b9afa763472272db67d84fb8cec96f5c0 F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a F src/walker.c 7607f1a68130c028255d8d56094ea602fc402c79e1e35a46e6282849d90d5fe4 -F src/where.c d0feda2eb597cba0a1de3fd2a69e4c46fb641257b076602fbd3b289700854efd +F src/where.c c2a2fcf7fd0d9ff00f09e51ba797a8a73387f424c7a7a96093201a7bad64a249 F src/whereInt.h bcbba483d0cd72c17ab9af97061dce3c00eb3695cd17a5d41cdfec2cb5a6e8ce F src/wherecode.c 5e0b6dec8591e13f1f0af828d350e4a5dd2e3518b63d328f21bb38e2456dfeb7 F src/whereexpr.c 90859652920f153d2c03f075488744be2926625ebd36911bcbcb17d0d29c891c @@ -1819,8 +1819,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P c144d6404ff122d6a92d59fed09fab9a0a592e4dab771ef41b0db3535359f1d6 -Q +0e7e113d9f2c929c1f8a85e2cfad8e2e60f0e8770212b5e5320fb2a2c42911f8 -R 4ca1a3da910bf98bc6e4950d0ce095f1 +P 263293f1e6db26039d94c9ed7efa2cdea25df5e5f42673a116ce2d03b9fadff4 +Q +86e30d7c4bb1cebe25b66686d6d1ee170c1a88e5a6c1bed6652ebbb024d62062 +R e66630f522d53c9737288eaeca403808 U drh -Z 0bf840746e1be7de2c0bb7a051dce63e +Z be09c684553cac509a2534656a541682 +# Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index b7d5842436..355b2592de 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -263293f1e6db26039d94c9ed7efa2cdea25df5e5f42673a116ce2d03b9fadff4 \ No newline at end of file +68d86f2b20ffa815f9f6bc1b402969ce76651a50e5b6f47daa8b6c8f5e696f52 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 8a43a0084a..288f510eb1 100644 --- a/src/where.c +++ b/src/where.c @@ -1256,7 +1256,7 @@ static int whereKeyStats( ** is larger than all samples in the array. */ tRowcnt iUpper, iGap; if( i>=pIdx->nSample ){ - iUpper = sqlite3LogEstToInt(pIdx->aiRowLogEst[0]); + iUpper = pIdx->nRowEst0; }else{ iUpper = aSample[i].anLt[iCol]; }