]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor performance enhancement to floating-point rendering.
authordrh <>
Wed, 11 Feb 2026 19:42:46 +0000 (19:42 +0000)
committerdrh <>
Wed, 11 Feb 2026 19:42:46 +0000 (19:42 +0000)
FossilOrigin-Name: 38d8c0d8a0b0e9990ba7bdcce979f2824ffee22a083cb788a75917628b1eb559

manifest
manifest.tags
manifest.uuid
src/util.c

index 4a4c5a25fdb009e4180be3fe2f05e7fbab18a6b7..9e78194999a6463a4679ec4387ca86476af41c8a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Correction\sto\sdate/time\scomputations\sassociated\swith\sthe\stimestamp-vfs.
-D 2026-02-10T19:33:11.305
+C Minor\sperformance\senhancement\sto\sfloating-point\srendering.
+D 2026-02-11T19:42:46.005
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -803,7 +803,7 @@ F src/trigger.c cb894db98083c68c4a17c72566ed39434aa91286db20d2891279ee49e6bfec0c
 F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
 F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1
 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
-F src/util.c 36fb1150062957280777655976f3f9a75db236cb8207a0770ceae8d5ec17fcd3
+F src/util.c 0d191af08ce8bbc31d5ed7d7b5fb0907ac920220147676ca3c7a6288703954dc
 F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
 F src/vdbe.c fa28a8f740f3d94c4e6b6d42ba90c220472683486268e753017512a70ef715f5
 F src/vdbe.h 966d0677a540b7ea6549b7c4e1312fc0d830fce3a235a58c801f2cc31cf5ecf9
@@ -2194,8 +2194,11 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 5021e114b251467fee6a39749c88ec581ee1f7d50093b02a44dc300db0c0a1c5
-R 8c009ef3edcff15260e9e11c075a8dac
+P b67889e4f17c3280f839ee7045256cc47d6ce3ed60d880925e3d30f9ebbcf3ff
+R cb6350b426b944c91b4d4e6b58ff7a00
+T *branch * fp-perf
+T *sym-fp-perf *
+T -sym-trunk *
 U drh
-Z 82c25fcaf85be039db084b2683a2f369
+Z 9c515e6aeb36a4ee4cbd4b664e3d6f49
 # Remove this line to create a well-formed Fossil manifest.
index bec971799ff1b8ee641c166c7aeb22d12c785393..7238982b62c3b19b21a2000748166f730ad4b38c 100644 (file)
@@ -1,2 +1,2 @@
-branch trunk
-tag trunk
+branch fp-perf
+tag fp-perf
index e953e282ffb4951e3e7f49fd6d71ea9e64707c21..998f9549d9ce607f32b8d11ce8f3e27c86bda6e9 100644 (file)
@@ -1 +1 @@
-b67889e4f17c3280f839ee7045256cc47d6ce3ed60d880925e3d30f9ebbcf3ff
+38d8c0d8a0b0e9990ba7bdcce979f2824ffee22a083cb788a75917628b1eb559
index 8e4fd516efb01aaa33a72272f4aa435077ac276d..20665632d5ffb118aee4bb901672a92eb3403b36 100644 (file)
@@ -1092,7 +1092,25 @@ void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRound){
   /* Extract significant digits. */
   i = sizeof(p->zBuf)-1;
   assert( v>0 );
-  while( v ){  p->zBuf[i--] = (v%10) + '0'; v /= 10; }
+  while( v>=10 ){
+    static const char dig[] = 
+      "00010203040506070809"
+      "10111213141516171819"
+      "20212223242526272829"
+      "30313233343536373839"
+      "40414243444546474849"
+      "50515253545556575859"
+      "60616263646566676869"
+      "70717273747576777879"
+      "80818283848586878889"
+      "90919293949596979899";
+    int kk = (v%100)*2;
+    p->zBuf[i] = dig[kk+1];
+    p->zBuf[i-1] = dig[kk];
+    i -= 2;
+    v /=100;
+  }
+  if( v ){  p->zBuf[i--] = (v%10) + '0'; v /= 10; }
   assert( i>=0 && i<sizeof(p->zBuf)-1 );
   p->n = sizeof(p->zBuf) - 1 - i;
   assert( p->n>0 );