]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Performance optimization when zero-padding in printf().
authordrh <>
Wed, 25 Mar 2026 21:05:18 +0000 (21:05 +0000)
committerdrh <>
Wed, 25 Mar 2026 21:05:18 +0000 (21:05 +0000)
FossilOrigin-Name: dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa

manifest
manifest.uuid
src/printf.c

index 4b0f3a73ad6cfb1a5c7c7b6677b41499278c38ef..ae52e9f57379f2f5f9297f517b7583b58b9856e5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Small\ssize\sreduction\sand\sperformance\sincrease\sin\ssqlite3Atoi64().
-D 2026-03-25T19:36:16.063
+C Performance\soptimization\swhen\szero-padding\sin\sprintf().
+D 2026-03-25T21:05:18.704
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -729,7 +729,7 @@ F src/pcache.h 092b758d2c5e4dabb30eae46d8dfad77c0f70b16bf3ff1943f7a232b0fe0d4ba
 F src/pcache1.c 131ca0daf4e66b4608d2945ae76d6ed90de3f60539afbd5ef9ec65667a5f2fcd
 F src/pragma.c 789ef67117b74b5be0a2db6681f7f0c55e6913791b9da309aefd280de2c8a74d
 F src/prepare.c f6a6e28a281bd1d1da12f47d370a81af46159b40f73bf7fa0b276b664f9c8b7d
-F src/printf.c 11e1ed458da5dc0b276913c7994ef21b1fab30369b0f968af806d1145cd9dc5f
+F src/printf.c a440c004a3892cc3d334fa90e0ae59720918fe26c16942d4d45e2534640ce786
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c f0834917f2b1719d545a0d7eaad693283788f68ecd99871a81c7ff3b12b26209
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
@@ -2195,8 +2195,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 6a74df6d6ecfda8e0ff72ca0f4167190e989973ad124412892f7d36f1666ccfc
-R 2192d32e7f354c98f60eff9fb924e812
+P c818165fd709b813ab07788662bf69205ece2dcea41346609b3439950f900057
+R 5784240f99f10ba69ee88ee168660db5
 U drh
-Z d63a496224ec875179c4f578c57d7a6a
+Z 148dd6c39616c6fe7322257317ab64e5
 # Remove this line to create a well-formed Fossil manifest.
index 5911a5bcd9b5988409bedd2f4084ab3ed326ae24..ea5ab12780a50896bc9267d792d2a59966e48dba 100644 (file)
@@ -1 +1 @@
-c818165fd709b813ab07788662bf69205ece2dcea41346609b3439950f900057
+dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa
index 759f1e292ef244d54799035aebacc1d39a312137..2374bd1a2df458e8c62f6953e5a98b6c9eb19103 100644 (file)
@@ -496,9 +496,11 @@ void sqlite3_str_vappendf(
           }while( longvalue>0 );
         }
         length = (int)(&zOut[nOut-1]-bufpt);
-        while( precision>length ){
-          *(--bufpt) = '0';                             /* Zero pad */
-          length++;
+        if( precision>length ){                         /* zero pad */
+          int nn = precision-length;
+          bufpt -= nn;
+          memset(bufpt,'0',nn);
+          length = precision;
         }
         if( cThousand ){
           int nn = (length - 1)/3;  /* Number of "," to insert */