From: drh <> Date: Sat, 28 Mar 2026 13:59:34 +0000 (+0000) Subject: Reduce the compiled size of the quote() SQL function. X-Git-Tag: major-release~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c409eaaf14b2db73e32e24ee2df60024d6741bd3;p=thirdparty%2Fsqlite.git Reduce the compiled size of the quote() SQL function. FossilOrigin-Name: 9ea980a35628f7d0741ab6c65840ab9dab8abb576c6c60109147336452f9637a --- diff --git a/manifest b/manifest index c8c3f8b85e..35d6dd4b33 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Turn\san\ssqlite3VMPrintf()\sinto\san\ssqlite3DbStrDup(). -D 2026-03-28T13:30:47.092 +C Reduce\sthe\scompiled\ssize\sof\sthe\squote()\sSQL\sfunction. +D 2026-03-28T13:59:34.275 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -687,7 +687,7 @@ F src/delete.c 1f2268d6fe3c78fc1bf794ba65d7026498b78e2342ffaf85825dedae546e6fde F src/expr.c 51e9c77ff5d9a21439e611fe6571a3cd50387e526e13c5614fd407e5b8571930 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08 -F src/func.c 6e7de3551ae0f8205006e5109f025223246edd20186d54d90746dee7c1c5c093 +F src/func.c 706ac012bf87d8ad7416a56a1d2b1f19e5dea03506a4606a01aa9d3bacf392c7 F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf @@ -2196,8 +2196,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 09e0e78a8265c2e2bc36fef1fa88bd5bf414f9b776966c1c91a4ed4b7866331d -R 8a5229b421fe3aa2a9ce1241cb8894ed +P 75e8703664ae94244284819d9021877a5fc33a268fb86f3e70de20875a766d80 +R 53c0174f1ec620322f6cab99495c3f2a U drh -Z 58d9ca70f5fba59996f1ad6010cd6655 +Z 4c1395d7057fba4fd91b56b6ca2cdace # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 31140b05b9..79c488cf3c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -75e8703664ae94244284819d9021877a5fc33a268fb86f3e70de20875a766d80 +9ea980a35628f7d0741ab6c65840ab9dab8abb576c6c60109147336452f9637a diff --git a/src/func.c b/src/func.c index d9d8f59ad6..4260f3e72f 100644 --- a/src/func.c +++ b/src/func.c @@ -1098,18 +1098,11 @@ void sqlite3QuoteValue(StrAccum *pStr, sqlite3_value *pValue, int bEscape){ switch( sqlite3_value_type(pValue) ){ case SQLITE_FLOAT: { - double r1, r2; - const char *zVal; - r1 = sqlite3_value_double(pValue); - sqlite3_str_appendf(pStr, "%!0.15g", r1); - zVal = sqlite3_str_value(pStr); - if( zVal ){ - sqlite3AtoF(zVal, &r2); - if( r1!=r2 ){ - sqlite3_str_reset(pStr); - sqlite3_str_appendf(pStr, "%!0.20e", r1); - } - } + /* ,--- Show infinity as 9.0e+999 + ** | + ** | ,--- 17 precision guarantees round-trip + ** v v */ + sqlite3_str_appendf(pStr, "%!0.17g", sqlite3_value_double(pValue)); break; } case SQLITE_INTEGER: {