From: drh <> Date: Thu, 26 Mar 2026 12:09:37 +0000 (+0000) Subject: Back out the sqlite3_atof() API, for now. X-Git-Tag: major-release~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f855727e4534466e1e5a49f65765504c71150d80;p=thirdparty%2Fsqlite.git Back out the sqlite3_atof() API, for now. FossilOrigin-Name: 7568d264be3988df195401158d8d07105b8e9e018eccf98ac948219bee9388ac --- diff --git a/manifest b/manifest index a00ab7cee0..aaf49617c3 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\soff-by-one\serror\sthat\scause\sa\sloop\sto\s(harmlessly)\srun\smore\stimes\nthan\snecessary.\s\sPerformance\soptimization,\snot\sa\sbug\sfix. -D 2026-03-25T21:23:23.021 +C Back\sout\sthe\ssqlite3_atof()\sAPI,\sfor\snow. +D 2026-03-26T12:09:37.920 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -684,7 +684,7 @@ F src/date.c 61e92f1f7e2e88e1cd91e91dc69eb2b2854e7877254470f9fabd776bfac922b8 F src/dbpage.c c9ea81c11727f27e02874611e92773e68e2a90a875ef2404b084564c235fd91f F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c F src/delete.c 1f2268d6fe3c78fc1bf794ba65d7026498b78e2342ffaf85825dedae546e6fde -F src/expr.c b135746c5aaa80ec13225bfe3e5e46ad74377a7cea46630c1dab6b0409729fab +F src/expr.c 51e9c77ff5d9a21439e611fe6571a3cd50387e526e13c5614fd407e5b8571930 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08 F src/func.c 6e7de3551ae0f8205006e5109f025223246edd20186d54d90746dee7c1c5c093 @@ -696,7 +696,7 @@ F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 F src/insert.c dfd311b0ac2d4f6359e62013db67799757f4d2cc56cca5c10f4888acfbbfa3fd F src/json.c 5027b856cd9b621dc9ba66b211e21a440ccdc63cefdefb44c51e7d3ac550d1a4 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa -F src/loadext.c 187929338d21f43cbdea359a3c1ec61294f39b7f9032e824c1dbb79f9994c838 +F src/loadext.c 56a542244fbefc739a2ef57fac007c16b2aefdb4377f584e9547db2ce3e071f9 F src/main.c 31a13302193fbd51279c7e69cdfa0320d0de7629f9151e0964c1d320e8bdd7a4 F src/malloc.c 422f7e0498e1c9ef967f06283b6f2c0b16db6b905d8e06f6dbc8baaa3e4e6c5a F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 @@ -731,13 +731,13 @@ F src/pragma.c 789ef67117b74b5be0a2db6681f7f0c55e6913791b9da309aefd280de2c8a74d F src/prepare.c f6a6e28a281bd1d1da12f47d370a81af46159b40f73bf7fa0b276b664f9c8b7d F src/printf.c a440c004a3892cc3d334fa90e0ae59720918fe26c16942d4d45e2534640ce786 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c -F src/resolve.c f0834917f2b1719d545a0d7eaad693283788f68ecd99871a81c7ff3b12b26209 +F src/resolve.c 928ff887f2a7c64275182060d94d06fdddbe32226c569781cf7e7edc6f58d7fd F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 F src/select.c ffe199f025a0dd74670d2a77232bdea364a4d7b36f32c64a6572d39ba6a11576 -F src/shell.c.in 38f05b2dde7e1de21d5499bdf6cad979a51e277c0b268997d40f5054d53a2236 -F src/sqlite.h.in b2b7d9ee568cc28fb659dff932881a3b00043b25d7463dbfc26bcb91d70ad2c3 +F src/shell.c.in 91ee40ec3f75192362cbaa0ad85316140b8dde00a184113d73a837fb6173dbcc +F src/sqlite.h.in fce4dd4979a6120934a9bc2c0fd2b426b5943d8892b7a82a20307a895b07d7d2 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 -F src/sqlite3ext.h 5d48df11327acaabc45690a1957f0f4643e07afd9f77c5f2326115239fe5a3bc +F src/sqlite3ext.h 1b7a0ee438bb5c2896d0609c537e917d8057b3340f6ad004d2de44f03e3d3cca F src/sqliteInt.h 9716721fb57e32938a1d30a84560ce7633c63860a2209e188c87afad15d4b464 F src/sqliteLimit.h c70656b67ab5b96741a8f1c812bdd80c81f2b1c1e443d0cc3ea8c33bb1f1a092 F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592 @@ -798,7 +798,7 @@ F src/trigger.c 4bf3bfb3851d165e4404a9f9e69357345f3f7103378c07e07139fdd8aeb7bd20 F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 -F src/util.c 47245522b755618abd6aeb2c51e25339331b6f24eb6520ee6ad2c7bd73fd4eca +F src/util.c 49fc214a09893c98b43d2b085ad8eca74781f0631eecba004bd5471746d069a7 F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82 F src/vdbe.c dbafc6f5762f9ae90d9dc9ed065a31743a8ceafbdbfb1a0a3a228921fb3cc36a F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71 @@ -2195,8 +2195,10 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa -R 83396870d61c46958fe0688ee28ba9e3 +P 58f4e058f1cbb798b8a48208c6310fd10ca9cd1fc7c550f3ed283cf38ae45c2f +Q -276c350313a1ac2ebc70c1e8e50ed4baecd4be4d4c93ba04cf5e0078da18700e +Q -52f76c59f27152dd62069bd833e2409d57d0cd36ccaa568b2ec4ec823e98cb44 +R b4db3c6c015737ad24a5d476714da47b U drh -Z 852f9de7fcb576f54e2f0cced0d6affa +Z 58981fb16285e99654df81a8b96e29a9 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index ddcd37e68e..2d7cd3c86f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -58f4e058f1cbb798b8a48208c6310fd10ca9cd1fc7c550f3ed283cf38ae45c2f +7568d264be3988df195401158d8d07105b8e9e018eccf98ac948219bee9388ac diff --git a/src/expr.c b/src/expr.c index f2a19dc3e8..9bac0ba7a5 100644 --- a/src/expr.c +++ b/src/expr.c @@ -4302,7 +4302,8 @@ sqlite3ExprCodeIN_oom_error: */ static void codeReal(Vdbe *v, const char *z, int negateFlag, int iMem){ if( ALWAYS(z!=0) ){ - double value = sqlite3_atof(z); + double value; + sqlite3AtoF(z, &value); assert( !sqlite3IsNaN(value) ); /* The new AtoF never returns NaN */ if( negateFlag ) value = -value; sqlite3VdbeAddOp4Dup8(v, OP_Real, 0, iMem, 0, (u8*)&value, P4_REAL); diff --git a/src/loadext.c b/src/loadext.c index 14821bad5b..55325edd77 100644 --- a/src/loadext.c +++ b/src/loadext.c @@ -528,12 +528,11 @@ static const sqlite3_api_routines sqlite3Apis = { sqlite3_str_free, #ifdef SQLITE_ENABLE_CARRAY sqlite3_carray_bind, - sqlite3_carray_bind_v2, + sqlite3_carray_bind_v2 #else 0, - 0, + 0 #endif - sqlite3_atof }; /* True if x is the directory separator character diff --git a/src/resolve.c b/src/resolve.c index 2920b77945..5b6d6c9c5a 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -936,7 +936,7 @@ static int exprProbability(Expr *p){ double r = -1.0; if( p->op!=TK_FLOAT ) return -1; assert( !ExprHasProperty(p, EP_IntValue) ); - r = sqlite3_atof(p->u.zToken); + sqlite3AtoF(p->u.zToken, &r); assert( r>=0.0 ); if( r>1.0 ) return -1; return (int)(r*134217728.0); diff --git a/src/shell.c.in b/src/shell.c.in index 51d00f2894..c931055ca2 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -10406,7 +10406,7 @@ static int do_meta_command(const char *zLine, ShellState *p){ return 1; } i++; - p->tmProgress = sqlite3_atof(azArg[i]); + p->tmProgress = atof(azArg[i]); if( p->tmProgress>0.0 ){ p->flgProgress = SHELL_PROGRESS_QUIET|SHELL_PROGRESS_TMOUT; if( nn==0 ) nn = 100; diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 61ffd7ec94..20683b1773 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -3230,28 +3230,6 @@ char *sqlite3_vmprintf(const char*, va_list); char *sqlite3_snprintf(int,char*,const char*, ...); char *sqlite3_vsnprintf(int,char*,const char*, va_list); -/* -** CAPI3REF: Text-to-float conversion -** -** The sqlite3_atof(X) interface returns a "double" derived from the -** text representation of a floating point value in X. -** This interface provides applications with access to the -** same text→float conversion routine used by SQLite for SQL parsing -** and type coercion. The sqlite3_atof(X) routine works like the standard -** C-library atof(X) routine with the following exceptions: -** -**